找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16787|回复: 50
收起左侧

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

  [复制链接]
ID:255377 发表于 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       ;调回开始

回复

使用道具 举报

ID:255377 发表于 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
回复

使用道具 举报

ID:492516 发表于 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
回复

使用道具 举报

ID:500108 发表于 2019-4-1 07:16 | 显示全部楼层
谢谢分享......
回复

使用道具 举报

ID:306176 发表于 2019-4-8 16:05 | 显示全部楼层
楼主牛逼啦
回复

使用道具 举报

ID:510907 发表于 2019-4-13 00:11 | 显示全部楼层
新人  表示汇编还不太懂 看天书……
回复

使用道具 举报

ID:500108 发表于 2019-4-14 07:49 | 显示全部楼层
新人  表示汇编还不太懂
回复

使用道具 举报

ID:520280 发表于 2019-4-24 22:12 | 显示全部楼层
51单片机学习汇编
回复

使用道具 举报

ID:521466 发表于 2019-4-25 16:01 | 显示全部楼层

新人  表示汇编还不太懂
回复

使用道具 举报

ID:484435 发表于 2019-4-26 17:35 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:189235 发表于 2019-5-29 14:16 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:553726 发表于 2019-6-3 14:37 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:565924 发表于 2019-6-18 16:55 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:314261 发表于 2019-6-28 13:14 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:578168 发表于 2019-7-5 10:46 | 显示全部楼层
刚刚开始
回复

使用道具 举报

ID:253767 发表于 2019-7-10 06:35 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

ID:282095 发表于 2019-7-10 09:22 | 显示全部楼层
2进制转10进制的BCD译码器
回复

使用道具 举报

ID:528486 发表于 2019-7-27 01:58 | 显示全部楼层
楼主牛逼啦,汇编看不懂
回复

使用道具 举报

ID:595296 发表于 2019-8-5 08:40 | 显示全部楼层
楼主牛逼啦,汇编看不懂
回复

使用道具 举报

ID:611480 发表于 2019-9-14 18:57 来自手机 | 显示全部楼层
新手表示看不懂,学习中
回复

使用道具 举报

ID:256878 发表于 2019-9-23 20:20 | 显示全部楼层
看明白了,学习了,有帮助
回复

使用道具 举报

ID:619244 发表于 2019-10-4 17:32 | 显示全部楼层
大神,想学单片机应该先从哪里开始?
回复

使用道具 举报

ID:619244 发表于 2019-10-4 17:33 | 显示全部楼层
单片机如何入门?
回复

使用道具 举报

ID:518187 发表于 2019-10-24 23:41 | 显示全部楼层
·麦克纳姆轮全向轮战车程序精髓分享
回复

使用道具 举报

ID:116662 发表于 2019-11-16 17:45 来自手机 | 显示全部楼层
多谢分享,学习了,收藏
回复

使用道具 举报

ID:500009 发表于 2019-11-29 14:27 来自手机 | 显示全部楼层
多谢分享
回复

使用道具 举报

ID:662626 发表于 2019-12-12 17:25 | 显示全部楼层
谢谢分享  
回复

使用道具 举报

ID:673012 发表于 2019-12-24 23:25 | 显示全部楼层
感谢楼主的分享
回复

使用道具 举报

ID:689267 发表于 2020-2-2 08:00 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:691354 发表于 2020-2-17 17:38 | 显示全部楼层
具体咋回事啊,有谁能告知一下吗,看了好长时间没看懂
回复

使用道具 举报

ID:30534 发表于 2020-2-22 13:08 | 显示全部楼层
好久没来了,做个记号
回复

使用道具 举报

ID:566697 发表于 2020-3-19 12:52 | 显示全部楼层
感谢楼主
回复

使用道具 举报

ID:753095 发表于 2020-5-16 09:46 | 显示全部楼层
很棒,感谢楼主的分享
回复

使用道具 举报

ID:758907 发表于 2020-5-23 09:50 | 显示全部楼层
谢谢楼主的分享,一刚学的小萌新有点看不懂
回复

使用道具 举报

ID:166111 发表于 2020-7-18 19:10 | 显示全部楼层
51的指令太多,市场上PIC系列的多,工作也容易找
回复

使用道具 举报

ID:809671 发表于 2020-8-27 09:26 | 显示全部楼层
註釋很詳細方便學習,謝謝了.
回复

使用道具 举报

ID:847139 发表于 2020-11-22 09:01 来自手机 | 显示全部楼层
没有看懂汇编  想学
回复

使用道具 举报

ID:812362 发表于 2021-1-8 12:14 | 显示全部楼层
zhouchuantao 发表于 2019-3-10 12:04
/*************************
题目要求
已知 X Y,计算Z值, 结果存 20H 单元中

有点看天书的感觉!学习中
回复

使用道具 举报

ID:877596 发表于 2021-1-14 17:26 | 显示全部楼层
zhouchuantao 发表于 2019-3-10 12:04
/*************************
题目要求
已知 X Y,计算Z值, 结果存 20H 单元中

你好,请问你代码开头用的伪指令是不是用错了
回复

使用道具 举报

ID:877827 发表于 2021-1-15 13:58 | 显示全部楼层
新人想学编程,现在能用RS232口擦写STC15F204EA芯片,先求一个小程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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