[QUOTE]一个直接用字符形式输入
例如:
......
NUM DB 10 DUP(?) ;这里是数据段中定义的一个存放空间
......
MOV CX,10 ;初始化输入的位数,用CX装载便于循环控制
MOV AH,1 ;初始化调用1号中断(字符输入)
LEA BX,NUM ;用基址寄存器来存放 存储数据的首地址
NEXT0: INT 21H ;DOS功能中断调用,开始输入
MOV [BX],AL ;输入的数即时传送至存放单元
LOOP NEXT0 ;未输入完10位数,继续循环输入
MOV CX,10 ;显示数据用的位数计数
NEXT1: LEA BX,NUM
MOV DL,[BX] ;1号中断输出的数存放在DL中,所以就有了这条指令

INT 21H ;DOS功能中断调用,开始输出
LOOP NEXT1 ;未输出完10位数,继续循环输出
......[/QUOTE]
[QUOTE]......
NUM DB 11,0,12 DUP('$') ;这里的11表示字符串输入时最多输入11个字符,因为包括回车符,所以
事实上只允许输入10个字符,0可以用任意数代替(当然得在0~255间),它
在10号中断时被即时刷新,它表示的是实际的输入个数(由系统自行计算);
而这里的12表示你开辟的空间,这里是用户自行指定,最好指定的数为不
小于第1个数;或者在这里可以直接写上12个 '$'

......
MOV AH,10 ;10号中断是用于输入字符串的,默认的段是DS:DX;也就是说在数据段中的,
以DX的值为偏移量的数据区存放输入的字符串
LEA DX,NUM ;LEA指令是取源操作数的有效地址(偏移量),即这里指定了存放地址
INT 21H
MOV AH,9 ;9号中断,用于输出字符串,同样指定段DS:DX
LEA DX,NUM+2
INT 21H
......[/QUOTE]