使用nasm实现Fibonacci数列

本文介绍了如何在Ubuntu虚拟机中使用nasm实现Fibonacci数列。通过展示具体的汇编代码,实现了输入1-9个数字并输出对应斐波纳契数值的功能。例如输入0 1 3 9,将输出1, 1, 3, 55,每个数字以换行符分隔。运行代码后,结果会在终端显示。" 110905769,10294490,多机器人编队协同避障:人工势场法原理与实现,"['多机器人系统', '路径规划', '避障', 'ROS', '编队控制']
摘要由CSDN通过智能技术生成

平台搭建

  1. 安装虚拟机Ubuntu
  2. 在Ubuntu上下载nasm即可

汇编代码展示

以下是Fibonacci.asm原文件,实现了:
输入:1-9个数字,可以假设数字是递增的。
输出:这些参数对应的斐波纳契项的数值,以换行符隔开,颜色要求输出不同的颜色。
注:f(0)=1,f(1)=1
示例输入:
0 1 3 9
示例输出:
1
1
3
55

global _start

section .text:
_start :

mov byte[loc],1
mov word[para],1
mov word[para2],1

mov ax,-1
PUSH ax ;sign

mov byte[argue],0

mov byte[colorsign],0

;read 1
_read :
mov eax,3
mov ebx,0
mov ecx,input
mov edx,1
int 80h

sub byte[input],30h

mov al,byte[input]

CMP al,0
JL _printfibonacci
CMP al,9
JG _printfibonacci
;else
mov ax,0
mov al,byte[argue]
mov bl,10
mul bl
movzx bx,byte[input]
add ax,bx
mov byte[argue],al ;argue=argue*10+input
JMP _read

_printfibonacci :
;color
movzx ax,byte[colorsign]
mov bl,7
div bl
mov byte[colorsign],ah

movzx ax,byte[argue]
CMP ax,1
JNG _printFirst

_calc :
;loc++
add byte[loc],1

;par
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值