アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
左右なんてどっちでもいい 記法もどっちでもいい もっと本質的なことに頭使え アセンブラの本質って機械語不便だからわかりやすくする記法なのに それに気を使わずにどこに頭使うの? >>407 ある種の文化の衝突が起きていると思う。 事実標準に近かったZ80などでは、語順的には、今「Intel記法」と 呼ばれているものだった。でもIntel記法よりも洗練されている 感じだった。それが、人気があったひとつの理由だと思ってる。 でも、学者などは、さかさまに固執するような印象が多い気がする。 なんでも市場や事実標準とは逆を好む天邪鬼みたいな姿勢の人が多い。 たとえば、NEC機が流行っていたころは、京大構内では日立マシンが標準だった。 今、Windowsマシンが標準なのに、灯台ではMacが標準。 >>411 学者は、事実標準に逆らったことをするのが大好き。なぜなら、そうすれば、 自分たちが優位になると思っているから。 たとえば、数式処理プログラムのMaximaも、LISPで書かれているし、 AI関連のライブラリが充実している言われる、Pythonも然り。 東大がMacを標準にしたのは、表向きはMSの独占的地位を破壊するため かも知れないが、裏には、プログラミングが得意な学生に学者が負ける と面目を保てなくなるのが困るからではないかと考えられている。 >>408 それは a is b とか読むんじゃないですかね。 UNIX v6やv7が使われた16bitミニコンのPDP-11やBSDが使われたVAX11が左から右の記法だった PDP-11からの影響を受けた680x0も左から右 だから1970年代、1980年代前半から半ばまでのUNIX界隈では左から右が主流だった だからx86のAT&T記法が左から右なんだろうな 1980年代終り頃に普及したMIPS、POWERが右から左の記法 (よく知らないがSPARCやPA-RISCは左から右のようだ) 要するに左から右の記法はPDP-11の影響を受けてるわけだ (VAX11はPDP-11の後継の32bitミニコン) SPARC、PA-RISCが左から右なのは 680x0を使ったワークステーションの後継機種用のCPUとして作られたからだろうな 今でも680x0の影響を受けてるCPUは左から右 逆に言えば、パソコンやサーバ、スマホなどは PDP-11、VAX11、680x0などのCPUの影響を受けてないCPUが主流 そういう経緯とか全然知らんかったわ。 Z80は古い機種だと思うんだけど,>>411 によればIntel記法に近いらしい。 一概に,「昔はAT&T記法が主流だった」とも言えねえのな。 >>416 Intel 8080 の改良版が、Z80。 以下、同じ命令を、8080とZ80について書いてみる。 Z80の方が現代のアセンブリ言語に近く、人間には覚え易くて 理解しやすいが、アセンブラの作成が当時としては難しくなった。 Z80がなぜ人気が爆発したか、これだけ見ても分かるかと思う。 【8080】 MVI A,byte ; A <-- byte // move immediate を略して MVI MOV A,B ; A <-- B // 意味は同じなのに、第二オペランド // がレジスタに変わったなっただけで命令表記が変わる。 MOV A,M ; A <--(HL) // M の意味は、(HL) MOV H,A ; H <-- A MOV L,A ; L <-- A LXI H,word ; HL <-- word // これも意味は move なのに命令が変わる。 LHLD word ; HL <---(word) // これも、現代なら単に(word)と書けばいいとこ // ろが命令自体を変えなければならなかった。 【Z80】 LD A,byte LD A,B LD A,(HL) LD H,A LD L,A LD HL,word LD HL,(word) 【参考】 http://nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/opcodes.html >>415 命令表記を左右逆にしていれば、今頃 68000 が天下を取っていたかもしれない。 高級言語の「A = B」がそのまま、MOV A,B と書けるのはやはり分かりやすいので。 >>417 昔も今もそうかもしれないが、IntelもMSも、余り「判りやすく書く」 「すっきりと設計する」ということが余り得意ではないかもしれない。 MSの作ったAPIは構造が汚い。 Zilogがせっかく、二モニックを美しく修正したのに、Intelは、また、MMX や SSE以後で 汚くしてしまった。 それに、セグメントの概念もMMUの設計もひどかった。 セグメントに関しては、トランジスタの集積度が少なすぎてしょうがなかったのかも しれないが、それを長く引きずりすぎた。 80386のプロテクトモードなんかどうでも良くて、単にプロテクトの無い32BITの フラットモードがあれば喜ばれ、MS-DOSが今でも続いていたかもしれない。 >>418 しつこくてすまんが $ cp file.org file.new $ mv file.org file.new ↑こういう操作を考えると AT&T記法のほうが馴染みやすくない? >>421 個人的には、数学や物理の表記の方が親しみがある。 >>423 http://afsoft.jp/os/p02.html CP/M も copy コマンドは、「左から右」だったと思うけど: COPYコマンド ディスクをコピーします。 【書式】COPY {mode} {コピー元} {コピー先} mode : ALL・・・ディスク全部をコピー BOOT ・・ブートトラックをコピー FILES・・ブートトラック以外をコピー コピーではないが、rename コマンドにそれらしき痕跡はあった。 確かに、右から左で、しかも、「=」記号もつけていたらしいね: http://www.discordia.org.uk/px4/cpm.html REN [d:]newname.ext = oldname.ext Change the name of a disk file from oldname.ext to newname.ext これかな??? PIP [d:][newfile.ext]=[d:][filespec][<t> Copy files between peripherals whilst performing optional conversion <t>. Copy file from drive to drive: C> PIP H:=A:INFO.DAT Copy file to new name: C> PIP A:NEW.DAT=A:INFO.DAT Copy file to printer: C> PIP LST:=A:LETTER.TXT 確かに有った。copy コマンドが登場するより前に、PIP コマンドがあったのか。 知らなかった。 https://en.wikipedia.org/wiki/Peripheral_Interchange_Program The original PIP syntax was PIP destination←source /switches using the left-arrow character from the ASCII-1963 character set that the Flexowriter keyboards of the time used. As other terminals were introduced that used later versions of ASCII (without the left-arrow character), PIP allowed the syntax PIP destination=source でもcopyコマンド(in CP/M)自体はUnix風の動作なんだよね。 pipコマンドというとPythonのアレしか思い浮かばないがw pipはビルトインじゃなくて外部コマンドだったから数バイトのコピーするときにでも pipを読み込むために数十KBの実行ファイルをフロッピーゴトゴト言わせてからコピーが始まる >>435 マジかよww なんでそんな不便な方法しかなかったんだろう 当時はそれが一番効率的と考えられてたんかな MS-DOSのVer2.xxからはいろんな意味でUNIXをリスペクトしてるからな UNIX流にファイルハンドルでファイルを扱ったり、階層ディレクトリを導入したり、 環境変数を導入したりな マイクロソフト自身がXENIXというUNIXを販売してたしね マカーが散々捏造したきたようにその手の話は眉唾もの。 最近のC++コンパイラはAVX2命令ガンガン吐いてくるからすごいな あんま詳しくないが同じような処理を繰り返す場合には速いらしいな >>451 MMX, SSE〜SSE4, AVX, AVX2, AVX512 は、SIMD命令だから、ループを展開して、 ベクトル計算のように考え直した場合、そのベクトルの足し算やベクトルの 要素ごとの掛け算などが速くできるようになる。 C++で吐く場合ってあえてそうなるようにコーディングしてるんだと思うが x86_64のRAXのRってなんの略か分かる? EAXはExtended AX、AXはAccumulator (eXtended)でしょう。 「R」とはいったいなんなのだろう。 それとは別に、EAXって拡張拡張可算なんだね。 互換性とかの観点からすると仕方無いとも思うが もうちょっとマシな名前はなかったんだろうかw >>455 >>456 あざす。 マジかよ「レジスタ」のRなのか。 i386アセンブラで書かれたGNU coreutilsみたいよ。 なんか紹介文に「アセンブラ楽しいから 皆もソース読んでね!」みたいなことが書かれてたw iOSアプリでPoketAssemblyなるもの落としたんだが、説明に英語でLC-3アセンブリ言語って書いてて、 初めて見るCPUなんだが、何か情報源知ってたら教えて欲しい。 ネットで調べてもイマイチ見つからない。 幸いにも?CASL2に似てる命令っぽいし、マクロ的なのは多いっぽいのはサンプル見て理解出来た。 命令一覧があれば遊べそうなんだが。。。 ありがとう。 ざっと読んだ感じ、立ち位置的にもアメリカ版CASLみたいな教育用アセンブラって感じみたいね。 リンク辿って簡単な入門書読んでみたけど、結構独特の文法。 (あっちでは普通なのかもだけど) 最近Shenzhen I/Oっていうゲームで遊んでる。 なかなか面白い。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる