编写8086汇编语言源程序,已知BUFF数据缓冲区内有10个字节型有符号数,使用8086汇编语言编写完整程序,找出数据中的最小值,并将结果保存于变量MIN中。
时间: 2024-05-06 11:22:08 浏览: 89
以下是8086汇编语言源程序:
```
DATA SEGMENT
BUFF DB 10, 20, -5, 8, -2, 15, -10, 7, 12, -3 ; 数据缓冲区
MIN DB ? ; 最小值变量
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA ; 初始化数据段寄存器
MOV DS, AX
; 初始化最小值为第一个数
MOV AL, BUFF
MOV MIN, AL
; 逐个比较找出最小值
MOV CX, 9 ; 循环次数为9,因为第一个数已经被初始化
MOV SI, 1 ; 数据缓冲区索引从1开始
LOOP_START:
MOV AL, BUFF[SI] ; 取出当前数据
CMP AL, MIN ; 比较当前数据和最小值
JL UPDATE_MIN ; 如果当前数据比最小值小,则更新最小值
INC SI ; 索引加1
LOOP LOOP_START ; 继续循环
; 最小值已经找到,将其保存于MIN中
MOV AL, MIN
; 这里可以进行其他操作,比如输出最小值、结束程序等
MOV AH, 4CH ; 结束程序
INT 21H
UPDATE_MIN:
MOV MIN, AL ; 更新最小值
INC SI ; 索引加1
LOOP LOOP_START ; 继续循环
CODE ENDS
END START
```
程序的思路是先将第一个数作为初始最小值,然后逐个比较,如果有比最小值更小的数就更新最小值。最后将最小值保存于变量MIN中。
阅读全文