ARM
liuchao1986105
这个作者很懒,什么都没留下…
展开
-
adr和ldr
http://blog.sina.com.cn/s/blog_4b5210840100c80i.html这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区别了。如果在程序中想加载某个函数或者某个在原创 2011-06-15 22:27:00 · 6877 阅读 · 0 评论 -
VLDR,VSTR
扩展寄存器加载和存储。语法VLDR{cond}{.size} Fd, [Rn{, #offset}]VSTR{cond}{.size} Fd, [Rn{, #offset}]VLDR{cond}{.size} Fd, labelVSTR{cond}{.size} Fd, label其中:cond 是一个可选的条件代码(原创 2011-06-17 17:22:00 · 26490 阅读 · 0 评论 -
ARM体系结构与编程学习(六
编器将文字池放在每节的末尾。 这些节的末尾是由下一节开始处的 AREA 指令定义的,或者是由汇编代码末尾的 END 指令定义的。位于所包含的文件末尾的 END 指令并不表示一节的结束 ADR伪指令实例;设置本段程序的名称及属性AREA adrlabel ,CODE,READONLY ENTRYstart;跳转到子程序func执行原创 2011-06-19 22:01:00 · 1451 阅读 · 0 评论 -
控制诊断消息的输出
控制诊断消息的输出有几个选项可控制诊断消息的输出:--brief_diagnostics 启用或禁用使用短格式诊断输出的模式。 启用时不显示原始源语句行,并且当错误消息文本太长、一行放不下时也不换行。缺省为 --no_brief_diagnostics。--diag_style {arm|ide|gnu} 指定用于显示诊断消息的样式:arm 使用 ARM原创 2011-06-20 17:40:00 · 694 阅读 · 0 评论 -
交互操作示例
交互操作示例以下是交互操作的示例:Example 5.2 演示汇编语言交互操作Example 5.3 演示使用中间代码的汇编语言交互操作Example 5.4 演示 C 和 C++ 语言交互操作Example 5.5 演示使用中间代码的 C、C++ 和汇编语言交互操作。此外,RealView Development Suite原创 2011-06-21 15:07:00 · 836 阅读 · 0 评论 -
ARM体系结构与编程学习(五)
LDR Rd, =label 示例: 字符串复制Example 2.7 显示了用一个字符串覆盖另一个字符串的 ARM 代码例程。 该例程使用 LDR 伪指令从一个数据节中加载两个字符串的地址。 有以下几点需要特别注意:DCB DCB 指令定义一个或多个存储字节。除了整数值之外,DCB 还接受带引号的字符串。 字符串的每个字符均存放在连续的字节中。 有关详细信原创 2011-06-20 11:59:00 · 996 阅读 · 0 评论 -
ADS1.2 在汇编代码中调用C函数
对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2 Online Books ——Developer Guide的2.1节。这篇文档要讲的是 汇编代码中对C函数调用时如何进行参原创 2011-06-22 20:20:00 · 2484 阅读 · 0 评论 -
CP15 中的寄存器
CP15 中的寄存器 C7 用于控制 cache 和写缓冲区。它是一个只写的寄存器,使用 MCR 指令 来写该寄存器,具体格式如下: MCR P15, 0, , , , 其中, 中为将写入 C7 中的数据; , 的不同组合决定执行不同的操作: ------------------------------------------原创 2011-06-29 19:31:00 · 2262 阅读 · 1 评论