[应用方案]

BCD调整 数据处理

[复制链接]
577|7
手机看帖
扫描二维码
随时随地手机跟帖
benjaminka|  楼主 | 2024-1-21 20:52 | 显示全部楼层 |阅读模式

/***********BCD调整**************/

      ORG  0000H
      JMP START
START:
      MOV SP,#7FH     ;设置堆栈地址
      MOV 50H,#69H    ;十六机制立即数69H 载人地址为50H寄存器中
      MOV R3,50H      ;运行DEBUG时 在R2中查看数据
      MOV R0,#60H     ;十六机制立即数60H 载人R0寄存器中
      MOV A,50H       ;地址为50H寄存器中的数据 载人累加器ACC中
      ANL A,#0F0H     ;累加器ACC中的高四位数据和十六进制的立即数 F0H  逻辑 与 运算
      MOV @R0,A       ;累加器ACC中的数据 载入以R0中的数据为地址的寄存器中   注意间接寻址:@R0=50H,50H作为寄存器地址使用,而不是数据
      MOV 30H,@R0     ;@R0间接寻址的数据 载入30H寄存器中
      MOV R1,30H      ;运行DEBUG时 在R2中查看数据
      MOV A,50H       ;寄存器50H 中的数据 载入累加器ACC
      ANL A,#0FH      ;累加器ACC中的低四位数据和十六进制的立即数 0FH  逻辑 与 运算
      INC R0          ;寄存器R0中的数据加1
      MOV @R0,A       ;累加器ACC中的数据 载入以R0中的数据为地址的寄存器中
      MOV 31H,@R0     ;@R0间接寻址的数据 载入30H寄存器?
      MOV R2,31H      ;运行DEBUG时 在R2中查看数据
      JMP START       ;调回开始

使用特权

评论回复
tpgf| | 2024-2-4 08:05 | 显示全部楼层
可是这个数据是如何进行调整的呢

使用特权

评论回复
caigang13| | 2024-2-4 08:20 | 显示全部楼层
还用汇报写代码啊,现在很少见了。

使用特权

评论回复
qcliu| | 2024-2-4 08:44 | 显示全部楼层
如果将这段代码改成c语言的话 应该怎么写呢

使用特权

评论回复
wiba| | 2024-2-4 09:46 | 显示全部楼层
8421BCD码用来表示十进制数。当然了,BCD码也是用0、1二进制来表示的

使用特权

评论回复
drer| | 2024-2-4 18:01 | 显示全部楼层
这段代码只是说明了应该操作哪个寄存器啊

使用特权

评论回复
coshi| | 2024-2-4 18:37 | 显示全部楼层
我有些糊涂了  这里是控制调整还是码值调整啊

使用特权

评论回复
kxsi| | 2024-2-4 19:11 | 显示全部楼层
计算机并不能理解什么是8421BCD表示的十进制,还是普通的16进制。它都默认是二进制运算

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

1157

帖子

0

粉丝