1.通用寄存器
8086CPU的所有寄存器都是16位的,可以存放两个字节。
而AX,BX,CX,DX这四个寄存器被称为通用寄存器,并且这些寄存器都可以分为两个独立的八位寄存器来使用。(AH BH CH DH AL BL CL DL)
2.字在寄存器中的存储
一个字由两个字节组成,而一个字节由八个bit组成,所以由此可知字节通常放在八位寄存器中,字通常放在十六位寄存器中(这个字就可以分为高位字节和低位字节)。
3.几条汇编指令
mov 和add
例如mov ax,18 :就是将18送入寄存器ax中 mov ax,bx :将bx中的值送到寄存器ax中
add ax,8 :就是将寄存器ax中的值加上8 add ax,bx :将ax和bx中的值相加,然后存入寄存器ax中
(在这边不区别大小写)
此外,在进行数据传输时或运算时,要注意指令的两个对象的位数应当是一致的。
4.物理地址
CPU必须是一个内存单元的地址总线通过地址总线送入存储器的。
但是在此之前,必须在内部先形成物理地址。
不同的CPU可以有不同的形成物理地址的方式。
5.16位结构的CPU
特性:CPU一次性最多处理16位的数据;
寄存器的最大宽度为16位;
对于16位的CPU,能一次性处理.传输.暂时存储16位的地址。
6.8086CPU给出物理地址的方法
采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址:
CPU中的相关部件提供两个16位的地址,一个为段地址,另一个为偏移地址;
然后这两个地址被送到一个叫地址加法器的部件;
地址加法器采用物理地址=段地址*16+偏移地址的方法将这两个16位地址合成一个20位的物理地址;
送到地址总线,最后传送到存储器。
7.“段地址*16+偏移地址=物理地址”的本质含义
CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址的相加,给出内存单元的物理地址。
8.段
段是可以根据需要将地址连续,其实物理地址为16倍数的一组内存单元当作一个段使用。
9.cs和IP
cs:代码段段寄存器,用于存放代码段的段地址;
IP:指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址
即:指令的物理地址=CS*16+IP.。
修改CS,IP的指令:jmp
形如jmp 段地址:偏移地址
而jmp ax,在含义上好似:mov IP,ax。