1,CPU的组成: 运算器 控制器 寄存器等 (通过内部总线相连)
内部总线实现CPU内部各个器件之间的联系
外部总线实现CPU和主板上其他器件的联系
2,寄存器:8086CPU中有14个 ax,bx,cx,dx,si,di,sp,bp,ip,cs,ss,ds,es,psw
所有寄存器都是16位的(8086),可以存放2个字节
3,通用寄存器:ax,bx,cx,dx
AH和AL寄存器是可以独立使用的8位寄存器。
4,
汇编不区分大小写
mov al c5
Add al 93
C5+93=0158H
al中存放58H 但01这个进位并没有放在ah中
5,物理地址:CPU访问内存单元时要给出内存单元的地址。所有的内存构成的存储
空间是一个一维的线性空间,这个唯一的地址成为物理地址。
6,16位结构的CPU的特征:
运算器一次最多可以处理16位的数据
寄存器的最大宽度为16位
寄存器和运算器之间的通路是16位的
7,8086的寻址方式(给出物理地址)
8086有20位地址总线,可以传送20位地址,寻址能力为1M,2^20B=1MB
8086内部为16位的结构,它只能传送16位的地址,表现出的寻址能力却只有64KB
如何表示物理地址????
采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址
一个16位的地址被称为段地址 另一个被称为偏移地址
物理地址=段地址*16+偏移地址
8,实际上,并没有真的有一个个段,有一个个段地址。
实际上,这是因为没有办法表示20位时,不得以约定的。
将第一个地址左移一位(乘以16),再加上另一个地址。
段:只是我们强加的概念!
9,段寄存器:cs,ds,ss,es
当8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址。
10,CS和IP是8086CPU中最关键的寄存器。它们指示了CPU当前要读取指令的地址
。CS为代码段寄存器,IP为指令针寄存器。
11,修改CS,IP的值
mov 不行
jmp 段地址:偏移地址 ====>CS=段地址 IP=偏移地址
jmp 1000:0100 ====>cs=1000 ip=0100
jmp 某一合法寄存器
jmp ax ====>ip=ax
12,win8中使用debug
下载debug.exe 和 DOSBOX (百度可以得到答案)