Encoding 如何对斐波那契序列LMC进行编码?

Encoding 如何对斐波那契序列LMC进行编码?,encoding,sequence,fibonacci,little-man-computer,Encoding,Sequence,Fibonacci,Little Man Computer,我想知道是否有可能创建一个程序,在“小人计算机”中创建斐波那契序列 程序将在字母框中输出序列的各个数字。唯一的输入是询问用户它希望序列达到多高。例如,如果我输入“20”,它只会上升到数字13 任何帮助都将不胜感激 以撒 资料来源: 斐波那契系列可通过以下方式在LMC中打印: INP STO n #number of terms LDA one OUT loop LDA fib #THE MAIN LOOP THAT P

我想知道是否有可能创建一个程序,在“小人计算机”中创建斐波那契序列

程序将在字母框中输出序列的各个数字。唯一的输入是询问用户它希望序列达到多高。例如,如果我输入“20”,它只会上升到数字13

任何帮助都将不胜感激

以撒

资料来源:


斐波那契系列可通过以下方式在LMC中打印:

     INP
      STO   n     #number of terms
      LDA   one
      OUT

loop  LDA   fib     #THE MAIN LOOP THAT PRINTS FIBONACCI NUMBERS
      STO   temp2
      ADD   temp
      STO   fib
      LDA   temp2
      STO   temp
      BR    check

check LDA   n         #LOOP TO KEEP A TRACK OF NUMBER OF TERMS
      BRZ   halt
      SUB   one
      STO   n
      BRZ   halt
      LDA   fib
      OUT
      BR    loop

halt  HLT        
n     DAT   000
fib   DAT   001
temp  DAT   001
temp2 DAT   000
one   DAT   001
说明:程序首先要求输入n,即要打印的术语数。然后循环开始运行-它将打印变量fib的默认值,该值已设置为1。fib的值存储在另一个变量temp2中,变量temp用于记录fib的上一个值,以便正确地添加数字并获得正确的序列。随着项数的增加,循环控制fib、temp和temp2的值

然后,该程序检查所需的术语数量是否已打印,并递减n的值。如果n=0,则表示已达到所需的术语数量,程序停止。如果n不为零,循环将继续,直到n=0

**虽然可能会有更有效的方法,但这一方法工作正常,使用的邮箱数量较少,这使得它非常有效

     INP
      STO   n     #number of terms
      LDA   one
      OUT

loop  LDA   fib     #THE MAIN LOOP THAT PRINTS FIBONACCI NUMBERS
      STO   temp2
      ADD   temp
      STO   fib
      LDA   temp2
      STO   temp
      BR    check

check LDA   n         #LOOP TO KEEP A TRACK OF NUMBER OF TERMS
      BRZ   halt
      SUB   one
      STO   n
      BRZ   halt
      LDA   fib
      OUT
      BR    loop

halt  HLT        
n     DAT   000
fib   DAT   001
temp  DAT   001
temp2 DAT   000
one   DAT   001