【发布时间】:2012-12-04 05:59:22
【问题描述】:
所以我是汇编语言的新手,我对基础知识有相当扎实的掌握,但用户输入总是让我感到困惑。所以现在我有以下代码来接收用户的单个数字:
mov eax, 3
mov ebx, 0
mov ecx, inStrBuf
mov edx, StrLen
int 80h
然后定义如下
SECTION .bss
inStrBuf: times StrLen resb ' '
Section .data
StrLen: equ 8
我把值放入ecx后,就是数字+2608。所以我一直在做的只是简单地减去2608得到数字。现在,当我输入多个数字时,例如数字 46,当我转换为十进制时,我得到 669236。没有像以前那样仅减去 2608 的简单方法。
首先,2608 是怎么回事,有没有办法只接受像 654 这样的数字并将其放入寄存器(当然是十六进制值)。谢谢!
【问题讨论】: