Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,30 @@
|
|||
fib:
|
||||
; WRITTEN IN C WITH X86-64 CLANG 3.3 AND DOWNGRADED TO 16-BIT X86
|
||||
; INPUT: DI = THE NUMBER YOU WISH TO CALC THE FIBONACCI NUMBER FOR.
|
||||
; OUTPUTS TO AX
|
||||
|
||||
push BP
|
||||
push BX
|
||||
push AX
|
||||
mov BX, DI ;COPY INPUT TO BX
|
||||
xor AX, AX ;MOV AX,0
|
||||
test BX, BX ;SET FLAGS ACCORDING TO BX
|
||||
je LBB0_4 ;IF BX == 0 RETURN 0
|
||||
cmp BX, 1 ;IF BX == 1 RETURN 1
|
||||
jne LBB0_3
|
||||
mov AX, 1 ;ELSE, SET AX = 1 AND RETURN
|
||||
jmp LBB0_4
|
||||
LBB0_3:
|
||||
lea DI, WORD PTR [BX - 1] ;DI = BX - 1
|
||||
call fib ;RETURN FIB(BX-1)
|
||||
mov BP, AX ;STORE THIS IN BP
|
||||
add BX, -2
|
||||
mov DI, BX
|
||||
call fib ;GET FIB(DI - 2)
|
||||
add AX, BP ;RETURN FIB(DI - 1) + FIB(DI - 2)
|
||||
LBB0_4:
|
||||
|
||||
add sp,2
|
||||
pop BX
|
||||
pop BP
|
||||
ret
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
getfib:
|
||||
;input: BX = the desired fibonacci number (in other words, the "n" in "F(n)")
|
||||
; DS must point to the segment where the fibonacci table is stored
|
||||
;outputs to DX:AX (DX = high word, AX = low word)
|
||||
push ds
|
||||
cmp bx,41 ;bounds check
|
||||
ja IndexOutOfBounds
|
||||
shl bx,1
|
||||
shl bx,1 ;multiply by 4, since this is a table of dwords
|
||||
mov ax,@code
|
||||
mov ds,ax
|
||||
mov si,offset fib
|
||||
mov ax,[ds:si] ;fetch the low word into AX
|
||||
mov dx,2[ds:si] ;fetch the high word into DX
|
||||
pop ds
|
||||
ret
|
||||
|
||||
|
||||
IndexOutOfBounds:
|
||||
stc ;set carry to indicate an error
|
||||
mov ax,0FFFFh ;return FFFF as the error code
|
||||
pop ds
|
||||
ret
|
||||
|
||||
;table of the first 41 fibonacci numbers
|
||||
fib dword 0, 1, 1, 2, 3, 5, 8, 13
|
||||
dword 21, 34, 55, 89, 144, 233, 377, 610
|
||||
dword 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657
|
||||
dword 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269
|
||||
dword 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986
|
||||
dword 102334155
|
||||
Loading…
Add table
Add a link
Reference in a new issue