平台搭建
- 安装虚拟机Ubuntu
- 在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