微机原理汇编语言代码求最大值 编制求无符号数组 ARRAY 中最大值的子程序以及调用它主程序,并显示 最大值
时间: 2024-02-12 19:08:32 浏览: 87
高精度角度正弦值计算汇编程序及运行结果
以下是一个求无符号数组最大值的子程序,以及调用它的主程序,并显示最大值的汇编代码:
```
.MODEL SMALL
.STACK 100H
.DATA
ARRAY DB 5, 8, 2, 10, 3, 6, 1, 4, 7, 9
LEN EQU 10
MAX DB ?
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX ; 初始化数据段寄存器
CALL FIND_MAX ; 调用求最大值的子程序
; 显示最大值
MOV AH, 2
MOV DL, ' '
MOV AL, MAX
ADD AL, '0'
INT 21H
MOV AH, 4CH
INT 21H
MAIN ENDP
FIND_MAX PROC
MOV SI, 0 ; SI 为数组下标,初始为0
MOV AL, ARRAY[SI] ; AL 为当前元素,初始为第一个元素
MOV MAX, AL ; MAX 为当前最大值,初始为第一个元素
LOOP_START:
INC SI ; SI 加1
CMP SI, LEN ; 如果 SI 达到数组长度,则退出循环
JE LOOP_END
MOV AL, ARRAY[SI] ; AL 为当前元素
CMP AL, MAX ; 比较当前元素和当前最大值
JBE LOOP_START ; 如果当前元素小于等于当前最大值,则继续循环
MOV MAX, AL ; 更新当前最大值
JMP LOOP_START
LOOP_END:
RET
FIND_MAX ENDP
END MAIN
```
这个程序使用了 8086 汇编语言,定义了一个长度为 10 的无符号数数组和一个用于存储最大值的变量 MAX。主程序调用了一个名为 FIND_MAX 的子程序来求最大值,并将结果存储在 MAX 变量中。最后,程序使用 INT 21H 调用 DOS 服务显示 MAX 的值。
阅读全文