異なる文字をプッシュする多くのpush命令を記述する必要があります。私はそのためにマクロを使用したいと思います。 %macro push_multi 1-* ; Accept between 1 and ∞ arguments
%assign i 1
%rep %0 ; %0 is number of arguments
push %{i}
%
における数として出力して、良好な実装は次のようになります segment data use32 class=data
number dd 0
format_input db "%d", 0
format_output db "%x", 0
segment code use32 class=code
start:
push dword number
ユーザから入力を得るためにmacroを書きました。入力をいくつかのレジスタに保存する必要があります。 gdbは、保存された値が入力と異なることを私に示しています!ここに私のコードです: %macro exit 0
mov eax, 1
int 0x80
%endmacro
%macro get_input 0 ; input is a number
push_al