【发布时间】:2013-02-14 18:29:06
【问题描述】:
我的程序将使用数组从用户那里获取数字作为输入,并将在监视器上打印数字。所以期望我的程序的输入和输出如下:
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 提前谢谢
【问题讨论】:
标签: assembly assemblies nasm