アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
古くは、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 ■ このスレッドは過去ログ倉庫に格納されています