AT&T汇编语言

来源:互联网 发布:统一软件过程图 编辑:程序博客网 时间:2024/05/16 12:37
寻址方式:
  1. $8:      立即数寻址
  2. mov $8,�x  将eax赋值为8
  3. �x:         寄存器寻址
  4. mov $8,�x
  5. 0x8000:       直接寻址
  6. mov 0x8000,�x
  7. (�x):       寄存器间接寻址
  8. mov �x,(%esp)
  9. 8(�x,�p,4): 基址+变址+偏移量寻址
  10. mov �x,8(�x,�p,4) 等于mov�x,(�x+4*�p+8) 
在看xen的代码是碰到一个很奇怪的寻址:
    pushl 4+8(%esp)
看了后来的代码才知道,原来这个等同于:
    pushl 12(%esp)
.ascii "str1","str2"
.asciz "str1","str2" 功能与ascii一样,但每个字符串后添加一个‘\0'字节
.fill repeat, size, value 如: .fill 3,4,0分配3×4个字节,值为0.size、value为可选项,default为1,0
.globl|.glabal symbal
.quad bignums 每个bignum的默认字节数为8,超过8字节只取8字节
.rept count
  重复执行,例如:
   .rept 3
   .long 0
   .endr
.space size,fill 保留size个字节的空间,值为fill。fill缺省为0
.org new-lc,fill 将当前的位置计数器提前到new-lc 中间填充fill
.byte 2,3,4
.word     
.long
.short     ;1字节
.octa     ;2字节
.int      ;4字节
.float     ;单精度
.double    ;双精度
.single    ;单精度浮点数
.equ NUM, 0x80       ;定义宏
section .bss
    .comm name,length  ;全局变量
    .lcomm name.length ;局部变量
lmsw %ax 设cr0的低四位,PE、MP、EM、TS 
ldmsr
udz