汇编语言程序以找到数组中的最大数
以下是一个在8086汇编语言中编写的程序,用于查找数组中的最大数:
ORG 100h
MOV CX, 05h ; number of elements in array
MOV AL, [SI] ; load first array element
MOV BL, AL
for_loop:
INC SI
CMP CX, 01h
JE end_loop
MOV AL, [SI]
CMP AL, BL
JLE next_element
MOV BL, AL
next_element:
LOOP for_loop
end_loop:
MOV DL, BL ; largest number
MOV AH, 02h ; print function
MOV DL, BL
ADD DL, 30h ; convert to ASCII code
INT 21h ; print largest number
RET
array DB 17h, 22h, 35h, 41h, 3Eh ; array with 5 elements
这个程序首先将CX寄存器设置为数组的元素数量,然后将AL寄存器设置为数组的第一个元素。然后,它进入一个循环,逐个比较每个元素,并将当前最大元素存储在BL寄存器中。每次迭代时,指针寄存器(SI)递增,并且在循环的最后,程序将BL寄存器中存储的最大数打印出来。
在这个示例中,数组的元素数量为5,数组的值为17h、22h、35h、41h和3Eh。程序将输出值41h,因为这是数组中的最大值。
注意:这段代码不能直接在现代计算机上运行,因为它是8086汇编语言的代码,而现代计算机使用的是x86-64或ARM体系结构。