arm汇编的符号命名和书写规则有哪些
缺点:NetBeans 由于采用了纯Java开发并以Swing库编写GUI,因此界面色调偏暗,使用起来跟本机程序感觉不同。开始时可能会有些不习惯。如果使用JDK1.5.0版加载,其增强的Swing库会让NetBeans的界面看起来舒服不少。
优点:NetBeans 基本上都是在线文档,有联机帮助、IDE使用指南、快速学习指南、支持和文档,另外还具有Javadoc文档索引搜索功能。NetBeans 主界面的中文化程度相当高。在线文档也提供了中文版。直接提供了为程序增加国际化支持的功能。NetBeans 支持 Servlet 2.4 和 JSP 2.0。
楼主,试试 CTRL+SHIFT+/
特殊符号 ---- 对应指令 ---- 含义 ---- 示例^ ---- MAP ---- 定义结构化内存表 ---- MAP 4096;内存表首地址为4096
# ---- FIELD ---- 定义内存表中的数据,结合MAP指令使用 ----
MAP 4096
STACKSVC FIELD 256;定义从4096开始的256字节为SVC的堆栈空间。
% ---- SPACE ---- 分配一块内存,并用“0”初始化 ---- DataStruc SPACE 280;分配280字节内存并初始化
[|] ---- IF ELSE ENDIF ---- 条件编译,有选择的确定需要编译的代码IF,ELSE,ENDIF,可以嵌套使用 ----
IF 逻辑表达式
指令或伪指令
ELSE
指令或伪指令
ENDIF
另外还有符号: $
如果在串变量前有一个$,则在汇编时编译器将用该串变量的数值取代该串变量,如:
GBLS STR1
GBLS STR2
STR1 SETS “pen.”
STR2 SETS “This is a $STR1"
编译后的结果是STR2的值为This is a pen.
如果$后是数字变量(与串变量区分),在汇编时编译器将该数字变量的数值转换成十六进制的串,然后用该十六进制的串取代$后的数字变量。
如果$后是逻辑变量,在汇编时编译器将该逻辑变量替换成它的取值(T或者F)。
如果程序中需要$,则用$$来表示,编译器将不进行变量替换。
GBLS STR1
GBLS B
GBLA NUM1
NUM1 SETA 14
B SETS “CHANGED”
STR1 SETS “abc$$B$NUM1”
编译结果STR1的值为:abcB0000000E。
注意:在两个竖线“|”之间的$并不表示进行变量替换,但如果“|”是在双引号内,则将进行变量替换。
使用点"."来表示变量名的结束。
GBLS STR1
GBLS STR2
STR1 SETS “AAA”
STR2 SETS “bbb$STR1.CCC"
编译结果STR2值为bbbAAACCC
还有一个例外:“%”
“%”除了表示SPACE外,还可以在局部标号中使用,具体意思见伪指令ROUT的使用示例:
◆ROUT
ROUT伪指令定义局部标号的有效范围,伪指令格式如下:{name} ROUT。其中 name 所定义的作用范围的名称。
当没有使用ROUT伪指令时,局部标号的作用范围为所在段;ROUT伪令的作用范围在本ROUT伪指令和下一个ROUT伪指令之间(指同一段中的ROUT伪指令)
伪指令应用举例如下:
routineA ROUT ;定义局部标号的有效范围,名称为routineA
......
3routineA ;routineA范围内的局部标号3
......
BEQ %4routineA ;若条件成立,跳转到routineA范围内的局部标号 4
......
BEQ %3routineA ;若条件成立,跳转到routineA范Iq内的局部标号 3
......
4routineA ;routineA范围内的局部标号4
......
otherstuff ROUT ;定义新的局部标号的有效范围
----------------------------------------------------------------------
ADS中ARM汇编语言程序设计的符号引用规范
Error:Undefined symbols ....
找到引用符号的汇编源文件和定义符号的汇编源文件仔细检查和对比,符号没有写错,而且在引用符号之前确实把符号使用IMPORT引入了进来。百思不得其解时,突然想到在定义符号的文件中没有对符号EXPORT。非常低级的错误。
在汇编语言程序设计中,养成良好的编程习惯,形成良好的编码风格是非常重要的。 这里仅根据个人习惯和体会略谈一下使用ADS进行ARM汇编语言程序设计时的符号引用规则,主要是对不同性质的符号使用不同的引用办法:
(1)对于寄存器地址定义以及通用的常量或符号定义(使用EQU定义),可以按类定义在一个.s汇编文件中,在要使用这些定义的源文件中可使用INCLUDE将该.s汇编文件包含进来。
这样做的好处是:避免大量的IMPORT和EXPORT伪语句,增强代码的可读性,另外,对于多个源文件要使用许多相同寄存器地址定义或常量定义的场合,这样做可以大大压缩代码尺寸(经笔者实践证实)。
(2)对于代码段的地址标号或函数入口地址标号(函数名),在代码段或函数的定义处使用EXPORT输出;在要调用该代码段或函数的源文件中使用IMPORT将符号引入。
一定要保证IMPORT和EXPORT是成对使用的,若不EXPORT则IMPORT无效,若只EXPORT而不IMPORT也无法引用符号。
《x86汇编语言》学习11 指令的格式及其操作尺寸
指令格式与细节指令格式在x86汇编中复杂且精细,操作码如'hlt'(F4)和'cli'(FA)等。例如,mov al, 3 的机器码为 B003,需要理解ModRM寻址方式和偏移量在指令编码中的作用,如 8B\/r 和 88\/r。深入剖析8B指令:内存传至寄存器,如 8B BX+8偏移,操作码8B, ModR\/M 47C7指令:涉及偏移量和...
makefile 中的clean:rm -f main *.o后面的*.o是什么意思
清除 所有 .o文件 ,.o文件就是目标文件 GCC编译C源码有四个步骤:预处理---> 编译 ---> 汇编 ---> 链接 具体看下面参考资料链接 参考资料:http:\/\/weiyuhu.javaeye.com\/blog\/570171
pdf, jpg, rar, zip, doc, xls, mpp, ppt, avi, rm, wav, wmv, mpg...
RM:RealAudio视频文件 RMF:Rich Map格式(3D游戏编辑器使用它来保存图) ROM:基于盒式磁带的家庭游戏仿真器文件(来自Atari 2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改) Rxx:多卷档案上的RAR压缩文件(xx=1~99间的一个数字) S SAV:游戏保存文件 SB:原始带符号字节...
请问arm-linux-gcc和arm-linux-ld还有arm-linux-objcopy之间是什么关...
-o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 -Wall 指定产生全部的警告信息 -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高 -c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或 .cc ...
八进制符号是什么?
现代无处不在的x86 体系结构也属于这一类,但八进制在这个平台上很少使用,尽管操作码的二进制编码的某些属性在以八进制显示时变得更加明显,例如 ModRM 字节,它分为2、3 和 3 位的字段,因此八进制可用于描述这些编码。在汇编器出现之前,一些程序员会用八进制手工编写程序;例如,Dick Whipple 和 ...
汇编语言指令中的地址和指令中的地址码的区别
一、单字节指令,只有操作码,没有地址码,或者说,地址码是含在操作码之中。如,1、CLD、STI等对状态寄存器操作的指令,地址就是状态寄存器,是隐含的。2、LODSB、LODSW、LODSD等字符串操作指令,指令中没有地址码,其操作数地址隐含在DS:SI、AL、AX、EAX中;而STOSB、STOSW、STOSD等字符串操作指令...
文件名的后缀~??\/\/!
原来这些文件名都是根据DOS环境的文件名命名规则而定的。 DOS环境下的文件名 在DOS下,文件名采用8+3结构,即:最长8位的文件名,由小数点分隔后再跟上最长3位的后缀名,如:READ.ME、SETUP.EXE,一般情况下文件名不允许使用汉字,只能由字母、数字和一些符号组成。如READ.ME用中文理解就是"读我",即提示用户在使用...
文件名的后缀分别是什么意思?
1、doc意思是:Word文档文件,通过微软的word等软件打开。2、exe意思是:可执行文件、可执行应用程序,通过Windows视窗操作系统打开。3、jpg意思是:普通图形文件,联合图像专家小组指定,通过各种图形浏览软件、图形编辑器打开。4、swf意思是:Adobe FLASH影片文件,通过Adobe FLASH Player或各种影音播放软件...
提问:文件后缀名的意义.
RM:RealAudio视频文件 RMF:Rich Map格式(3D游戏编辑器使用它来保存图) ROM:基于盒式磁带的家庭游戏仿真器文件(来自Atari 2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改) Rxx:多卷档案上的RAR压缩文件(xx=1~99间的一个数字) S SAV:游戏保存文件 SB:原始带符号字节...
我想知道ARM7和RM9的区别在那里?
当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少管道互锁的数量。2.3 ...
道庄得理: 特殊符号 ---- 对应指令 ---- 含义 ---- 示例 ^ ---- MAP ---- 定义结构化内存表 ---- MAP 4096;内存表首地址为4096 # ---- FIELD ---- 定义内存表中的数据,结合MAP指令使用 ----MAP 4096STACKSVC FIELD 256;定义从4096开始的256字节为...
达州市19191339752: ARM指令的一般编码格式如下 - ?
道庄得理: 你这个是ARM7 CPU的指令码格式,早期的ARM架构,是ARMV4T,而且只是其数据处理类指令的指令编码格式(4位编码,配合这其余位,如I位,Rn,Rm,第二操作数等编码位,可以编码出很多条数据处理指令.).所以说,并不是25-27位没...
达州市19191339752: 在ARM的汇编语言中遇到这么几个问题??
道庄得理: 简化段定义吧.. =ldr r0, =SMRDATA的作用是让r0等于U-BOOT编译时已经确定下来的SMRDATA这块内存缓冲池的起始地址. 至于-就简单了..下划线么.就是用来命名的..变量名可以是下划线,英文字母,和数字组成.不允许数字开头、这是命名规则 通常用来命名一个结构中的其他变量. 例如,DATE 中有DAY MONTH YEAR 那么就是DATE_DAY DATE_MONTH DATE_YEAR
达州市19191339752: 8ARM汇编语言程序指示符与语句格式是怎样的? ?
道庄得理: 中文名伪指令外文名Pseudoinstruction包含符号定义伪指令功能告诉汇编程序如何进行汇编的指令特点不控制机器的操作1伪指令分类2指令和伪指令的区别3Note用法语法体系结构5UND伪指令伪指令伪指令分类编辑在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令
达州市19191339752: ARM1到ARM7 ARM指令集 都一样吗(汇编指令) - ?
道庄得理: 没听说过ARM1.但对ARM来说有两大类汇编指令:ARM指令和thumb指令.thumb指令有16和32位,ARM指令位32位.对每一类来说,不用去关心解码实现的话,总体是一样的. 我所知道的就是V4之前没设么区别,V4过后有稍稍区别,特别是V7给原来的有所改变,有的指令功能改变,有的指令不在有效,毕竟V7后都以Cortex命名,但该变不是很大.要详细的资料,去看ARMARM手册和ARMtrm手册.
达州市19191339752: ARM中的汇编指令ASR指令MOV R0, R1, ASR#2 - ?
道庄得理: 因为首先ASR是“算术”右移指令,因此用它来操作数据时,指令会认为被操作的数是有符号数,而二进制中有符号数的最高位即为符号位.因此为了保留数据符号,用符号位来填充因移位而导致的空缺位.举例是这样的: MOV R0 , #0x90 ;(10010000) ASR R0 , R1 , #3则R0 = 11110010
达州市19191339752: ARM的汇编指令系统是哪种汇编? - ?
道庄得理: 汇编指令有大概两种类型 RISC,CISC,像51,8086等一部分是cisc指令.相对来说简单易懂一点.像arm ,avr,PIC等是risc,指令要复杂些,学起来也就要麻烦点了.处理器不一样,其汇编指令也就不一样.学哪种处理器就学习哪种处理器用的汇编语言.当然你学的是51的汇编话,再学8086的会觉得差不多,但是如果转学arm的话就会觉得跟51的有很多不同.,当然你要是真正下苦功学的话,什么都很容易.
达州市19191339752: arm编程与C语言的编程区别和方法 - ?
道庄得理: 汇编主要是要了解CPU指令及用法,常说的是PC机的x86汇编,指令是x86的复杂指令集. arm汇编是arm的精简指令集,比x86容易学,程序格式倒是和x86汇编差不多. C语言ARM的和x86的差不多,除了对硬件寄存器操作不同,其它语法和流...
达州市19191339752: 求教ARM的命名规则,A8/A9啥区别 - ?
道庄得理: ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务.Cortex-A8是高性能处理器,适合高性能应用领域.频率从600MHz到1GHz及以上高性能、超标量微体系结构用于多媒体和SIMD处理的NEON™技术与ARM926、ARM1136和ARM1176处理器的二进制兼容性.Cortex-A9微架构有两种:Cortex-A9 MPCore多核处理器不仅集成了大获成功的ARM MPCore技术,而且进一步简化并扩大了多核解决方案的应用.Cortex-A9 MPCore不仅能够空前提升峰值性能,同时有效地支持了设计灵活性和新的功能,从而进一步降低和控制处理器及系统层次的功耗.
达州市19191339752: arm 指令集adrp x3,0xffffffc0013b7000 什么意思 - ?
道庄得理: ARM汇编有ldr指令以及ldr、adr伪指令,它们都可以将标号表达式作为操作数,下面通过分析一段代码以及对应的反汇编结果来说明它们的区别.ldr r0, _start adr r0, _start ldr r0, =_start _start:b _start 编译的时候设置 RO 为 0x30000000,下面是...