许瑾恩 发表于 2014-11-1 10:06:16

这是汇编语言算5的阶乘,哪位能帮我看看哪错了,谢谢

data segment
n db 5
sum dw ?
data ends
stack segment
db 100 dup(?)
stack segment
code segment
assume cs:code,ds:data,ss:stack
start:mov ax,data
       mov ds,ax
       mov ax,stack
       mov ss,ax
       mov bx,n
       mov si,sum
       mov cx,1
       call fac
fac proc near
   cmp bx,0
   jz r1
    push bx
   dec bx
   call fac
r1:push cx
   mov al,1
   pop dx
mul dl
mov si,ax
ret
fac endp

15岁的小朋友 发表于 2014-11-1 11:26:45

本帖最后由 15岁的小朋友 于 2014-11-1 11:30 编辑

data segment
n dw 5
sum dw ?
data ends
stack segment
db 100 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:mov ax,data
       mov ds,ax
       mov ax,stack
       mov ss,ax
       mov bx,n
       mov si,sum
       mov cx,1
       call fac
fac proc near
   cmp bx,0
   jz r1
    push bx
   dec bx
   call fac
r1:push cx
   mov al,1
   pop dx
mul dl
mov si,ax
ret
fac endp

mov ax,4c00h
           int 21h
code ends
end start

修改过的

15岁的小朋友 发表于 2014-11-1 11:39:07

本帖最后由 15岁的小朋友 于 2014-11-1 11:48 编辑

15岁的小朋友 发表于 2014-11-1 11:26
data segment
n dw 5
sum dw ?

代码很混乱还是不对的 只是编译通过下午有空再修改

hongzb 发表于 2014-11-1 13:43:58

完全看不懂

dAb 发表于 2014-11-1 16:08:03

惭愧啊,看不懂了,没有发觉有移位指令,也没有发觉乘法。

许瑾恩 发表于 2014-11-1 18:28:03

15岁的小朋友 发表于 2014-11-1 11:26
data segment
n dw 5
sum dw ?


我输错了,第二行应该是n db 5.       {:9_221:}不好意思

许瑾恩 发表于 2014-11-1 20:20:43

hongzb 发表于 2014-11-1 13:43
完全看不懂

我也完全不懂,是老师布置的,让我们找错误

许瑾恩 发表于 2014-11-1 20:22:23

15岁的小朋友 发表于 2014-11-1 11:39
代码很混乱还是不对的 只是编译通过下午有空再修改

好像还有一点错误,大神,再帮我改改,谢谢:lol:

许瑾恩 发表于 2014-11-2 22:07:19

15岁的小朋友 发表于 2014-11-1 11:39
代码很混乱还是不对的 只是编译通过下午有空再修改

还有一个错误,帮我再改改呗,谢谢
页: [1]
查看完整版本: 这是汇编语言算5的阶乘,哪位能帮我看看哪错了,谢谢