前言
写两个子程序,使得输入一个数再输出这个数
一、运行程序
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
;调用INPUT
CALL INPUT
;调用OUTPUT
MOV AX,CX
CALL OUTPUT
MOV AH,4CH
INT 21H
;INPUT函数
INPUT PROC
MOV BL,10
MOV CX,0
;输入数字
AGAIN:
MOV AH,1
INT 21H
CMP AL,'0'
JB OVER0
CMP AL,'9'
JA OVER0
SUB AL,48
MOV DH,0
MOV DL,AL
MOV AL,CL
MUL BL
ADD AX,DX
MOV CX,AX
JMP AGAIN
OVER0:
RET
INPUT ENDP
;OUTPUT 函数
OUTPUT PROC
;AX为入口参数
MOV CL,10
MOV BX,0
L0:
;压栈
DIV CL
PUSH AX
ADD BX,1
MOV AH,0
CMP AL,0
JE L1
JMP L0
L1:
;出栈
CMP BX,0
JE OVER
POP CX
MOV DL,CH
ADD DL,48
MOV AH,2
INT 21H
SUB BX,1
JMP L1
OVER:
RET
OUTPUT ENDP
CODES ENDS
END START
总结
没什么要说的