Created
December 1, 2016 16:52
-
-
Save kmjayadeep/d2827bba5b7158de15da9b929e5ca232 to your computer and use it in GitHub Desktop.
chi x*x+y*y-x*y 16bit in 8051
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;inputs | |
mov dptr,#0 | |
movx a,@dptr | |
mov r0,a | |
inc dptr | |
movx a,@dptr | |
mov r1,a | |
inc dptr | |
movx a,@dptr | |
mov r2,a | |
inc dptr | |
movx a,@dptr | |
mov r3,a | |
;x*x | |
mov 30h,r0 | |
mov 31h,r1 | |
mov 32h,r0 | |
mov 33h,r1 | |
call mul | |
;move x*x | |
mov 20h,#0 | |
mov 21h,40h | |
mov 22h,41h | |
mov 23h,42h | |
mov 24h,43h | |
;y*y | |
mov 30h,r2 | |
mov 31h,r3 | |
mov 32h,r2 | |
mov 33h,r3 | |
call mul | |
;add to prev | |
mov a,24h | |
add a,43h | |
mov 24h,a | |
mov a,23h | |
addc a,42h | |
mov 23h,a | |
mov a,22h | |
addc a,41h | |
mov 22h,a | |
mov a,21h | |
addc a,40h | |
mov 21h,a | |
mov a,#0 | |
addc a,20h | |
mov 20h,a | |
;x*y | |
mov 30h,r0 | |
mov 31h,r1 | |
mov 32h,r2 | |
mov 33h,r3 | |
call mul | |
;sub | |
clr c | |
mov a,24h | |
subb a,43h | |
mov 24h,a | |
mov a,23h | |
subb a,42h | |
mov 23h,a | |
mov a,22h | |
subb a,41h | |
mov 22h,a | |
mov a,21h | |
subb a,40h | |
mov 21h,a | |
mov a,#0 | |
subb a,20h | |
mov 20h,a | |
endp: | |
sjmp endp | |
mul: | |
;clear | |
mov 40h,#0 | |
mov 41h,#0 | |
mov 42h,#0 | |
mov 43h,#0 | |
;last two bytes | |
mov a,31h | |
mov b,33h | |
mul ab | |
mov 43h,a | |
mov 42h,b | |
;first two bytes | |
mov a,30h | |
mov b,32h | |
mul ab | |
mov 41h,a | |
mov 40h,b | |
;x2*y1 | |
mov a,31h | |
mov b,32h | |
mul ab | |
add a,42h | |
mov 42h,a | |
mov a,b | |
addc a,41h | |
mov 41h,a | |
;x1*y2 | |
mov a,30h | |
mov b,33h | |
mul ab | |
add a,42h | |
mov 42h,a | |
mov a,b | |
addc a,41h | |
mov 41h,a | |
mov a,#0 | |
addc a,40h | |
mov 40h,a | |
ret |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment