【发布时间】:2022-11-16 09:06:25
【问题描述】:
所以我必须把它转换成 x86 汇编语言,这就是我到目前为止得到的
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode: DWORD
.data
sum DWORD 0
array_list DWORD 10,11,13,18,21,23,24,17,45
array_size = ($ - array_list) / TYPE array_list
.code
main PROC
mov eax, 0 ; sum
mov esi, 0 ; index
mov ecx, array_size
L1:
dec ecx
cmp esi, ecx
jl L2
jmp L5
L2:
cmp esi, ecx
jl L3
jmp L4
L3:
cmp array_list[esi], array_list[esi%2]
add eax, array_list[esi]
jmp L4
L4:
add esi, 1
jmp L1
L5:
mov sum, eax
INVOKE ExitProcess, 0
main ENDP
END main
对于 array_size,我试图确保它是 40/4 = 10 我不明白或不知道如何进行 for 循环,所以第一个循环一定是我在那里写的错误。 另外,如果它说 array_list[index] 是偶数,你是怎么做的。我还需要申报样品吗?因为它用于 array_size。我真的需要帮助,因为我不明白:(
【问题讨论】:
-
请不要发布代码图片。 Edit你的问题并将代码替换为文本。然后我会收回我的反对票。
-
我没有用图片发布我的代码
标签: for-loop assembly while-loop x86 masm