Sure. Here is one of the problem I worked on from the ASM book I studied from.
-----
;-----------------------------------------------;
; ;
; ASM Code: c14pp141.asm ;
; Developer: Kuphryn ;
; Platform: x86 16bits DOS Assembly ;
; Compiled: September 23, 2002 - MASM 6.15 ;
; Misc: Calculates Fibonacci Number using ;
; multiple precision arithmetic. ;
; ;
;-----------------------------------------------;
INCLUDE PCMAC.INC
.MODEL SMALL
.586 ; Indicates support for Pentium chip.
.STACK 100h
.DATA
CR EQU 13
LF EQU 10
ProMsg DB CR, LF, 'Multi Precision Fibonacci', CR, LF, '$'
NMsg DB CR, LF, 'Enter a number: $'
FMsg DB CR, LF, 'Fib: $'
NNum DW 0
FibNum0 DD 0
FibNum1 DD 0
SumNum0 DD 0
SumNum1 DD 0
PreNum0 DD 0
PreNum1 DD 0
.CODE
EXTRN GetDec : NEAR, PutDDec : NEAR
Program PROC
mov ax, @data ; Copy data address to register.
mov ds, ax ; Copy register ax to data register.
mov dx, OFFSET ProMsg
mov ah, 9h ; Display text message.
int 21h ; Call DOS.
_PutStr NMsg ; Ask for a number to cal. Fib.
call GetDec ; Get number input.
mov NNum, ax
call CalFib ; Call function to cal. Fib.
_PutStr FMsg
cmp FibNum1, 0
je OutFN1
mov eax, FibNum1
call PutDDec
OutFN1:
mov eax, FibNum0
call PutDDec
PEnd:
mov al, 0 ; Return 0.
mov ah, 4ch ; Exit to DOS
int 21h
Program ENDP
;--------------;
CalFib PROC
CFBeg:
cmp NNum, 0
jl CFLess
cmp NNum, 1
jg CFLp
mov ax, NNum
mov FibNum0, eax
jmp CFEnd
CFLess:
mov NNum, 0
jmp CFEnd
CFLp:
mov FibNum0, 1
sub NNum, 1
mov cx, NNum
CFLoop:
mov eax, FibNum0
add eax, PreNum0
mov SumNum0, eax
mov eax, FibNum1
adc eax, PreNum1
mov SumNum1, eax
mov eax, FibNum0
mov PreNum0, eax
mov eax, FibNum1
mov PreNum1, eax
mov eax, SumNum0
mov FibNum0, eax
mov eax, SumNum1
mov FibNum1, eax
dec cx
jnz CFLoop
CFEnd:
ret
CalFib ENDP
;--------------;
END Program
-----
Kuphryn