第一范文网 - 专业文章范例文档资料分享平台

ARM习题答案

来源:用户分享 时间:2025/5/20 4:39:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

int xx=0;

然后在module_1的.h 文件中声明xx为外部变量 /*module_1.h*/ extern int xx;

接下来在module_2源文件中包括module_1的 .h 文件 /*module_2.c*/

#include \

在module_3源文件中包括module_1的 .h 文件 /*module_3.c*/

#include \

这样在module_2, module_3中就可以使用module_1中提供的int型变量xx了。

9.ATPCS 与 AAPCS的全称是是什么,它们有什么差别?掌握子程序调用过程中寄存器的使用规则,数据栈的使用规则及参数的传递规则,在具体的函数中能够熟练应用。

答:过程调用标准ATPCS(ARM-Thumb Produce Call Standard)规定了子程序间相互调用的基本规则, ATPCS规定子程序调用过程中寄存器的使用规则、数据栈的使用规则及参数的传递规则。

2007年,ARM公司推出了新的过程调用标准AAPCS(ARM Architecture Produce Call Standard),它只是改进了原有的ATPCS的二进制代码的兼容性。

10.内嵌式汇编有哪些局限性?编写一段代码采用C语言嵌入式汇编程序,在汇编程序中实现字符串的拷贝操作。 答:内嵌汇编的局限性

(1)操作数

? ARM开发工具编译环境下内嵌汇编语言,指令操作数可以是寄存器、常量或C语

言表达式。可以是char、short或int类型,而且是作为无符号数进行操作。 ? 当表达式过于复杂时需要使用较多的物理寄存器,有可能产生冲突。

? GNU ARM编译环境下内嵌汇编语言ARM开发工具稍有差别,不能直接引用C语

言中的变量。 (2)物理寄存器

不要直接向程序计数器PC赋值,程序的跳转只能通过B或BL指令实现。

一般将寄存器R0~R3、R12及R14用于子程序调用存放中间结果,因此在内嵌汇编指令中,一般不要将这些寄存器同时指定为指令中的物理寄存器。

在内嵌的汇编指令中使用物理寄存器时,如果有C语言变量使用了该物理寄存器,则编译器将在合适的时候保存并恢复该变量的值。需要注意的是,当寄存器SP、SL、FP以及SB用作特定的用途时,编译器不能恢复这些寄存器的值。

通常在内嵌汇编指令中不要指定物理寄存器,因为有可能会影响编译器分配寄存器,进而可能影响代码的效率。 (3)标号、常量及指令展开

? C语言程序中的标号可以被内嵌的汇编指令所使用。但是只有B指令可以使用C语

言程序中的标号,BL指令不能使用C语言程序中的标号。 (4)内存单元的分配

? 内嵌汇编器不支持汇编语言中用于内存分配的伪操作。所用的内存单元的分配都是

通过C语言程序完成的,分配的内存单元通过变量以供内嵌的汇编器使用。

? (5)SWI和BL指令

? SWI和BL指令用于内嵌汇编时,除了正常的操作数域外,还必须增加如下3个可

选的寄存器列表:

? 用于存放输入的参数的寄存器列表。 ? 用于存放返回结果的寄存器列表。

? 用于保存被调用的子程序工作寄存器的寄存器列表。

搜索更多关于: ARM习题答案 的文档
ARM习题答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4npnz8enj60088t3wpv0_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top