e411_08.asm
来自「汇编的大作业源代码 包括基本和进阶的汇编语言的运用 对初学者很有帮助 内有更详细」· 汇编 代码 · 共 81 行
ASM
81 行
;思路为不再需要弹出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 + =
减小字号Ctrl + -
显示快捷键?