已知字数组ARRAY中,存放着NUM个带符号数,要求找出偶数的最小值,结果放在MIN单元中。
程序员文章站
2022-03-10 08:23:06
...
DATA SEGMENT
ARRAY DW 20,-3,-4,-7,77,66,20,-21,-100,200
NUM EQU 10
MIN DW 0FFFH ;如果没有偶数,则显示0FFFH
XX DB 0 ;标记符
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, NUM - 1
MOV SI, OFFSET ARRAY
MOV AX, [SI]
L1: TEST AX, 01H ;判断奇偶
JZ L2 ;若是,跳转到L2
JMP L3 ;否则跳转到L3
L2: CMP XX, 0 ;XX为0,则还没找到第一个偶数,不为0,则找到了第一个偶数
JE L4 ;XX为0,跳转到L4
CMP MIN, AX ;XX不为0,将这个偶数与前一个偶数比较
JLE L3
MOV MIN, AX
JMP L3
L3: ADD SI, 2 ;将SI加2,读取下一个数
MOV AX, [SI]
LOOP L1
JMP NEXT
L4: ADD XX, 1 ;将XX加1,表示找到第一个偶数
MOV MIN, AX ;将偶数赋值给min
JMP L3
NEXT: MOV AH, 4CH
INT 21H
CODE ENDS
END START