第四节arm汇编语言设计.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四节arm汇编语言设计

ARM汇编语言的伪操作、宏指令与伪指令 两种常见的ARM编译开发环境 ADS编译环境下的伪操作和宏指令 GNU编译环境下的伪操作和宏指令 ARM汇编语言的伪操作、宏指令与伪指令 两种常见的ARM编译开发环境 ADS编译环境下的伪操作和宏指令 GNU编译环境下的伪操作和宏指令 两种常见的ARM编译开发环境 ADS(ARM Developer Suite) IDE 开发环境:它由ARM公司开发,使用了CodeWarrior公司的编译器; 集成了GNU开发工具的IDE开发环境 它由GNU的汇编器as、交叉编译器gcc、和链接器ld等组成。 目前常用的ARM编译环境有2种: ARMASM ARM公司的IDE中使用了CodeWarrior的编译器,绝大多数windows下的开发者都在使用这一环境,完全按照ARM的规定; GNU ARM ASM GNU工具的ARM版本,与ARMASM略有不同; ARM程序设计基础 伪操作(derective) 伪指令(Pseudo-instruction) ARM汇编语言语句格式 ARM汇编语言的程序格式 ARM汇编语言的伪操作、宏指令与伪指令 两种常见的ARM编译开发环境 ADS编译环境下的伪操作和宏指令 GNU编译环境下的伪操作和宏指令 标号 基于PC的标号: 位于目标指令前或者程序中数据定义伪操作前的标号。汇编时将被处理成PC值加上或减去一个数字常量。常用于表示跳转指令的目标地址,或者代码段中的少量数据。 基于寄存器的标号: 用MAP,FIELD伪操作定义。汇编时将被处理成寄存器的值加上或减去一个数字常量。常用于访问位于数据段中的数据。 绝对地址: 32位数字量 数字常量 数字常量是32位的整数 无符号数:0~232-1 有符号数时:-231~231-1。 EQU:定义数字常量 变量 变量有数字变量、逻辑变量和字符串变量 数字变量的大小不应超出数字变量所能表示的范围 逻辑变量只有两种取值情况:真{true}或假{false} 字符串变量的长度不应超出字符串变量所能表示的范围 GBLA、GBLL、GBLS:声明全局变量 LCLA、LCLL、LCLS:声明局部变量 SETA、SETL、SETS:赋值 ARM汇编语言中的表达式 表达式由符号、数值、单目或多目操作符以及括号组成。在一个表达式内各种元素的优先级: 括号内的表达式优先级最高 各种操作符有一定的优先级 相邻的单目操作符的执行顺序为由右到左,单目操作符优先级高于其他操作符 优先级相同的双目操作符执行顺序为由左到右 字符串表达式 字符串 双引号“ ”;$$-$;““-“ 示例: abc SETS “this string contains only ““ double quote” def SETS “this string contains only $$ double quote” 字符串表达式 操作符 LEN :LEN: A CHR :CHR: A STR :STR: A LEFT A:LEFT: B RIGHT A:RIGHT:B CC A:CC:B 字符串表达式 示例 GBLS STRING1 GBLS STRING2 STRING1 SETS “AAACCC” STRING2 SETS “BB”:CC:(STRING1:LEFT:3) ;STRING2:“BBAAA” 数字表达式 整数数字量 示例: a SETA 34906 Addr DCD 0xA10E DCD 2c3 SETA 8_74007 DCQ 0x123456789abcdef 数字表达式 浮点数字量 单精度浮点数表示范围:3.4e+38~1.18e-38 双精度浮点数表示范围:1.8e+308~2.23e-308 示例: DCFD 1E308,-4E100 DCFS 1.0 DCFD 3.725e15 DCFS 0x7FC00000 DCFD FFF0000000000000 数字表达式 操作符 NOT按位取反 :NOT:A +、-、×、/ 及MOD算术操作符 A+B,A-B,A×B,A / B,A:MOD:B ROL、ROR、SHL及SHR移位(循环移位)操作 A:ROL:B,A:ROR:B,A:SHL:B,A:SHR:B AND、OR、EOR按位逻辑操作符 A:AND:B,A:OR:B,A:EOR:B 逻辑表达式 关系操作符(无符号数) A=B AB AB

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档