可以写几个例子让我看看吗?
既然规定了是8位那:来一个简单的例子,存在缺陷,但希望能理解思路即可
OUTPUT MACRO NUM ;这里定义一个宏,一个变量参数
LOCAL LOP0 ;宏内循环,标号必须定义
MOV AH,2
MOV CX,8
LEA BX,NUM ;接收输出首地址
LOP0: MOV DL,[BX]
INT 21H
INC BX
LOOP LOP0
MOV DL,20H
INT 21H
ENDM
;以输入4个数为例:为了验证输入的数是否正确,程序中多了输出语句,可删去
DSEG SEGMENT
NOTE0 DB 0AH,0DH,'Input four unsigned numbers: $'
NOTE1 DB 0AH,0DH,'The numbers your input is: $'
A DB 8 DUP(0)
B DB 8 DUP(0)
C DB 8 DUP(0)
D DB 8 DUP(0)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
MAIN: MOV AX,DSEG
MOV DS,AX
MOV AH,9
LEA DX,NOTE0
INT 21H
MOV AH,1 ;这里采用单个输入方式
MOV DL,4 ;输入无符号数的个数
LEA BX,A
DONE: MOV CX,8 ;输入无符号数的位数
NEXT: INT 21H ;调用DOS 1号中断
MOV [BX],AL
INC BX
LOOP NEXT
INT 21H ;这里接收第9位,但不进行处理,也就表明间隔符可以任意字符
DEC DL ;判断输入了几个数
JNZ DONE
MOV AH,9
LEA DX,NOTE1
INT 21H
OUTPUT A ;调用输出宏,输出指定数
OUTPUT B
OUTPUT C
OUTPUT D
MOV AX,4C00H
INT 21H
CSEG ENDS
END MAIN