1.CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线(区别于前面所说的外部总线)相连。
内部总线:实现CPU内部各个器件的相连。
外部总线:实现CPU和主板上各个器件的相连。
2.寄存器:对于汇编语言,是CPU中的主要部件。程序员通过改变各种寄存器的内容实现对CPU的控制。
不同CPU寄存器的个数、结构不相同。
8086CPU14个寄存器。
3.通用寄存器。
8086CPU:所有寄存器都是16位的,AX,BX,CX,DX被称为通用寄存器。
AX,BX,CX,DX这四个存储器可分为两个独立的8位寄存器来使用。AX(BX,CX,DX)分为A(B,C,D)H和A(B,C,D)L;
4.字在寄存器中的存储:字记为word,一个字两个字节,分为高位字节和低位字节。
5.几条汇编指令。
(1)mov 指令:传送指令,将寄存器中的值送到另个寄存器中或将值传送到寄存器中。
(2)add指令:相加指令,将寄存器的值与另一个寄存器的值或另一个值相加送入到寄存器中。
注意:在进行数据传送运算时,要注意指令的两个操作对象的位数是一致的。
6.物理地址:每一个内存单元存在的唯一地址。
8086CPU:
(1)16位机:运算器一次最多处理16位的数据。
寄存器的最大宽度为16位。
寄存器和运算器之间的通路是16位。
(2)物理地址=段地址*16+偏移地址=基础地址+偏移地址。
7.段:内存没有分段,CPU可以分段,是根据编程的需要而进行的一种划分。
地址连续,起始地址为16的倍数的一组内存单元,起始地址为段的基础地址,偏移地址为段的长度。
8.段寄存器:存放段地址的寄存器。
8086CPU:4个段寄存器:CS,DS,SS,ES.
9.CS和IP:8086CPU中两个最关键的寄存器,指示了CPU当前要读取指令的地址。
CS:代码段寄存器。
IP:指令指针寄存器。
任意时刻,CPU将CS:IP指向的内容当作指令执行。
10.8086CPU的工作过程:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲区;
(2)IP=IP+所读取指令的长度,从而指向下一条指令;
(3)执行指令,转到步骤(1),重复这个过程。
11.jmp指令修改CS;IP的值:
(1)jmp 段地址:偏移地址的指令完成。
(2)jmp 某一合法的寄存器,用寄存器中的值修改IP。
12.代码段:地址连续、起始地址是16的倍数的存放代码的内存单元。
代码段的执行:将一段内存单元看作是代码段,仅仅是编程的一种安排,CPU是不会自动识别出指令和数据的,所以将CS:IP指向所定义的代码段中所执行的第一条指令的首地址即可执行代码段中的内容。
来源:https://www.cnblogs.com/fxdtz/p/9926712.html