アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
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っていうゲームで遊んでる。
なかなか面白い。 >>417
1.5年前の書き込みで誰もいないスレだと思うけどw
ふと思ったんだけど、これ言語設計した人に
ヘブライ語圏とか右から左に書く言語の人がいたりしたんじゃないかな、などと思ったり
MOV A,B 例えばこれ左から読むと日本人には言語的にわかりやすい
BをAに移動
この説どう?w >>513
mov A,B //(1)
に関して、
英語圏の人では、必ず語順が
「from B to A」
となるので、(1)とは逆になり違和感を感じる人が居るらしいが日本語では、
「AにBを代入する」
という言い方だと(1)と同じ順序になり、昔から問題ないと言われている。
個人的には、言葉ではなく、数学の
A=B
という表記と同じなので、Z80やx86のこの順序が天下をとったと見ている。 >>516
数学で、量を定義する際、
A≡式
のように書くことがあるが、Aは短い変数名で、右辺の式は大体、長い。
このような定義式を複数、縦に並べたて書く時に、変数を左側に書いたほうが
≡の記号が同じ場所に並んで見やすい。
そのために、左辺にdestination、右辺にsourceを書く習慣になったと
個人的には考えている。 古くは、Fortran, Basic の時代から、Pascal, C、C++、JS、Java、Perl, Ruby、C#、Python
に至るまで、変数 A に式 B の値を代入する構文は、
1. A = B
と書いてきた。これは、数学の記号と似てる。そしてその順序を
そのままアセンブラで持ち込めば、
2. mov A,B
と書ける。ところが、英語で mov (移動する)という言葉を使う際、
1と大体意味的に同じことは(本来はmovではなくcopyであるのだが)、
3. I mov an B to A.
の順序になってしまう。それでこの順序で書きたい人が出て来て
そういうアセンブラも存在するようになった。
今でも、LLVMでは、
4. A = add 型名 B, C で A = B + C の意味なのに、
A = B の意味では、Aがレジスタではない変数の場合には、
5. store 型名 B, 型名* Aのアドレス
の順序で書き、A がレジスタの場合には、
6. A = load 型名 * Bのアドレス
と書く。
5.では、1と順序が逆になっているが、6.では、1と同じである。
(この書き方は、数学的統一性が無いので好きではない。) >>519
誤: 3. I mov an B to A.
正: 3. I mov a B to A. >>517
数学では
A=BもB=Aも同値
A≡BもB≡Aも同値 .486
.model flat,stdcall
option casemap :none
.code
>>540 ■ このスレッドは過去ログ倉庫に格納されています