MOV AX,BX MOV DX,0 MOV CX,10 DIV CX PUSH DX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H POP DX ADD DL,30H MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H RET
OUTPUT ENDP EXIT:
MOV AH,4CH INT 21H CODES ENDS END START
16. 键盘输入一个十六进制数,以十进制的形式输出。CODES SEGMENT
ASSUME CS:CODES START: AGAIN: MOV BX,0 CALL INPUT CALL OUTPUT JMP AGAIN INPUT PROC NEAR SHURU: MOV AH,01H INT 21H CBW
CMP AX,0DH JE RETURN CMP AX,'0' JB EXIT CMP AX,'f' JA EXIT CALL TRANSFORM JMP SHURU RETURN: RET INPUT ENDP
TRANSFORM PROC NEAR XCHG AX,BX CMP BX,'9' JA ZIMU SUB BX,30H JMP CHENG ZIMU: SUB BX,57H CHENG: MOV CX,16 MUL CX ADD AX,BX XCHG AX,BX RET
TRANSFORM ENDP OUTPUT PROC NEAR MOV AX,BX MOV DX,0 MOV CX,10000 DIV CX MOV BX,DX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AX,BX MOV DX,0 MOV CX,1000 DIV CX MOV BX,DX ADD AL,30H MOV DL,AL
MOV AH,02H INT 21H MOV AX,BX MOV DX,0 MOV CX,100 DIV CX MOV BX,DX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AX,BX MOV DX,0 MOV CX,10 DIV CX PUSH DX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H POP DX ADD DL,30H MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H RET
OUTPUT ENDP EXIT:
MOV AH,4CH INT 21H CODES ENDS END START
17. 键盘输入一个十六进制数,以二进制的形式输出。
CODES SEGMENT
ASSUME CS:CODES START: NEXT:
MOV BX,0 CALL INPUT CALL OUTPUT JMP NEXT INPUT PROC NEAR SHURU:
MOV AH,01H INT 21H CBW
CMP AX,0DH JE RETURN CMP AX,'0' JB EXIT CMP AX,'f' JA EXIT
CALL TRANSFORM JMP SHURU RETURN: RET INPUT ENDP
TRANSFORM PROC NEAR XCHG AX,BX CMP BX,'9' JA TO1
SUB BX,30H JMP TO2 TO1:
SUB BX,57H TO2:
MOV CX,16 MUL CX ADD AX,BX XCHG AX,BX RET
TRANSFORM ENDP OUTPUT PROC NEAR MOV DH,16 MOV CL,1 CONTINUE: ROL BX,CL
MOV DL,BL
AND DL,00000001H ADD DL,30H JMP SHUCHU SHUCHU:
MOV AH,02H INT 21H DEC DH CMP DH,0 JNE CONTINUE MOV DL,0AH MOV AH,02H INT 21H
MOV DL,0DH MOV AH,02H INT 21H RET
OUTPUT ENDP EXIT:
MOV AH,4CH INT 21H CODES ENDS END START
18. 将一组有符号数中的负数求和,并统计负数的个数,并在屏幕上以十进制的形式显示结果。 DATA SEGMENT BUF DB 38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5H NUM DB 'NEGTIVE NUMBER=0',0DH,0AH COUNT DB 'NEGTIVE COUNT=-','????',0DH,0AH,'$' ZHUANHUAN DB '????' JISUAN DW 0 DATA ENDS
CODE SEGMENT ASSUME DS:DATA,CS:CODE,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,10 PANDUAN: XOR BH,BH MOV BL,[SI] CMP BL,0