32 ビット Ubuntu での NASM アセンブリの学習。私はやや混乱しています:
では.bss
、変数用に 1 バイトを予約しています。
num resb 1
後で、次の値を指定することにしました5
。
mov byte [num],5
そして、ある時点でそれを印刷します:
mov EAX,4
mov EBX,0
mov ECX,num
add ECX,'0' ; From decimal to ASCII
mov EDX,1
int 0x80
しかし、それは何も印刷していません。
num
の値を与えるときに問題があると思います5
。私はもともとこれをやりたかった:
mov byte num,5
num
メモリ内の位置を参照していると思ったので、その位置にmov
コピー5
します。しかし、私はエラーが発生しました
オペコードとオペランドの無効な組み合わせ
では、基本的に、プログラムが 5 を出力しないのはなぜですか? また、上記の私の提案が無効だったのはなぜですか?