在DATA1开始的存储区中存放了100个8位无符号数,找出其中最大数存放入MAX单元中
MOV BX,OFFISET DATA1 ;取得DATA1的偏移地址
MOV AX,[BX] ;给AX赋一个初值 用于最开始的比较
MVO CX,93H ;计数顺序
P1: INC BX ;指向下一个数
CMP AX,[BX] ;比较两个数
JAE NEXT ;无符号数条件转移(AX>=BX)发生转移
MOV AX,[BX] ;JAE未发生跳转说明AX<BX 把较大的[BX]赋值给AX
NEXT: DEC CX ;计数器减一
JNZ PI ;判断 计数器是否到0
MOV MAX,AL ;大功告成复制
HLT
如果题目中
将100个改成200个
我们只需要修改CX
计数器的值改为C7(199)
就ok
如果题目中将
大于改成小于
MAX改为MIN
我们只需要将JAE改为JB
即可
如果题目中说存放的是有符号数的话,我们只需要使用带符号的比较指令就可以轻松完成
JGE 有符号转移指令 目的操作数>=原操作数 发生转移
CMP AX,BX
JGE NEXT ;AX>=BX 发生转移
JL 目的操作数 < 原操作数发生转移
MOV AX,BX
JL NEXT ;AX<BX 发生转移
附: 跳转指令规则快速记忆表
无符号
J | A | B | E | N |
---|---|---|---|---|
JMP | 大于 | 小于 | 等于 | 取反 |
例子 JAE
CMP AX,BX
JAE NEXT ;AX>=BX 发送跳转
有符号
J | G | L | E | N |
---|---|---|---|---|
JMP | 大于 | 小于 | 等于 | 取反 |