单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2523|回复: 18
打印 上一主题 下一主题
收起左侧

51单片机一起学汇编—BCD调整 数据处理

  [复制链接]
跳转到指定楼层
楼主
zhouchuantao 发表于 2019-3-9 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/***********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       ;调回开始

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶1 踩
沙发
 楼主| zhouchuantao 发表于 2019-3-10 12:04 | 只看该作者
/*************************
题目要求
已知 X Y,计算Z值, 结果存 20H 单元中
  Z=X-Y(X≥0)
  Z=X+Y(X<0)

需要知识:存储寄存器中的正数和负数

************************/  

            X DATA 30H                ;未知数X 用寄存器30H代替   DATA是个伪指令
            Y DATA 31H                ;未知数Y 用寄存器31H代替

            ORG 0000H                 ;程序开始地址
            JMP START                 ;跳转主程序
START:
            MOV SP,#7FH               ;堆栈地址7FH
            MOV X,#-9                 ;以30H为地址的寄存器中 载入初值 负9
            MOV Y,#1                  ;以31H为地址的寄存器中 载入初值 1
            MOV A,X                   ;X 的初值 载入A中
            MOV B,Y                   ;Y 的初值 载入B中
            JB Acc.7,Positive         ;ACC.7位是1还是0,判断X是正数还是负数, 如是正数跳转加法运算,如是负数执行下一条道减法运算
            CLR C                     ;PSW.7位   CY位需要清零,不能影响到加减法结果
            SUBB A,B                  ;减运算,结果存ACC中
            SJMP Result               ;跳转存结果
Positive:
            ADD A,B                   ;加运算,结果存ACC中

Result:            MOV 20H,A                 ;结果存在寄存器地址为20H中
            MOV R1,20H                ;调试中查看数值,验证程序
            JMP $
END
板凳
小林大哥哥 发表于 2019-3-17 13:42 | 只看该作者

/*************************
题目要求
已知 X Y,计算Z值, 结果存 20H 单元中
  Z=X-Y(X≥0)
  Z=X+Y(X<0)

需要知识:存储寄存器中的正数和负数

************************/  

            X DATA 30H                ;未知数X 用寄存器30H代替   DATA是个伪指令
            Y DATA 31H                ;未知数Y 用寄存器31H代替

            ORG 0000H                 ;程序开始地址
            JMP START                 ;跳转主程序
START:
            MOV SP,#7FH               ;堆栈地址7FH
            MOV X,#-9                 ;以30H为地址的寄存器中 载入初值 负9
            MOV Y,#1                  ;以31H为地址的寄存器中 载入初值 1
            MOV A,X                   ;X 的初值 载入A中
            MOV B,Y                   ;Y 的初值 载入B中
            JB Acc.7,Positive         ;ACC.7位是1还是0,判断X是正数还是负数, 如是正数跳转加法运算,如是负数执行下一条道减法运算
            CLR C                     ;PSW.7位   CY位需要清零,不能影响到加减法结果
            SUBB A,B                  ;减运算,结果存ACC中
            SJMP Result               ;跳转存结果
Positive:
            ADD A,B                   ;加运算,结果存ACC中

Result:            MOV 20H,A                 ;结果存在寄存器地址为20H中
            MOV R1,20H                ;调试中查看数值,验证程序
            JMP $
END
地板
songzhy 发表于 2019-4-1 07:16 | 只看该作者
谢谢分享......
5#
michael2018 发表于 2019-4-8 16:05 | 只看该作者
楼主牛逼啦
6#
solo2pm 发表于 2019-4-13 00:11 | 只看该作者
新人  表示汇编还不太懂 看天书……
7#
songzhy 发表于 2019-4-14 07:49 | 只看该作者
新人  表示汇编还不太懂
8#
silicon_hacker 发表于 2019-4-24 22:12 | 只看该作者
51单片机学习汇编
9#
qq12345qq6789qq 发表于 2019-4-25 16:01 | 只看该作者

新人  表示汇编还不太懂
10#
迁就 发表于 2019-4-26 17:35 | 只看该作者
谢谢分享
11#
jackliuwenli 发表于 2019-5-29 14:16 | 只看该作者
谢谢分享
12#
1316880381 发表于 2019-6-3 14:37 来自手机 | 只看该作者
谢谢分享
13#
vccccclala 发表于 2019-6-18 16:55 | 只看该作者
感谢分享
14#
175花见花开艰苦 发表于 2019-6-28 13:14 | 只看该作者
感谢分享
15#
刷新时间 发表于 2019-7-5 10:46 | 只看该作者
刚刚开始
16#
tieq1952 发表于 2019-7-10 06:35 | 只看该作者
谢谢分享!!!
17#
鹏博士PBs 发表于 2019-7-10 09:22 | 只看该作者
2进制转10进制的BCD译码器
18#
一直有你陪伴 发表于 2019-7-27 01:58 | 只看该作者
楼主牛逼啦,汇编看不懂
19#
LIUSIGN 发表于 2019-8-5 08:40 | 只看该作者
楼主牛逼啦,汇编看不懂
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

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