从键盘输入四位16进制数,以2进制、10进制输出
;=============================================
DATA SEGMENT
STR1 DB 'INPUT A HEX NUM: $'
HEX DB 5 ;计划输入的字符个数(含回车符)
NNN DB 0 ;存放实际输入的字符个数
DB 5 DUP(?)
BIN DW ? ;输入数字的二进制形式的存放单元
ERR DB 0AH, 0DH, ' ERROR !'
DB 0AH, 0DH, ' I HAVE NO TIME TO PLAY WITH YOU ! $'
STR2 DB 13, 10, 'BINARY IS: $'
DATA ENDS
;--------------------------------------------
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP(?)
STACK ENDS
;--------------------------------------------
CODE SEGMENT
ASSUME CS:CODE, SS:STACK, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV AX, STACK
MOV SS, AX
LEA DX, STR1 ;'INPUT A HEX NUM'
MOV AH, 9 ;显示字符串
INT 21H
LEA DX, HEX
MOV AH, 10 ;等着输入四位HEX数
INT 21H
这个只是程序的开始的一部分,有一个地方我搞不懂,这个程序是在哪里有输入操作了?不是AH的值为01才是接收字符吗?
------解决方案--------------------
ah=10(0ah) 是输入一个字符串,按回车结束,详细说明和调用要求看该功能调用的描述吧。即便是输入字符,也不止一个 ah=01 功能调用的,ah=6 和 ah=8 都可以。