20145202 《信息安全系统设计基础》第5周学习总结(2)
教学内容总结
1.DOS时代的平坦模式,不区分用户空间和内核空间,很不安全。
2.8086的分段模式。
3.IA32的带保护模式的平坦模式。
-
gcc -S xxx.c -o xxx.s可以获得汇编代码,也可以用objdump -d xxx反汇编,建立函数应调用栈帧。
-
所有以.开头的命令行都是指导汇编器和链接器的命令,我们通常可以忽略。
-
Intel术语用字表示16位数,双字表示32位数,四字表示64位数。
-
二进制文件可以用od命令查看,也可以用gdb的x命令来查看。如果输入内容过多的话可以用more或者less命令结合管道查看。
-
esi和edi可以用来操作数组,esp和ebp可以用来操作栈帧。
-
ax中ah和al时独立的。
-
操作数有三种类型:立即数,寄存器,存储器。
-
有效地址的计算方式:lmm(Eb,Ei,s)=lmm+R[Eb]+R[Ei]*s.
-
mov的作用时赋值。
-
push和pop时栈中使用的,栈的特点是后入先出。而且栈顶元素的地址使所有栈中元素地址中最低的。
-
指针就是地址,局部变量保存在寄存器中。
-
movl对应%eax至%ebp,movb对应%ah至%bh,%al至%bl,movw对应%ax至%bp。
-
leal S,D:把S的地址赋予D,目标操作数必须是一个寄存器。
-
立即数的传送
- 左移右移
- 四则运算
- 比较
- 循环
- goto语句