我在 Ubuntu11.04 中用 NASM 编写了一个程序,它将接受 2 个输入数字并产生一个总和。该程序如下:
section .data
msg1: db "the numbers are:%d%d",0
msg3: db "REsult= %d",10,0
section .bss
a resd 1
b resd 1
sum resd 1
section .text
global main
extern printf,scanf
main:
;; push ebp
;; mov ebp,esp
;; sub esp,10
push a
push b
push msg1
call scanf
add esp,12
mov eax,DWORD[a]
add eax,DWORD[b]
mov DWORD[sum],eax
push DWORD[sum]
push msg3
call printf
add esp,8
;; mov esp,ebp
;; pop ebp
ret
你能帮我找出我在这里犯的错误吗?如果您向我提供 NASM 中的任何教程,无论是视频还是文本,我也将不胜感激。我已经获得了汇编语言艺术或 NASM 手册。但是第一个不是基于 NASM 的,第二个对于像我这样的初学者来说很难获得。
谢谢