我编了一个汇编语言的程序,但是错了,不知道错在哪里?
下列程序用于计算斐波那契数列的前13项并显示如下结果:001 001 002 003 005 008 013 021 034 055 089 144 233
代码是这样的:
DATAS SEGMENT
FIB DB 1,1, 11 DUP(?)
DATA ENDP
CODES SEGMENT
ASSUME CS:CODES,DS:DATA
SBINDEC PROC
MOV BL,10
MOV CX,3
B0:
DIV BL
PUSH AX
LOOP B0
MOV CX,3
B1: POP AX
CALL DISP
LOOP B0
RET
BINDEC ENDP
DISP PROC
PUSH AX
PUSH DX
ADD AH,0
MOV DL,AH
MOV AH,2
INT 21
POP DX
POP AX
DISP ENDP
START:
LEA SI,FIB
S0: MOV AL,[SI-1]
ADD AL,[SI-2]
MOV [SI],AL
INC SI
CMP SI,OFFSET FIB[13]
JB S0
XOR SI,SI
S1: MOV AL,FIB[SI]
CALL BINDEC
MOV DL,20H
MOV AH,2
INT 21H INC SI
MOV SI,13
JB S1
MOV AH,4CH
CODES ENDS