永发信息网

汇编代码,菜鸟求教,3的阶乘,急

答案:2  悬赏:10  手机版
解决时间 2021-02-20 14:45
  • 提问者网友:战皆罪
  • 2021-02-20 00:45
DATA SEGMENT
CN DW 3
RES DW ?
DATA ENDS
STACK SEGMENT PARA STACK 'STACK' //(1)PARA STACK 'STACK' 什么意思??
DB 256 DUP(?) // (2) DB 256 DUP(?) 什么意思??
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START PROC FAR // (3) PROC FAR什么意思
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AS,STACK
MOV SS,AX
MOV BX,CN
CALL FACTOR
MOV RES,AX
RET
START ENDP
FACTOR PROC NEAR // (4)PROC NEAR 什么意思
PUSH AX
MOV AX,BX
CMP BX,0
JE M0
CMP BX,1
JE M0
DEC BX
CALL FACT //(5) 哪来的FACT,什么意思??
MUL BX
POP BX
RET
M0: MOV AX,1
POP BX
RET
FACTOR ENDP
CODE ENDS
END START
请帮我看看这几个问题
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-02-20 02:23
楼主给出的程序,有不少错误。
改正如下:
DATA  SEGMENT
    CN   DW  3
    RES  DW  ?
DATA  ENDS

STACK  SEGMENT
    DB   256  DUP(?)  ;定义256字节的空间
STACK   ENDS

CODE   SEGMENT
    ASSUME   CS:CODE, DS:DATA, SS:STACK

START  PROC  FAR  ;定义远过程
    PUSH  DS
    MOV   AX, 0    
    PUSH  AX
    MOV   AX, DATA
    MOV   DS, AX
    MOV   AX, STACK
    MOV   SS, AX
    MOV   BX, CN
    MOV   AX, BX
    CALL  FACTOR
    MOV   RES, AX    
    RET
START  ENDP

FACTOR  PROC
    CMP   BX, 1
    JE    M0
    DEC   BX
    PUSH  BX
    CALL  FACTOR   ;原程序在这里有错
    POP   BX
    MUL   BX
M0: RET
FACTOR  ENDP

CODE  ENDS
    END  START

楼主的其它问题,都是选项,可有可无的。
全部回答
  • 1楼网友:零点过十分
  • 2021-02-20 03:51
可以私聊我~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯