?? suanshu.asm
字號:
.title "suanshu.asm"
.mmregs
.def start,_c_int00
.bss x1,1
.bss x2,1
.bss y1,1
.bss y2,1
.bss z1,1
.bss z2,1
.bss z3_h,1
.bss z3_l,1
.bss z4,1
v1 .set 014H ;20 -----x1
v2 .set 036H ;54 -----y1
v3 .set 04000H ; 0.5(fraction)----x2
v4 .set 00b548H ; -0.5837(fraction)-----y2
_c_int00
b start
nop
nop
start:
LD #x1 , DP
ST #v1 , x1
ST #v2 , y1
; * * * * * * * * * * test ADD * * * * * * * * * * * *
LD x1 , A ; load x1 -> A
ADD y1 , A ; A + y1 -> A
STL A , z1 ; save A(low 16 bits) ->z1
NOP
; * * * * * * * * * * test SUB * * * * * * * * * * * *
LD x1 , A
SUB y1 , A
STL A,z2
NOP
; * * * * * * * * * * test MPY (integer) * * * * * * * *
RSBX FRCT ; 準備整數乘法
LD x1 , T ; x1 -> T
MPY y1 ,A ; x1*y1 -> A (result is 32 bit)
STH A , z3_h ; 乘法結果高16位在 z3_h單元中
STL A , z3_l ; 乘法結果低16位在z3_l單元中
NOP
ST #v3 , x2
ST #v4 , y2
; * * * * * * * * * * test MPY ((fraction) * * * * * * *
; * * 0.5*(-0.58374)=-0.29187(0x0daa4) * *
SSBX FRCT ; 準備小數乘法
LD x2 , 16 ,A ; load x2 into A (high 16 bits)
MPYA y2 ; x2*y2 -> B, and y2 -> T
;LD B,1,A ;計算1.125*1.5用Q14表示乘積,18.4*36.8用Q5,同時下一條中A改為B
STH B , z4 ; 結果在 z4 單元中
nop
end: B end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -