6、 GNU汇编程序中的常数 <1>十进制数以非0数字开头,如:123和9876; <2>二进制数以0b开头,其中字母也可以为大写; <3>八进制数以0开始,如:0456,0123; <4>十六进制数以0x开头,如:0xabcd,0X123f; <5>字符串常量需要用引号括起来,中间也可以使用转义字符,如: “You are welcome! ”; <6>当前地址以“.”表示,在GNU汇编程序中可以使用这个符号代表当前指令的地址; <7>表达式:在汇编程序中的表达式可以使用常数或者数值, “-”表示取负数, “~”表示取补,“<>”表示不相等, 其他的符号如:+、-、*、 /、%、<、<<、>、>>、|、&、^、!、==、>=、<=、&&、|| 跟C语言中的用法相似。 7、GNU ARM汇编的常用伪操作 在前面已经提到过了一些为操作,还有下面一些为操作: 1>数据定义伪操作: .byte,.short,.long,.quad,.float,.string/.asciz/.ascii,重复定义伪操作.rept,赋值语句.equ/.set ; 2>函数的定义; 3>对齐方式伪操作 .align; 4>源文件结束伪操作.end; 5>.include伪操作; 6>if伪操作; 7>.global/ .globl 伪操作 ; 8>.type伪操作 ; 9>列表控制语句 ; 别于GNU AS汇编的通用伪操作,下面是ARM特有的伪操作: .reg ,.unreq ,.code ,.thumb ,.thumb_func ,.thumb_set, .ltorg ,.pool <1>数据定义伪操作 1>.byte:单字节定义,如:.byte 1,2,0b01,0x34,072,'s' ; 2>.short:定义双字节数据,如:.short 0x1234,60000 ; 3>.long:定义4字节数据,如:.long 0x12345678,23876565 4>.quad:定义8字节,如:.quad 0x1234567890abcd 5>.float:定义浮点数,如:.float 0f-31415926535897932384626433832795028841971.693993751E-40 @ - pi 6>.string/.asciz/.ascii:定义多个字符串,如: .string "abcd", "efgh", "hello!" 7>.asciz "qwer", "sun", "world!" .ascii "welcome " 注意:ascii伪操作定义的字符串需要自行添加结尾字符'