汇编语言(王爽)第3版笔记——第一部分

0x00:基础知识

  • 存储器(内存,从零开始编号)-> 指令和数据 -> CPU 8 bit =1 Byte

  • 地址总线(决定数据传送大小):一个CPU有 N 根地址线(地址总线宽度为 N),则该CPU可以访问$\boldsymbol{2}^\boldsymbol{N}​$ 个内存单元(又称CPU内存地址空间

  • 数据总线(决定数据传送速度):16根数据总线一次可传送2个字节
    *8086有16根,8088只有8根

  • 控制总线(决定对外部器件的控制能力)

存储器

PC机中各类存储器的逻辑连接


0x01:寄存器

(1)通用寄存器

  • 8086所有寄存器都是16位的,AX、BX、CX和DX这4个寄存器(存放一般数据)被称为通用寄存器

高位在左,低位在右(普遍使用)

(2)字在寄存器中的存储

  • 1字节(byte) = 8位 1字(word) = 16位 = 2字节

(3)几条汇编指令

  • 写汇编指令或者寄存器名称时不区分大小写
  • 下面的AL和AH没有关系,即使有进位,也不是会存储在AH中
    1
    ADD AL,93H

(4)物理地址

  • 由内存单元构成的存储空间中内存单元的唯一地址
  • CPU通过地址总线送入存储器,必须是一个内存单元的物理地址

(5)16位结构的CPU (8086cpu)

  • 运算器一次最多处理16位
  • 寄存器最大宽度16位
  • 寄存器与运算器之间的通路为16位

(6)8086给出物理地址的方法

  • 8086CPU有20位地址总线,可传送20位地址,寻址能力位1M

  • 但其又是16位结构,内部的处理、传输、暂时存储的地址为16位。从内部结构看,只能送出16位地址,寻址能力位64KB

  • 故在内部用两个16位地址合成一个20位物理地址

  • 逻辑结构如下

(1)地址加法器中:物理地址 = 段地址 * 16 + 偏移地址
(2)关于进制移位:

  • 一个 x 进制的数据左移1位就相当于乘以 x
  • 段地址×16相当于二进制形式的段地址左移4位(16进制左移1位)

“段地址×16+偏移地址=物理地址”的本质含义