1、计算机CPU由如下三部分组成(如下图):运算器、控制器、寄存器

2、寄存器:简单说,就是用来存储数据的器件,类似内存,不过这个是CPU专用,跟内存不一样。

8086CPU里,寄存器总共有14个,且都是16位。

即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。

这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。

通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI

控制寄存器:IP,FLAG

段寄存器:

CS (Code Segment):代码段寄存器

DS (Data Segment):数据段寄存器

SS (Stack Segment):堆栈段寄存器

ES (Extra Segment):附加段寄存器

16位寄存器图(以AX为例)如下:AH表示高8位寄存器,AL表示低8位寄存器(这样做是为了兼容以前的老的8位程序)

 

 

 3、由于8086CPU地址总线为20位,即寻址能力为220 也就是 1MB ,但它的寄存器为16位,也就是一次可以处理的数据只能是16位,如此造成两者不匹配,无法发挥最大效率,所以最后采取了一个很聪明的做法:将两个16位的地址合成了一个20位的地址。

先将16位段地址左移一位,即*16,再与16位偏移地址相加,最后得到20位物理地址。

16位段地址*16 + 偏移地址 = 物理地址

1000H*16 + 0003H = 10000H + 0003H = 10003H


4、debug调试指令:

r : 查看当前寄存器值

r ax:修改当前寄存器的值

d:查看内存中的内容

t :执行一条机器指令

a :写入汇编指令

u :将机器指令转化成汇编指令

 ps:win7 64位调出debug模式可以参考百度:https://jingyan.baidu.com/article/86f4a73e58413137d7526970.html

 

posted on 2018-10-22 22:32  slma  阅读(244)  评论(0编辑  收藏  举报