我的程序将使用数组从用户那里获取数字作为输入,并将在监视器上打印数字。所以期待我的程序的输入和输出如下:
i/p: 1 2 3 4
o/p: 1 2 3 4
但我的程序以这种方式给出输出,不包括数字:
o/p: 4 3 2
我的程序如下:
section .data
msg db "%d"
four dd 4
msga db "%d",10,0
section .bss
arr resd 4
section .text
global main
extern printf,scanf
main:
xor ecx,ecx
lp:
mov ebx,arr
mov eax,ecx
mul dword[four]
add ebx,eax
pusha
push ebx
push msg
call scanf
add esp,8
popa
inc ecx
cmp ecx,4
jnz lp
mov ecx,3
lp1:
mov ebx,arr
mov eax,ecx
mul dword[four]
add ebx,eax
pusha
push dword[ebx]
push msga
call printf
add esp,8
popa
dec ecx
jg lp1
你会在这个节目中给我建议吗?我提前使用了 ubuntu 11.04 Thanx