汇编笔记(1)

   最近看王爽的汇编语言,同时配合小甲鱼的视频看了一些章节,对于一些知识点还有一些容易混淆的地方在这里总结一下,希望大家来指正。

 

第一章: 基础知识

  一、汇编语言

    1. 计算机只识别机器码(0和1组成),非常难认,因此产生了汇编。
    2. 三类指令:汇编指令,伪指令,其他符号(由编译器识别)。 

  二、存储器

    1. 数据和指令存放的地方。其实就是所说的内存。
    2. CPU的正常工作,就必须向它提供数据和指令。
    3. 指令和数据没有任何区别,都是二进制。CPU在工作时候,有的信息看作指令,有的信息看作数据。
    4. 每个存储单元从0开始顺序编号的。存储器的容量是以字节为最小单位来计算的。
    5. CPU对存储器的读写:地址信息 + 控制命令 + 数据信息。

  三、三大总线

    1. 地址总线----CPU是通过地址总线来指定存储单元的。
    2. 数据总线----CPU与内存或其他器件之间的数据传送是通过数据总线进行的。
    3. 控制总线----CPU对外部器件的控制是通过控制总线来进行的。      

  三、内存地址空间

    1. 由地址总线决定。
    2. 主板---CPU和核心器件等,用地址总线、数据总线、控制总线相连。
    3. 接口卡--CPU不能对外设进行控制,需要通过接口卡间接控制。
    4. 各类存储器芯片---随机存储器(RAM)、BIOS(主板和各类接口卡)的ROM、接口卡上的RAM。

      CPU在操控他们时,把他们当作内存来对待,把他们总的看作一个由若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。

 

第二章:寄存器

  一、组成

    1. CPU中含有运算器、寄存器(CPU的工作原理)、控制器等构成,这些器件靠内部总线相连。
    2. 运算器进行信息处理。
    3. 寄存器进行信息存储。
    4. 控制器控制各种器件进行工作。
    5. 内部总线连接各类器件,在它们之间进行数据传送。

  二、通用寄存器

    1. AX,BX,CX,DX这四个寄存器通常用来存放一般性的数据,被称为通用寄存器。
    2. 在8086CPU中,AX的低8位(0-7)构成了AL寄存器,高8位(8-15)构成了AH寄存器。
    3. 注意范围:16位的2^16-1,8位的2^8-1.
    4. 进行数据传送或运算时要注意位数对应,否则会报错。

  三、8086CPU给出物理地址的方法:

    1. 当8086CPU要读写内存时:相关的部件提供两个16位的地址:段地址和偏移地址。
    2. 物理地址=段地址 * 16 + 偏移地址。

  四、段

    1. 段地址为16的倍数。
    2. 一个段的长度最长为64K;因为偏移地址为16位,寻址能力为64K。

  五、段寄存器

    1. 段地址在8086CPU的段寄存器中存放。
    2. 8086CPU有四个段寄存器:CS、DS、SS、ES。
    3. 当8086CPU要访问内存时由这四个段寄存器提供内存单元的段地址。
    4. CS(代码段寄存器)、IP(指令指针寄存器);CS为存放指令的段地址。
    5. 修改CS,IP-----mov不能用于设置CS、IP的值,而jmp指令可以。
    6. jmp 段地址:偏移地址-------用指令中给出的段地址修改CS,偏移地址修改IP。
    7. jmp 某一合法的寄存器-------用寄存器中的值修改IP。

  六、代码段

    1. 要小于64K。
    2. 存放后用CS,IP指向第一条指令的首地址。

  七、Debug使用

    1. 用Debug的R命令查看、改变CPU寄存器的内容。
    2. 用Debug的D命令查看内存中的内容。
    3. 用Debug的E命令改写内存中的内容。
    4. 用Debug的U命令将内存中的机器指令翻译成汇编指令。
    5. 用Debug的T命令执行一条机器指令。
    6. 用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。

    

   

posted @ 2016-01-21 23:17  blacksunny  阅读(408)  评论(0编辑  收藏  举报