[英]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)
不用担心计算机中的十六进制/十进制转换,直到显示出来都是一样的...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.