首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用8位寄存器添加两个16位数字(程序集)

使用8位寄存器添加两个16位数字(程序集)
EN

Stack Overflow用户
提问于 2016-02-21 15:16:20
回答 1查看 4.2K关注 0票数 1

我需要添加两个16位数字使用的指令添加和adc。我使用的微控制器是一个最大寄存器大小为8位的AtMega32。

这就是我到目前为止尝试的方法(如我正在加号码5438 + 6098 )。

代码语言:javascript
运行
复制
.include "m32def.inc"
.org 0x0000

init:
ldi r16,54
ldi r17,38
ldi r18,60
ldi r19,98

start:
add r17,r19
adc r16,r18

rjmp init

如果我把较低的字节38和98 = 136,这是一个8位的数字,所以它存储它非常好,没有进位,但我希望它结转,以便我可以添加54和60与进位得到115。我不知道,也许我做错了什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-21 15:28:09

你混淆了十进制和二进制吗?

您的意思是要将小数点5438小数点加上6098小数?这意味着要添加0x153E + 0x17D2。如果是这样,那么添加0x3E + 0xD2 = 0x10,然后添加0x15 + 0x17 +进位= 0x2D,结果是0x2D10 = 11536,这也是在计算器上进行十进制加法时得到的结果。

如果这些是十六进制号0x5438 + 0x6098,那么您需要告诉汇编程序它们是十六进制0x54或54h或$54,无论您的汇编程序的语法是什么(0x54应该可以工作)。

因此,无论哪种情况,修复即时值,我认为您的程序将工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35537856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档