?? sin_ok.asm
字號:
;File Name:exp01.asm
;the program is compiled at no autoinitialization mode
.mmregs
.global _main
.ref d_xs,d_sinx,d_cosx,sinx,cosx
sin_x .usect "sin_x",360
STACK: .usect "STACK",10
k_theta .set 286
PA0 .set 0
_main: stm #STACK+10,SP
stm k_theta,ar0
stm 0,ar1
stm #sin_x,ar6
stm #90,brc
rptb loop1-1
ldm ar1,a
ld #d_xs,dp
stl a,@d_xs
stl a,@d_xc
call sinx
call cosx
ld #d_sinx,dp
ld @d_sinx,16,a
mpya @d_cosx
sth b,1,*ar6+
mar *ar1+0
loop1: stm #sin_x+89,ar7
stm #88,brc
rptb loop2-1
ld *ar7-,a
stl a,*ar6+
loop2: stm #179,brc
stm #sin_x,ar7
rptb loop3-1
ld *ar7+,a
neg a
stl a,*ar6+
loop3: stm #sin_x,ar6
stm #1,ar0
stm #360,bk
;loop4: portw *ar6+0%,pa0
loop4: b loop4
sinx:
.def d_xs,d_sinx
.data
table_s: .word 01c7h
.word 030bh
.word 0666h
.word 1556h
d_coef_s .usect "coef_s",4
d_xs .usect "sin_vars",1
d_squr_xs .usect "sin_vars",1
d_temp_s .usect "sin_vars",1
d_sinx .usect "sin_vars",1
d_1_s .usect "sin_vars",1
.text
ssbx FRCT
stm #d_coef_s,ar5
rpt #3
mvpd #table_s,*ar5+
stm #d_coef_s,ar3
stm #d_xs,ar2
stm #d_1_s,ar4
st #7fffh,d_1_s
squr *ar2+,a
st a,*ar2
||ld *ar4,b
masr *ar2+,*ar3+,b,a
mpya a
sth a,*ar2
masr *ar2-,*ar3+,b,a
mpya *ar2+
st b,*ar2
||ld *ar4,b
masr *ar2-,*ar3+,b,a
mpya *ar2+
st b,*ar2
||ld *ar4,b
masr *ar2-,*ar3+,b,a
mpya d_xs
sth b,d_sinx
ret
cosx:
.def d_xc,d_cosx
d_coef_c .usect "coef_c",4
.data
table_c: .word 0249h
.word 0444h
.word 0aabh
.word 4000h
d_xc .usect "cos_vars",1
d_squr_xc .usect "cos_vars",1
d_temp_c .usect "cos_vars",1
d_cosx .usect "cos_vars",1
c_1_c .usect "cos_vars",1
.text
ssbx FRCT
stm #d_coef_c,ar5
rpt #3
mvpd #table_c,*ar5+
stm #d_coef_c,ar3
stm #d_xc,ar2
stm #c_1_c,ar4
st #7fffh,c_1_c
squr *ar2+,a
st a,*ar2
||ld *ar4,b
masr *ar2+,*ar3+,b,a
mpya a
sth a,*ar2
masr *ar2-,*ar3+,b,a
mpya *ar2+
st b,*ar2
||ld *ar4,b
masr *ar2-,*ar3+,b,a
sfta a,-1,a
neg a
mpya *ar2+
mar *ar2+
retd
add *ar4,16,b
sth b,*ar2
ret
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -