?? pn_gen.asm
字號:
;
; pn_gen.asm - PN pseudo number generator
; generates 16-bit wordlength zero-mean random numbers
; generator polynomial: x^-15+x^-11+x^-2+1
;
; Prototype: int pn_gen(int *)
;
; Entry: arg0 - AR0 pointer to the shift register
; Return: T0 - random number
BIT15 .equ 0x8000
BIT11 .equ 0x0800
BIT2 .equ 0x0004
BIT0 .equ 0x0001
.def _pn_gen
.sect "rand_gen"
_pn_gen
mov *AR0,AC0 ; Get register value
bfxtr #(BIT15|BIT2),AC0,T0 ; Get bit 15 and bit 2
bfxtr #(BIT11|BIT0),AC0,T1 ; Get bit 12 and bit 0
sfts AC0,#1
|| xor T0,T1 ; XOR all bits
mov T1,T0
sfts T1,#-1
xor T0,T1 ; Final XOR
and #1,T1
or T1,AC0
mov AC0,*AR0 ; Update register
sub #0x4000,AC0,T0 ; Zero mean white noise
|| ret
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -