📄 e411_08.asm
字号:
;思路为不再需要弹出N,直接把结果都保存在RESULT中,即少压入一次栈
STACK SEGMENT PARA STACK
DW 100H DUP(?)
STACK ENDS
DATA SEGMENT PARA
N DW 4
RESULT DW ?
DATA ENDS
CODE SEGMENT PARA
ASSUME CS:CODE, DS:DATA, SS:STACK
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV AX,N
PUSH AX
CALL CALCULATE
CALL DISP_VALUE
MOV AX,4C00H
INT 21H
MAIN ENDP
CALCULATE PROC NEAR
PUSH BP
MOV BP,SP
PUSH DX
MOV BX,[BP+4]
CMP BX,0
JNZ CAL1
MOV AX,1
JMP SHORT CAL2
CAL1: PUSH BX
DEC BX
PUSH BX
CALL CALCULATE
POP RESULT
MUL RESULT
MOV RESULT,AX
CAL2: POP DX
POP BP
RET 2
CALCULATE ENDP
DISP_VALUE PROC
PUSH DX
PUSH CX
PUSH BX
PUSH AX
MOV CX,5
MOV BX,10
DLP1: XOR DX,DX
DIV BX
PUSH DX
LOOP DLP1
MOV BX,0
MOV CX,5
DLP2: POP DX
CMP DL,0
JNZ DLP2_1
CMP BX,0
JZ DLP2_2
DLP2_1: MOV BX,1
OR DL,30H
MOV AH,2
INT 21H
DLP2_2: LOOP DLP2
POP AX
POP BX
POP CX
POP DX
RET
DISP_VALUE ENDP
CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -