在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 | 大於 | 小於 | 等於 | 取反 |