📄 l4-77.asm
字号:
DATA SEGMENT
P1 DB 'Input the number:(0-6)','$'
P2 DB 'The result is:','$'
CR DB 0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS,AX
MOV DX, OFFSET P1
MOV AH,9
INT 21H
LEA DX, CR
MOV AH,9
INT 21H
MOV AH,1
INT 21H
AND AL,0FH
MOV BL,AL
LEA DX, CR
MOV AH,9
INT 21H
MOV DX,0
MOV AL,BL
CALL FACT
MOV AX,DX
CALL B2TOBCD
MOV BX,AX
MOV AH,9
LEA DX,P2
INT 21H
LEA DX, CR
MOV AH,9
INT 21H
CALL DISP
MOV AH,4CH
INT 21H
FACT PROC
CMP AL,0
JNZ CHN
MOV DL,1
RET
CHN: PUSH AX
DEC AL
CALL FACT
POP AX
MUL DL
MOV DX,AX
RET
FACT ENDP
B2TOBCD PROC
CMP AX, 9999
JBE TRAN
STC
JMP EXIT
TRAN: PUSH CX
PUSH DX
SUB DX,DX
MOV CX,1000
DIV CX
XCHG AX,DX
MOV CL,4
SHL DX,CL
MOV CL,100
DIV CL
ADD DL,AL
MOV CL,4
SHL DX,CL
XCHG AL,AH
SUB AH,AH
MOV CL,10
DIV CL
ADD DL,AL
MOV CL,4
SHL DX,CL
ADD DL,AH
MOV AX,DX
POP DX
POP CX
EXIT: RET
B2TOBCD ENDP
DISP PROC
PUSH AX
PUSH CX
MOV CH,4
MOV CL,4
LZ: ROL BX,CL
MOV DL,BL
AND DL,0FH
CMP DL,0
JNE LNZ
DEC CH
JNZ LZ
LL: ROL BX,CL
MOV DL,BL
AND DL,0FH
LNZ: ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNZ LL
POP CX
POP AX
RET
DISP ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -