rand.s
来自「s3c44b0开发板ucos2.76源代码 包括ucos2.76的所有源文件。」· S 代码 · 共 30 行
S
30 行
AREA |subr|, CODE, READONLY
EXPORT randomnumber
randomnumber
; on exit:
; a1 = low 32-bits of pseudo-random number
; a2 = high bit (if you want to know it)
LDR ip, |seedpointer|
LDMIA ip, {a1, a2}
TST a2, a2, LSR#1 ; to bit into carry
MOVS a3, a1, RRX ; 33-bit rotate right
ADC a2, a2, a2 ; carry into LSB of a2
ADC a2, a2, a2 ; carry into LSB of a2
EOR a3, a3, a1, LSL#12 ; (involved!)
EOR a1, a3, a3, LSR#20 ; (similarly involved!)
STMIA ip, {a1, a2}
MOV pc, lr
|seedpointer|
DCD seed
AREA |Random$$data|, DATA
EXPORT seed
seed
DCD &55555555
DCD &55555555
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?