- 注册时间
- 2004-8-29
- 最后登录
- 1970-1-1
|
holdrand equ 27h
srand:
mov holdrand+03h,r7
mov holdrand+02h,r6
mov holdrand+01h,r5
mov holdrand,r4
ret
rand:
mov r7, #0fdh
mov r6, #043h
mov r5, #03h
mov r4, #00h
mov r3, holdrand+3
mov r2, holdrand+2
mov r1, holdrand+1
mov r0, holdrand
lcall ululmul
mov a, r7
add a, #0c3h
mov r7, a
mov a, r6
addc a, #09eh
mov r6, a
mov a, r5
addc a, #026h
mov r5, a
clr a
addc a, r4
mov r4, a
mov holdrand+3, r7
mov holdrand+2, r6
mov holdrand+1, r5
mov holdrand, a
mov r0, #018h
lcall ulshr
ret
ululmul:
mov a, r0
mov b, r7
mul ab
xch a, r4
mov b, r3
mul ab
add a, r4
mov r4, a
mov a, r1
mov b, r6
mul ab
add a, r4
mov r4, a
mov b, r2
mov a, r5
mul ab
add a, r4
mov r4, a
mov a, r2
mov b, r6
mul ab
xch a, r5
mov r0, b
mov b, r3
mul ab
add a, r5
xch a, r4
addc a, r0
add a, b
mov r5,a
mov a, r1
mov b, r7
mul ab
add a, r4
xch a, r5
addc a, b
mov r4, a
mov a, r3
mov b, r6
mul ab
mov r6, a
mov r1, b
mov a, r3
mov b, r7
mul ab
xch a, r7
xch a, b
add a, r6
xch a, r5
addc a, r1
mov r6, a
clr a
addc a, r4
mov r4, a
mov a, r2
mul ab
add a, r5
xch a, r6
addc a, b
mov r5, a
clr a
addc a, r4
mov r4, a
ret
ulshr:
mov a, r0
jz ulshr_out
ulshr_loop:
mov a, r4
clr c
rrc a
mov r4, a
mov a, r5
rrc a
mov r5, a
mov a, r6
rrc a
mov r6, a
mov a, r7
rrc a
mov r7, a
djnz r0, ulshr_loop
ulshr_out:
ret |
|