我是MASM和汇编的新手,我正在编写我的第一个程序。我无法弄清楚如何将两个变量加在一起并输出结果。到目前为止,这是我的计划的一部分:
INCLUDE Irvine32.inc
.data
firstNum DWORD ?
secondNum DWORD ?
sum DWORD ?
.code
main PROC
;Get Data
call ReadInt
mov firstNum, eax
call ReadInt
mov secondNum, ebx
;Calculate Sum
mov eax, firstNum
mov ebx, secondNum
add eax, ebx
mov sum, eax
;Display Results
mov eax, sum
call WriteDec
当我运行此代码时,它会输出一些长数字" 333420163"而不是总和应该是什么,这是7.我仍然是新的,所以如果它是一个简单的答案,我很抱歉哈哈。我做错了什么?
答案 0 :(得分:1)
在大多数x86 ABI上,函数的返回值通常在var $search = $('#search');
var $imgs = $('img')
$search.keyup(function(event) {
var value = $search.val().toLowerCase();
$imgs.show();
if (value !== '') {
$imgs.not('[title*="' + value + '"]').hide();
}
});
寄存器中,如果返回值是64位长,而不是32位,则高32位将在EAX
注册。
您的指示:
EDX
没有从第二次调用call ReadInt
mov secondNum, ebx
获取返回值,因为ReadInt
中的不是;它在EBX
。
将其替换为EAX
,因为这会将mov secondNum, eax
的实际返回值转换为ReadInt
。