第二章 寄存器 总结

一 什么是寄存器

寄存器是cpu的主要部件,程序员通过改变各种寄存器中的内容来实现对cpu的控制。

二 通用寄存器

1,8086cpu中,寄存器AX,BX,CX,DX通常存放一般性数据,称通用寄存器,每个寄存器均为16位,可以存放两个字节。

2,寄存器拆分,AX可分为AH,AL,BX可分为BH,BL,CX可分为CH,CL,DX可分为DH,DL;

三 字在寄存器中的存储

字节(Byte)和字(Word).一个字节由8给bit组成,一个字由两个字节组成,可存于一个16位寄存器中,字的高八位存于通用寄存器的高八位寄存器,字的低八位可存于通用寄存器的低八位寄存器。

四 几条汇编指令

举例

       mov ax,18 ;将18送入寄存器AX    AX=18

  mov ah,78 ;将78送入寄存器AH    AH=78

  add ax,8  ;将寄存器AX中的数值加上8   AX=AX+8

  mov ax,bx ;将寄存器BX中的数据送入寄存器AX  AX=BX

  add ax,bx  ;将AX和BX中的数值相加,结果存在AX中  AX=AX+BX

写一条汇编指令或一个寄存器的名称时不区分大小写 如bx和BX含义相同。

五 物理地址

 8086在内部用2个16位地址通过计算合成得到20位的物理计算地址。

由cpu中的地址加法器实现:

地址加法器:物理地址=段地址*16+偏移地址

六 CS和IP

1 CS和IP是8086CPU中最为关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器。

2 CS:IP对应的物理地址存放的是cpu将要读取的指令,(CS)*16+IP=指令的物理地址。

3 在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS和IP中的内容决定的,程序员可以通过改变CS,IP中的内容来控制CPU执行目标指令。

但是,mov指令不能用于改变CS IP的值 我们可以使用jmp指令来修改CS IP的指令

若同时修改 CS IP的内容 可以用   jmp 段地址:偏移地址 的指令完成。

jmp 2AE3:3 执行后 CS=2AE3,IP=0003H CPU将从2AE33H处读取指令。

如果只是想改变IP中的内容,可以用形如:“jmp 某一合法寄存器”的指令来完成。

jmp ax,相当于mov IP ax。

4.所以,要让CPU执行我们放在代码段中的指令,必须要将CS和IP指向第一条指令的首地址。

原文地址:https://www.cnblogs.com/WJL123/p/9852325.html