📄 1_4_3.asm
字号:
;
STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP(0)
STACK ENDS
;
DATA SEGMENT PARA PUBLIC 'DATA'
PARM DB 128 DUP(0)
MSG DB "PLEASE INPUT YOUR NUMBER! $"
ER DB "SORRY ERROR! $"
DATA ENDS
;
CODE SEGMENT PARA PUBLIC 'CODE'
;
START PROC FAR
ASSUME CS:CODE
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV ES,AX
ASSUME ES:DATA
MOV SI,80H
MOV DI,OFFSET PARM
MOV CX,80H
CLD
REP MOVSB
;
MOV DS,AX
ASSUME DS:DATA
CMP PARM,2
JNC GO
MOV DX,OFFSET MSG
CALL DISPLAY
MOV AH,0
INT 16H
CALL DISCHAR
PUSH AX
MOV AL,0DH
CALL DISCHAR
MOV AL,0AH
CALL DISCHAR
POP AX
JMP LP
GO: MOV AL,PARM+2
LP: CMP AL,30H
JC ERR
CMP AL,3AH
JNC ERR
AND AL,0FH
MUL AL
MUL AX
MOV BX,1000
DIV BX
CALL BTOASC
CALL DISCHAR
MOV AX,DX
MOV BL,100
DIV BL
CALL BTOASC
CALL DISCHAR
MOV AL,AH
MOV AH,0
MOV BL,10
DIV BL
CALL BTOASC
CALL DISCHAR
MOV AL,AH
CALL BTOASC
CALL DISCHAR
ret
ERR: MOV DX,OFFSET ER
CALL DISPLAY
MOV AH,0
INT 16H
CALL DISCHAR
PUSH AX
MOV AL,0DH
CALL DISCHAR
MOV AL,0AH
CALL DISCHAR
POP AX
RET
;
START ENDP
;
DISCHAR PROC NEAR
PUSH BX
PUSH AX
MOV BX,0
MOV AH,0EH
INT 10H
POP AX
POP BX
RET
DISCHAR ENDP
;
BTOASC PROC NEAR
ADD AL,30H
RET
BTOASC ENDP
;
DISPLAY PROC NEAR
MOV AH,09H
INT 21H
RET
DISPLAY ENDP
;
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -