zoukankan      html  css  js  c++  java
  • 汇编笔记(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命令以汇编指令的格式在内存中写入一条机器指令。

        

       

  • 相关阅读:
    根据指定的编码格式返回请求的参数集合
    【C++ 学习笔记】 size_t 和 int
    C++ 编译错误
    【Flex】 加载Gif文件
    【C++ 学习笔记】:STLmap
    【C++ 学习笔记】:MFC(细节部分)
    小卡的土豆园开园了~
    [论文笔记] A novel reduction approach to analyzing QoS of workflow processes (Concurrency and Computation: Practice and Experience, 2009)
    [论文收集] WWW2008 相关或感兴趣的论文
    [论文泛读] Accurate and efficient stochastic reliability analysis of composite services using their compact Markov reward model representations (SCC, 2007)
  • 原文地址:https://www.cnblogs.com/blacksunny/p/5149919.html
Copyright © 2011-2022 走看看