在AT89C52单片机中,怎样产生8位随机密码
编号:QA004755
建立日期: 2003年11月8日 最后修改日期:2003年11月8日
所属类别:
Q
王瑞:
操作系统:AT89C52单片机
编程工具:汇编
问题:在AT89C52单片机使用中,怎样调用一次汇编子程序产生8位随机密码?索求汇编源程序,谢谢。
A回答:
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
此问题由cngb回答。
附加关键字:编程, 源程序, programming, source code, 其他语言, asm, vba, vbscript, 其他方面, 。
| |
|
|
| |
|
|