2010. 3. 24.

68H12 Microcontroller Simulator - Square Root Calculator in Assembly Language





Written an assembly code to calculate a square root of a number, and simulated on Motorola 68HC12 microcontroller simulator.






Org $0800
TopOfProgram:
lds #$0a00
ldx #16
ldy #OutputTable
ldd #0
std TestValue
MainLoop:
jsr Sqrt
std 2,y+
ldd TestValue
addd #4096
std TestValue
dbne x,MainLoop
BreakPoint: bra *
TestValue:   dc.w 0
***************************************************
Sqrt:
pshy
std Input
ldd #$8000
std Result
std Size
Loop:
ldd Result
tfr d,y
emul
Diamond:
cpy Input
blo NextSize
bne LowerResult
cpd #0
beq NextSize
LowerResult:
ldd Result
subd Size
std Result
NextSize:
lsr Size
ror Size+1
UpdateResult:
ldd Result
addd Size
std Result
LastDiamond:
ldd Size
bne Loop
ReturnResult:
ldd Result
puly
rts

***************************************************
ORG          $0900
OutputTable: dc.w 0,0,0,0,0,0,0,0
             dc.w 0,0,0,0,0,0,0,0
***************************************************
Input:       dc.w 0
Result:      dc.w 0
size:        dc.w 0
***************************************************

댓글 없음: