【发布时间】:2016-11-15 17:35:24
【问题描述】:
我正在尝试获取一个数组,添加其中的所有值,然后显示它们。对我来说不幸的是,即使构建了以下代码,输出也不会返回我期望的值。
例如,有一次我运行它时,我得到了
-2112902102
还有一次我得到了
-1280521519
我假设这有某种逻辑,但它并不能完全帮助我。
INCLUDE Irvine32.inc
.386
.stack 4096
ExitProcess proto,dwExitCode:dword
.data
array SBYTE 26, -81, -104, -57
total_sum SWORD ?
.code
main proc
mov esi, OFFSET array
mov ecx, LENGTHOF array
mov total_sum, 0
mov ebp,0
L1:
add ebp, [esi]
inc esi
loop L1
mov edx, ebp
call WriteInt
invoke ExitProcess,0
main endp
end main
是的,我知道 total_sum 目前没有做任何事情,但我首先想在实现 total_sum 之前弄清楚其余部分。
【问题讨论】:
-
你没有调试器可以让你单步调试代码、检查寄存器等吗?
-
是的,我愿意。但是,我现在在弄清楚它时遇到了一些小问题。
-
问问自己这个问题——
add指令从[esi]加载了多少数据以添加到ebp中?提示:它不是一个字节...
标签: arrays assembly x86 irvine32