[ZLG-ARM] ARM汇编中字符串的使用问题,请教

[复制链接]
 楼主| gofayao 发表于 2007-3-22 23:07 | 显示全部楼层 |阅读模式
我需要在汇编中&nbsp;利用UART输出很多调试信息(字符串)<br />目前的做法是&nbsp;事先将这些调试信息都定义好,然后,再将这些定义好的字符串的首地址传给UART输出<br />如下:&nbsp;String&nbsp;&nbsp;DCD&nbsp;&nbsp;'I','n','i','t','i','a','l',&nbsp;'O','K','!'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;R0,=String<br /><br />那有没有比较好的方法可以不用事先定义,而是在需要的时候直接使用就可以<br />如:&nbsp;LDR&nbsp;R0,=&quot;Initial&nbsp;OK!&quot;&nbsp;类似的方式,当然这个是我捏造的用法......<br />想请教各位有没有类似的正确用法,谢谢.&nbsp;<br />
zlgARM 发表于 2007-3-23 08:17 | 显示全部楼层

RE

gofayao:<br />&nbsp;&nbsp;&nbsp;&nbsp;不可能。在汇编语言中,肯定没法用寄存器来直接存放字符串。那就只能将字符串放到内存里,这样的话,就不是所谓的直接使用了。<br />&nbsp;&nbsp;&nbsp;&nbsp;即使是C语言,实际上也是将字符串看成是字符的组合,再放入字符数组。BASIC倒是有字符串变量,比如A$之类。
 楼主| gofayao 发表于 2007-3-23 11:34 | 显示全部楼层

RE

那用下面两种方式定义的&nbsp;字符串&nbsp;有什么区别呢?<br />String1&nbsp;&nbsp;DCD&nbsp;&nbsp;'I','n','i','t','i','a','l',&nbsp;'O','K','!'<br />String2&nbsp;&nbsp;DCB&nbsp;&nbsp;&nbsp;&quot;Initial&nbsp;OK!&quot;<br /><br />汇编伪指令说&nbsp;DCB一般用来定义数据表格或者字符串<br /><br />我在UART&nbsp;实验中&nbsp;<br />&nbsp;&nbsp;使用&nbsp;LDR&nbsp;R0,=String1&nbsp;就可以正常打印&nbsp;Initial&nbsp;OK<br />而使用&nbsp;LDR&nbsp;R0,=String2&nbsp;就打印不正常了<br /><br />搞不懂,请帮忙解惑解惑,谢谢啦.
zlgARM 发表于 2007-3-23 17:52 | 显示全部楼层

RE

gofayao:<br />&nbsp;&nbsp;&nbsp;&nbsp;只打印一个字符试试.<br />&nbsp;&nbsp;&nbsp;&nbsp;String1&nbsp;DCD&nbsp;‘I'<br />&nbsp;&nbsp;&nbsp;&nbsp;String2&nbsp;DCB&nbsp;&nbsp;&quot;I&quot;<br />&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部