pkking

pkking的笔记

来自(第一章)att汇编语法格式(2)

att汇编语法格式:操作数顺序指令 源 目标 寄存器引用要在寄存器号前加% 例如:mov %eax,%ebx 立即数前加$,例如:mov $4,%ebx变量前加$则表示该变量数值对应的地址 操作数长度,参数放在指令后面b=byte(8bit) w=word(16bit) l=long(32bit) 例如movb 绝对转移和调用指令钱要加*远转移和调用为ljmp/lcall 寻址方式:disp(base,index,scale)=base +index*scale+disp C语言中的嵌入汇编:_asm_(_有么有都可以)("asm statements" :=outputs:inputs:registers-modified); ""中的内容可以有多行,之间用;分开。 outputs为输出寄存器输出到的变量inputs为输入寄存器,将变量输入到该寄存器register-modified:要改变的寄存器如果要用%则需要加2个%%,例如:例如movw %1,%%eax;%1则表示outputs:inputs:registers-modified中的第二个参数"=a(b1)";"b"(a1);"%eax"则表示输出寄存器eax中的值赋给b1,输入则是把a1中的值赋给ebx 改变的是eax中的值"a","b","c","d"分别表示eax ebx ecx edx"S" "D"表示esi,edi "r"任何寄存器

来自(第二章)保护模式(第一节)(0)

不要复位就可以在实模式和保护模式之间的操作