51单片机指令求双字节有符号数补码的问题

好儿郎-志在四方 2015-10-12 09:44:04
最近看了一道题,要求是“用汇编程序求R6R7中双字节有符号数的补码,将结果存入R1R0”,初学汇编,木有头绪,其实也有一点想法,就是先判断正负,若是负数,则取反再加一,若是正数,则原码反码补码都相同,但是由于这个是双字节数,低字节、高字节,是不是都要判断正负等等,不成熟,还请大牛多多指教。
...全文
1079 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
代码如下: ORG 0000H MOV A,R6 JNB ACC.7,NEXT XRL A,#7FH MOV R1,A MOV A,R7 CPL A ADD A,#1 MOV R0,A MOV A,#0 ADDC A,R1 MOV R1,A SJMP $ NEXT: MOV A,R7 MOV R0,A MOV A,R6 MOV R1,A SJMP $ END 谢谢各位的讲解
  • 打赏
  • 举报
回复
谢谢各位的讲解,这个问题已经搞懂了,感谢各位
sinat_25020831 2015-10-17
  • 打赏
  • 举报
回复
小哥哥,既然你知道补码的求法,你也知道正数的补码是本身,计算机存的负数是补码,你写个程序存补码不就完了么
worldy 2015-10-14
  • 打赏
  • 举报
回复
单片机一般是大头系统,判断R6最高位是否是1,如果是1,即为负数 算源码,则【R6R7】减1,取反 如-1(1111 1111 1111 1111),减1=1111 1111 1111 1110,取反=0000 0000 0000 0001
mangoalx 2015-10-13
  • 打赏
  • 举报
回复
双字节数,只判断高字节是否负数,两字节同样处理

1,068

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧