20145222《信息安全系统设计基础》第四周学习总结

学习总结

1.寻址方式的发展

平坦模式->分段模式->带保护的平坦模式。

2.ISA的定义

机器级程序的格式和行为,定义为指令集体系结构,简称ISA。

3.反汇编指令

gcc -s xx.c -o xx.s获得;gcc -m32 -s xx.c从64位机器上得到32位的代码;otool -d xxx 可从mac os上进行反汇编。

4. ATT和Intel格式的区别:

    -  1)Intel代码省略练指示大小的后缀  
    -  2)Intel代码省略练寄存器名字前面的‘%’符号  
    -  3)Intel代码用不同的方式来描述存储器中位置  
    -  4)在带有多个操作数的指令情况下,列出操作数的顺序相反  

5.操作数指示符

立即数,常数值,用Imm表示;寄存器,E表示寄存器,R[E]表示寄存器里的内容;存储器,M[Addr],根据算出的有效地址访问存储器的某个位置。

6.数据传送指令

  • 1)mov传送 movs传送符号扩展的字节 movz传送零扩展的字节;
  • 2)movs和movz将一个较小的源数据复制到一个较大到的位置,符号位扩展,高位用源值最高位填充,零扩展就用0填充高位;
  • 3)不能从一个内存地址直接mov到另一个内存地址,要用寄存器中转;4)栈顶元素是最近被压入的元素,是所有栈中元素地址中最低的。

7.算术与逻辑运算

  • 1)加载有效地址, leal指令;
  • 2)一元运算(一个操作数,即是源又是目的);
  • 3)二元运算(两个操作数,第一个是源,第二个是目的)。
  • 注意:第一个可以是立即数,寄存器,存储器;第二个可以是寄存器,存储器;两个不可以同时为存储器。

8.条件码

CMP只设置条件码而不更新目标寄存器,可以用于条件判断上,sub可以用作简单的算术运算。

9.set类指令

根据条件码的某些组合,将一个字节设置为0或者是1。各个set类指令都适用的情况是——执行比较指令,根据t=a-b的结果设置条件码。

10.跳转指令

jmp:无条件跳转。后可接 跳转目标,或者从寄存器、存储位置中读出跳转目标。其他有条件跳转是根据条件码组合来控制的。

原文地址:https://www.cnblogs.com/huangyaqi/p/5958564.html