我目前正在上课,这是由一位老师教授的,他很久以前就忘记了简单或复杂的东西,因此往往会将简单的例子放到复杂的例子中。
我们刚刚开始编写我们的第一个程序,一个问候世界风格的开始。
A)在这种情况下,我们如何声明以null结尾的字符串?可以使用什么命令来执行此操作?
B)她从未在课堂上报道EXPORT命令 - 它是如何运作的?
C)当她说它的名称必须与代码区域不同时 - DATA区域是否可以自由命名?或者我们必须使用某些词语吗?
谢谢你们谁可以帮助我 - 我觉得我在这里淹没在复杂的环境中没有很好的资源来帮助我。也就是说,作为最后一个问题 - 是否有任何良好的在线资源可以自学ArmV7组装?很明显,她不会在课堂上讲这个我能理解的水平(大部分班级已经下降,但我无力承担),而且我正在试图从Arm Docs那里自学 - 所以有没有很好的代码 - 学院风格的集会课程,你推荐给那些试图通过一个基本没有教授的课程的人?
答案 0 :(得分:1)
A)在这种情况下,以null结尾的字符串是指ASCII编码的字符串。 ASCII编码确实每个字形使用7位(0-127个值),但为方便起见,使用整个字节(8位,0-255值)。 " null终止"表示值0标记此类字符串的结尾。所以字节65, 0
形成字符串" A"在A之后有零字节。
从示例源:a DCB "86590", 0
- DCB
可能类似于"声明字节","86590"
是汇编程序如何从中生成字节值的方式源中的ASCII字符串(每个字符是一个值,例如最后一个'0'
等于48
(参见ASCII表)),终止0
以经典方式作为数字附加。< / p>
示例中的那一行可以写为
a DCB 0x38, 0x36, 0x35, 0x39, 0x30, 0x00
^将产生相同的字节值,只是源以不同的方式写入。
B)出口将制作一些符号&#34; public&#34;在生成的目标文件中,链接器将看到它并可以使用这些符号连接不同的目标文件。如果您要删除EXPORT main
,则链接将失败,其中&#34; main&#34;未定义。
C)从未见过这个特殊的汇编程序,但是从示例中,代码区域有名称&#34; AddIntsIn2sComp&#34;,数据区域有名称&#34; intData&#34;,两者看起来都是任意的&#34 ;人&#34;名字,只是避开空格。因此,只要你在那里写一些从2-3个单词连接起来的东西,它就可以工作(在最坏的情况下请查阅你的编译器语法手册)。