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 を出力しないのはなぜですか? また、上記の私の提案が無効だったのはなぜですか?