0

著名的斐波那契数列,据说是由比萨的莱昂纳多在 1200 年左右发现的,几个世纪以来一直因其普遍的品质而受到艺术家、数学家和作曲家的重视。数字 1 之后的系列中的每个数字都是前两个数字的总和:

1、1、2、3、5、8、13、21、34、55。. .

编写一个程序,生成并显示斐波那契数列中的前 24 个数字,从 1 开始,以 46,368 结束。

这是我的代码。但屏幕只显示空白而不是整数。有人可以帮我解决这个问题吗?

标题作业 1 (Assignment.asm)

INCLUDELIB irvine.lib
.model small
.stack 100h

.data
num dw 1

.code 
extrn writeint:proc
main proc 
    mov ax,1
start:
    add ax,num
    mov bx,10
    call writeInt
    xchg ax,num
    loop start
main endp
end main 
4

1 回答 1

0

一个迟到的答案,但我看不到这么容易回答的问题:-)

IRVINE.LIB不是IRVINE16.LIBKip Irvine 的原作。有人修改IRVINE16.asm并可能FLOATIO.ASM重新编译它。所以,我不能链接你的代码,也不能测试WriteInt。您可以从 Irvine 的主页下载全部内容:http ://www.kipirvine.com/asm/gettingStartedVS2017/Irvine.zip

我看到三个错误:

在主程序开始时,您必须初始化DS

mov ax, @data
mov ds, ax

LOOP循环CX次数。所以,首先初始化CX

    ...
    mov ax,1
    mov cx, 24
start:
    add ax,num
    ...
    loop start
    ...

在程序结束时,您必须退出程序:

mov ax, 4C00h
int 21h
于 2019-04-06T15:17:30.063 回答