Assembly 用汇编MASM求数组中的最小元素
我对汇编语言不熟悉,我正试图在数组中找到最小值。这就是我目前所拥有的。无论我做什么,它每次都跳到L2,即使我将JL更改为其他任何内容。我必须把最少的存储在AX中。我必须假设数组的第一项是最小值,并将其存储在AX中。谢谢Assembly 用汇编MASM求数组中的最小元素,assembly,masm,Assembly,Masm,我对汇编语言不熟悉,我正试图在数组中找到最小值。这就是我目前所拥有的。无论我做什么,它每次都跳到L2,即使我将JL更改为其他任何内容。我必须把最少的存储在AX中。我必须假设数组的第一项是最小值,并将其存储在AX中。谢谢 .model flat, stdcall .stack 4096 ExitProcess proto, dwExitCode:dword .data Array WORD 10,2,23,45,21,11 Minimum WORD ? .code main proc mo
.model flat, stdcall
.stack 4096
ExitProcess proto, dwExitCode:dword
.data
Array WORD 10,2,23,45,21,11
Minimum WORD ?
.code
main proc
mov eax, 0
mov ebx, 0
mov ax,WORD PTR Array
mov Minimum, ax
mov edi,OFFSET Array
L1:
mov bx, [edi]
cmp bx, Minimum
JL L2
L2:
mov Minimum, bx
mov ax, Minimum
add edi,TYPE Array
loop L1
invoke ExitProcess, 0
main endp
end main
当然,您将在
L2
结束,因为在JL
之后没有任何东西会使执行移动到任何其他地方。将L2
标签移动到add
之前,并将JL
更改为JGE
。在循环期间,您没有利用ax
中的最小值。您可以将其一直保存在AX中,并且在完成后只存储到全局/静态存储。(如果您这样做是为了在AX中返回值,则根本不需要)