📄 rand.asm
字号:
;
; Project: Experiment 3.6.6.5 Real Time Signal Generation - Chapter 3
; File name: rand.asm
;
; Description: 12-bit with mod 20 random number generator
;
; For the book "Real Time Digital Signal Processing:
; Implementation and Application, 2nd Ed"
; By Sen M. Kuo, Bob H. Lee, and Wenshun Tian
; Publisher: John Wiley and Sons, Ltd
;
; Entry: None
; Return: T0 = rand()
;
; 15 cycles
;
;
; Tools used: CCS v.2.12.07
; TMS320VC5510 DSK Rev-C
;
.mmregs
.bss _n,2,0,2 ; long n
.bss _a,1,0,0 ; short a
.def _initRand
.def _randNumber
.sect ".text"
_initRand:
mov AC0,dbl(*(#_n)) ; n = (long)seed;
mov #2045,*(#_a) ; a = 2045;
ret
_randNumber:
amov #_n,XAR0
mov *(#_a),T0
mpym *AR0+,T0,AC0 ; n = a*n;
mpymu *AR0-,T0,AC1 ; (this is an integer 32x16 multiply)
sfts AC0,#16
add AC1,AC0
mov #0xFFFF<<#16,AC1 ; n = n&0xFFFFF000;
or #0xF000,AC1
and AC0,AC1
mov AC1,dbl(*AR0)
|| sfts AC1,#-20,AC0 ; ran = (short)(n>>20);
mov AC0,T0 ; return (ran);
ret
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -