JLE NEXT
MOV AX, DX ;(AX)<(DX),则置换(AX)为最小偶数 NEXT: LOOP COMPARE1 STOP: RET
把AX中存放的16位二进制数K看作是8个二进制的“四分之一字节”。试编写程序要求数一下值为3(即11B)的四分之一字节数,并将该数(即11B的个数)在终端上显示出来。 答:程序段如下:
BEGIN: MOV DL, 0 ;计数初始值 MOV CX, 8
COMPARE: TEST AX, 03H ;是数03吗 JNZ NOEQUAL ;不是,转走 INC DL ;是,计数
NOEQUAL: ROR AX, 1 ;准备判断下一个数 ROR AX, 1 LOOP COMPARE
ADD DL, ‘0’ ;将计数值转换为ASCII码 MOV AH, 2 ;进行显示 INT 21H STOP: RET
试编写一个汇编语言程序,要求从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数。 答:程序段如下:
BEGIN: MOV BX, 0 ;用于存放四位的16进制数 MOV CH, 4
MOV CL, 4
INPUT: SHL BX, CL ;将前面输入的数左移4位 MOV AH, 1 ;从键盘取数 INT 21H
CMP AL, 30H ;<0吗
JB INPUT ;不是‘0~F’的数重新输入 CMP AL, 39H ;是‘0~9’吗 JA AF ;不是,转‘A~F’的处理 AND AL, 0FH ;转换为:0000B~1001B JMP BINARY
相关推荐: