首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将汇编中的4位数字发送到C,以在LCD上显示为ASCII字符

将汇编中的4位数字发送到C,以在LCD上显示为ASCII字符
EN

Stack Overflow用户
提问于 2014-11-08 12:48:55
回答 2查看 169关注 0票数 0

所以标题令人困惑,我向你道歉。我有一个混合语言汇编语言/C项目,已经完成了90%,但我被卡住了。我有一个用汇编计算的4位数,比方说2500,存储在寄存器中,比如R8中的09C4。我需要将每个十进制数字传递给一个名为LCD_write的C函数,使其以十进制格式显示在液晶屏上。如何从十六进制转换为十进制,然后将4位数一次传递给一个C函数?

另外,我不能更改C文件,只能更改程序集文件。R0将传递要在液晶屏上显示的行,R1将传递列,R2将传递ASCII码字符的十六进制表示。

我知道这不是最好的描述,但如果有人能帮助我,我将非常感激。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-11-08 13:22:36

这取决于你的编译器和arch,但最简单的方法是从R0寄存器到某个变量的内联移动。

不正确,并且不会编译(可能)

但它会是这样的:

代码语言:javascript
复制
int i;
__asm__( mov i, R0)

不要担心十六进制/十进制在计算机中的转换,它是一样的,直到它被显示出来……

票数 1
EN

Stack Overflow用户

发布于 2014-11-08 13:01:19

我对asm不是很熟悉,但基本上你想在asm中重新实现itoa。有一个example here

十六进制转换将非常相似,但+0x48应更改并考虑a-f字符在ascii表中的位置。

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

https://stackoverflow.com/questions/26813884

复制
相关文章

相似问题

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