私は配列をとり、その中のすべての値を追加しようとしています。残念なことに私の場合、次のコードがビルドされても、出力は私が期待している値を返しません。例えば配列の値を追加する際の問題x86
、私はそれを実行したときに、私は
-2112902102
と私は
-1280521519
Iを得た別の時間を持って1時間それには何らかの論理があると仮定していますが、それはeではありませんxactly私を助ける。
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を実装する前に残りの部分を把握したいです。
コードを実行したり、レジスタなどを調べたりするためのデバッガがありませんか? –
はい、あります。しかし、私はいくつかのわずかな問題を今考え出している。 –
自分自身に質問してください。 '[esi]'から 'ebp 'に追加する命令の読み込み量はいくらですか?ヒント:それは1バイトではありません... – twalberg