众所周知的斐波那契数字系列,据说是由 比萨的莱昂纳多大约在1200年左右,已被评估了几个世纪 因其艺术家,数学家和作曲家的普遍品质。 数字1后面的系列中的每个数字是两者之和 以前的数字:
1,1,2,3,5,8,13,21,34,55。 。
编写一个程序,生成并显示前24个数字 Fibonacci系列,从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
答案 0 :(得分:0)
一个较晚的答案,但我看不到这样一个简单的未解决的问题:-)
您的IRVINE.LIB
不是Kip Irvine的原始IRVINE16.LIB
。有人修改了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