写的比较麻烦,因为把存放斐波那契数列的内存单元划分的正正好
其实真正应该是写个判断数<1000,然后边计算边输出最好
但是因为我觉得斐波那契前几项数是常识- -直接想了最好一项987是17项,就预留了20个字节单元
随意看看吧,代码太繁琐了,有时间再写个版本吧
data segment
db 20 dup(0);第15项是377,前14项都小于255,最大的小于1000的数是987是第17项,所以预留20个字节单元input db 'the fibonacci Sequence (under 1000) is:',0ah,0dh,'$'
data ends
stack segment
db 20 dup(0)
stack ends
code segment
assume cs:code,ds:data,ss:stack
;程序开始
begin:
mov ax,data
mov ds,ax
lea dx,input;提示语句操作
mov ah,9;调用21中断的9号功能
int 21h
xor dx,dx;dx清零
xor ax,ax;ax清零
mov cx,12;只要循环12次
mov bx,0;用bx存放前面一项a(n-1)
mov dx,1;用dx存放后面一项a(n)
mov si,0;ds:si指向表的第一个字节单元
mov [si],bx;存放初始的0,1两项
mov [si+1],dx
mov si,2;ds:si指向表的第三个字节单元