汇编语言,举一个例子, CX为零时,结束程序

如题所述

以下是从键盘输入一个一位数的程序,赋值给CX,输入等于0则什么都不做,不等于0则输出“cx != 0”,经调试通过
DATA SEGMENT
IN_A DB 'INPUT: CX =','$'
OUT_A DB 'OUTPUT: CX != 0','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
MAIN PROC FAR
MOV AX, DATA
MOV DS, AX
MOV AH, 9 ;输出"CX ="
LEA DX, IN_A
INT 21H

MOV AH, 0 ;从键盘输入一个数字赋值给CX
INT 16H
XOR AH, AH ;清零AH
MOV CX, AX
SUB CX, 30H ;需要将从键盘接受的字符的ASCII码转为数字(ASCII码=数字+30H)

MOV AH, 2 ;设置光标位置1行0列
MOV BH, 0
MOV DH, 1
MOV DL, 0
INT 10H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CMP CX, 0 ;比较CX和0的大小
JE EXIT ;相等则跳转到EXIT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV AH, 9 ;CX不等于0才会执行该语句,输出CX != 0
LEA DX, OUT_A
INT 21H

EXIT: ;CX=0程序什么都不做直接退出
MOV AX, 4C00H
INT 21H

MAIN ENDP
CODE ENDS
END MAIN
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-18
很简单啊,用JNC.当CX为0时,跳转.在end前面加一个标记,以便跳转.
JNC TOEND
.............
TOEND:end
第2个回答  2012-05-15
;
;.....
CMP CX, 0
JE EXIT
;.....

EXIT:
MOV AH, 4CH
INT 21H
第3个回答  2012-05-15
;
;.....
CMP CX, 0
JE EXIT
;.....

EXIT:
MOV AH, 4CH
INT 21H
差不多是
相似回答