设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 1724|回复: 1
收起左侧

C51汇编实现16位数值的乘法运算 32位积 R0~R3寄存器存放计算结果 不影响任何标志位

[复制链接]
发表于 2018-11-6 10:12:20 | 显示全部楼层 |阅读模式

  1. ;AA55*4D5A=337772E2
  2. MOV R0,#0AAH
  3. MOV R1,#055H       

  4. MOV R2,#04DH       
  5. MOV R3,#05AH       


  6. CALL MUL_16
  7. ;R0:33 R1:77 R2:72 R3:E2
  8. JMP $
  9.         ;----------------16位乘法(32位乘积)----------------
  10.         ;输入:R0:被乘数高8位 R1:被乘数低8位 R2:乘数高8位 R3:乘数低8位
  11.         ;输出:R0~R3 (R0为高字节,不影响任何标志位)
  12.         MUL_16:

  13.         PUSH 4
  14.         PUSH ACC
  15.         PUSH B
  16.         PUSH PSW
  17.         MOV A,R0
  18.         MOV B,R2
  19.         MUL AB
  20.         XCH A,R0
  21.         XCH A,B
  22.         XCH A,R0
  23.         XCH A,R1
  24.         MOV 4,A
  25.         MOV A,R3
  26.         MUL AB
  27.         XCH A,R2
  28.         XCH A,B
  29.         ADD A,R1
  30.         MOV R1,A
  31.         CLR A
  32.         ADDC A,R0
  33.         MOV R0,A
  34.         MOV A,4
  35.         MUL AB
  36.         ADD A,R2
  37.         XCH A,4
  38.         XCH A,B
  39.         ADDC A,R1
  40.         MOV R1,A
  41.         CLR A
  42.         ADDC A,R0
  43.         MOV R0,A
  44.         MOV A,R3
  45.         MUL AB
  46.         MOV R3,A
  47.         MOV A,B
  48.         ADD A,4
  49.         MOV R2,A
  50.         CLR A
  51.         ADDC A,R1
  52.         MOV R1,A
  53.         CLR A
  54.         ADDC A,R0
  55.         MOV R0,A
  56.         POP PSW
  57.         POP B
  58.         POP ACC
  59.         POP 4
  60.         RET

  61. END
复制代码
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-26 08:50 , Processed in 1.052060 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表