热情软件屋

 

在AT89C52单片机中,怎样产生8位随机密码


编号:QA004755
建立日期: 2003年11月8日 最后修改日期:2003年11月8日
所属类别:

王瑞:
    操作系统:AT89C52单片机
    编程工具:汇编
    问题:在AT89C52单片机使用中,怎样调用一次汇编子程序产生8位随机密码?索求汇编源程序,谢谢。

回答:

    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, 其他方面,

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio