我需要制作一个简单的4函数计算器,用于Linux编译器编码的2个数字,但是程序不能完全正常工作,因为有时读取2个数字时会失败。这个Linux汇编程序代码有什么错误?
我的设置和数据:
bits 32
global main
extern scanf
extern printf
extern exit
section .data
menu: db ; truncated, but essentially a string
msg1: db "El resultado de la suma es: %d", 10, 0
msg2: db "El resultado de la resta es: %d", 10, 0
msg3: db "El resultado de la multiplicacion es: %d", 10, 0
msg4: db "El resultado de la division es: %d", 10, 0
in1: db "Proporciona dato 1: ", 10
in2: db "Proporciona dato 2: ", 10
fmt: db "%d"
x: dd 0
y: dd 0
相信该功能并不总是工作:
leer:
push dword in1
call printf
add esp, 4
push dword x
push dword fmt
call scanf
add esp, 8
push dword in2
call printf
add esp, 4
push dword y
push dword fmt
call scanf
add esp, 8
ret
原代码可以在这里找到: http://notepad.cc/piloobru13
在此发布RELEVANT代码。 – 2011-05-06 22:56:30
@Diego我已经将我认为与您的问题相关的代码拉出来并添加了一些标签。使用粘贴容器并发布您的整个代码在这里是不好的,因此请记住包含您认为相关的部分。你可以用'{}'按钮来设置你的代码的格式。另外,在标签下面的问题按钮处,有一个“编辑”链接,所以如果你需要改变任何事情,那么就可以做到这一点。欢迎来到Stack Overflow。 – 2011-05-06 23:24:25
正在做作业吗? – sehe 2011-05-06 23:25:54