【汇编语言-王爽】第二章:寄存器

知识点

(一)寄存器

  • 一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。
  • 8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。
  • 其中AX、BX、CX、DX为通用寄存器,可以分为两个独立使用的8位寄存器来使用,比如AX可以分成AH和AL。
  • CS、DS、SS、ES为段寄存器
  • CS为代码段寄存器,IP为指令指针寄存器。任意时刻,CPU将CS:IP指向的内容当作指令执行。
  • CPU从CS:IP指向的内存单元读取指令,放入指令缓冲器;IP=IP+所读取指令的长度,从而指向下一条指令;接着,执行当前指令
  • 8086CPU的所有寄存器都是16位的,可以存放两个字节。

(二)地址

  • 每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。
  • 8086是16位结构的CPU,如果直接简单发出地址,则寻址能力只有64KB。因此,8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址,即段地址和偏移地址。
  • 物理地址=段地址X16+偏移地址
  • 段地址X16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大位64KB。

(三)指令

  • mov 指令为传送指令
  • 修改CS、IP的值,可以用转移指令,比如jmp指令。
  • jmp 段地址:偏移地址 的功能:用段地址修改CS,偏移地址修改IP
  • jmp 寄存器 的功能:仅修改IP,用寄存器中值修改IP。

(四)Debug的使用

  • R命令:查看、改变CPU寄存器的内容。 比如:“r ax”。
  • D命令:查看内存中的内容。
  • E命令:改写内存中的内容。比如:“e 起始地址 数据 数据 …”。
  • U命令:将内存中的机器指令翻译成汇编指令。
  • T命令:执行一条机器指令。
  • A命令:以汇编指令的格式在内存中写入一条机器指令。比如:“a 1000:0”。

检测点

  1. 最多用4条指令,编程计算2的4次方。
;2^4 = 2*2*2*2
mov ax, 2
add ax, ax
add ax, ax
add ax, ax

你可能感兴趣的:(汇编语言,汇编)