私はアセンブリ言語が初めてで、2 つの数値を追加して結果を表示する単純なプログラムを理解しようとしています。
section .data
message1 db "value=%d%d",10,0
section .text
global main
extern printf
main:
mov eax, 55
mov ebx, 45
add eax,ebx
push eax
push ebx
push message1
call printf
add esp, 8
ret
出力が出てくるのは45 100です
eax ebx 命令の追加後、結果は eax レジスタに格納されます。
しかし、次の行で何が起こるか
push eax // push 100 on to stack
push ebx // push 45 on to stack
push message1 // push "value=%d" on to stack // I m bit doubtful here
私が知りたいのは、「call printf」が実行されるとどうなるのですか??
「esp、8を追加」の目的は何ですか??