使用汇编语言实现如下功能:在下列数组3,5,6,2,9,4,1,8,7,或者12,23,45,18,99,23,45,60,13查找最大数和最小数,并存放到产量max和min中
时间: 2023-07-27 09:20:41 浏览: 85
假设数组名为arr,使用汇编语言实现如下:
```assembly
DATA SEGMENT
arr DB 3,5,6,2,9,4,1,8,7 ; 或者 DB 12,23,45,18,99,23,45,60,13
n DB 9 ; 或者 DB 8,表示数组元素个数
max DB ? ; 存放最大数
min DB ? ; 存放最小数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA ; 初始化数据段寄存器
MOV DS, AX
MOV AL, arr ; 初始化max和min为数组第一个元素
MOV max, AL
MOV min, AL
MOV CL, n ; 循环n次
DEC CL ; 因为已经比较了第一个元素,所以循环n-1次
MOV SI, 1 ; SI为数组下标,从1开始
MOV AL, arr[SI] ; 初始化AL为第二个元素
LOOP_START:
CMP AL, max ; 比较AL和max,如果AL大于max,更新max
JG UPDATE_MAX
CMP AL, min ; 比较AL和min,如果AL小于min,更新min
JL UPDATE_MIN
NEXT_ELEMENT:
INC SI ; 下标加1
MOV AL, arr[SI] ; 取下一个元素
LOOP LOOP_START ; 循环
UPDATE_MAX:
MOV max, AL ; 更新max
JMP NEXT_ELEMENT ; 跳转到取下一个元素
UPDATE_MIN:
MOV min, AL ; 更新min
JMP NEXT_ELEMENT ; 跳转到取下一个元素
END:
MOV AH, 4CH ; 结束程序
INT 21H
CODE ENDS
```
上述代码中,通过比较AL与max和min的值来更新max和min的值,循环n-1次,每次取出一个元素进行比较。最后,max和min中存放的就是数组中的最大数和最小数。
阅读全文