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

        

       

  • 相关阅读:
    mysql同步之otter/canal环境搭建完整详细版
    Linux安装aria2
    mysql多源复制(多主一从)配置
    分布式调度框架TBSchedule使用方法
    hbase shell插入根据条件查询数据
    hive内部表&外部表介绍
    Canal( 增量数据订阅与消费 )的理解及应用
    tidb入门
    ES命令
    java8新特性
  • 原文地址:https://www.cnblogs.com/blacksunny/p/5149919.html
Copyright © 2020-2023  润新知