繁体   English   中英

从程序集向C发送4位数字,以ASCII字符形式显示在LCD上

[英]Sending a 4 digit number from assembly to C to be displayed on an LCD as ASCII characters

因此标题令人困惑,我深表歉意。 我有一个90%完成的混合语言Assembly / C项目,但是我被卡住了。 我有一个在汇编中计算出的4位数字,例如2500,存储在寄存器中,例如09C4,例如R8。 我需要通过将每个十进制数字传递给一个名为LCD_write的C函数,以使其在LCD屏幕上以十进制格式显示。 如何将十六进制转换为十进制,然后一次将4位数字传递给C函数?

另外,我不能更改C文件,只能更改程序集文件。 R0将通过行以在LCD上显示,R1将通过列,而R2将通过ASCII字符的十六进制表示。

我知道这不是最好的描述,但是如果有人可以提供帮助,我将不胜感激。

谢谢!

好吧,这将取决于您的编译器和架构,但是最简单的方法是通过从R0寄存器到某个变量的内联移动。

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

但是会是这样的:

int i;
__asm__( mov i, R0)

不用担心计算机中的十六进制/十进制转换,直到显示出来都是一样的...

我对asm不太熟悉,但是基本上您想在asm中重新实现itoa 这里有一个例子

十六进制转换将非常相似,但+ 0x48应该更改并考虑[af]字符在ascii表中的位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM