📄 util_asm.asm
字号:
.mmregs
FP .set AR7
.sect ".cinit"
.align 1
.field 1,16
.field _seed$1+0,16
.field 21845,16 ; _seed$1 @ 0
.sect ".text"
.bss _seed$1,1,0,0
.sect ".text"
.global _Set_zero
;----------------------------------------------------------------------
; 20 | void Set_zero(
; 21 | Word16 x[], /* (o) : vector to clear */
; 22 | Word16 L /* (i) : length of vector */
; 23 | )
;----------------------------------------------------------------------
_Set_zero:
PSHM AR1
;----------------------------------------------------------------------
; 25 | Word16 i;
;----------------------------------------------------------------------
SSBX SXM
NOP
LD *SP(2),B
;----------------------------------------------------------------------
; 27 | for (i = 0; i < L; i++)
;----------------------------------------------------------------------
BC L2,BLEQ
STLM A,AR1
SUB #1,B,A
STLM A,BRC
NOP
RPTB L2-1
L1:
ST #0,*AR1+
L2:
POPM AR1
RET
.sect ".text"
.global _Random
;----------------------------------------------------------------------
; 54 | Word16 Random()
;----------------------------------------------------------------------
_Random:
;----------------------------------------------------------------------
; 59 | seed = extract_l(L_add(L_shr(L_mult(seed, 31821), 1), 13849L));
;----------------------------------------------------------------------
SSBX SXM ; ****
SSBX FRCT
SSBX OVM
MPY *(_seed$1),#31821,A
SFTA A,-1
LD #13849,B
ADD B,A
STL A,*(_seed$1)
;----------------------------------------------------------------------
; 61 | return(seed);
;----------------------------------------------------------------------
LD *(_seed$1),A
ANDM #-833,*(ST1)
ANDM #-4,*(PMST)
RET
.sect ".text"
.global _Copy
;----------------------------------------------------------------------
; 38 | void Copy(
; 39 | Word16 x[], /* (i) : input vector */
; 40 | Word16 y[], /* (o) : output vector */
; 41 | Word16 L /* (i) : vector length */
; 42 | )
;----------------------------------------------------------------------
_Copy:
;----------------------------------------------------------------------
; 44 | Word16 i;
;----------------------------------------------------------------------
SSBX SXM
NOP
LD *SP(2),B
MVDK *SP(1),*(AR3)
;----------------------------------------------------------------------
; 46 | for (i = 0; i < L; i++)
;----------------------------------------------------------------------
BC L4,BLEQ ; |46|
STLM A,AR2
SUB #1,B,A
STLM A,BRC
NOP
RPTB L4-1
L3:
MVDD *AR2+,*AR3+ ; |47|
L4:
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -