;在首地址为dat单元的10个无符号数中,找最小的偶数,将其放入AX中。
;=============================
DATASG SEGMENT
DAT DW 65534,129,20122,12300,2450,7766,12454,21123,7212,4220
;在这里预先存放10个无符号数,显然都应该是16位数
DATASG ENDS
;-----------------------------
CODESG SEGMENT
ASSUME CS:CODESG, DS:DATASG
START:
MOV AX, DATASG
MOV DS, AX
;-----------------------------
MOV BX, OFFSET DAT ;需要先从数字中,找一个偶数,然后才能判别大小.
MOV CX, 10 ;设置循环次数
FIND:
TEST WORD PTR [BX], 1
JNZ NEXT
MOV AX, [BX] ;找到了,存入AX.
JMP FINDED
NEXT:
INC BX
LOOP FIND ;循环找10次.
MOV AX, 0FFFFH ;找了10次,都没找到有偶数,就写上FFFF
JMP EXIT ;结束.
;-----------------------------
FINDED:
MOV BX, OFFSET DAT ;然后从数字中,找最小的偶数.
MOV CX, 10
FIND2:
TEST WORD PTR [BX], 1
JNZ NEXT2
CMP AX, [BX]
JB NEXT2
MOV AX, [BX]
NEXT2:
INC BX
LOOP FIND2
;-----------------------------
EXIT: ;找完了.
;此时,AX中如果是FFFF,就是没有偶数,否则就是最小偶数.
MOV AX, 4C00H
INT 21H
CODESG ENDS
END START
;=============================
原题网址:http://zhidao.baidu.com/question/345506768.html
;=============================