对8086CPU中寄存器的理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对8086CPU中寄存器的理解相关的知识,希望对你有一定的参考价值。
对于一个汇编程序员来说,CPU中的主要部件是寄存器,寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。
8086CPU的部件通常是16位的,为了保证兼容性,8086CPU的AX、BX、CX、DX这四个寄存器都可以分为两个可以独立使用的8位寄存器来使用。
比如说一个字形数据20000,分别存储在了AX寄存器中,AH和AL分别为他的高8位和低8位。
当寄存器中的数据超过4位的时候,更高位的数字就会被省略。比如1044CH,最高位的1不能保存在AX中,因此AX中的数据为044CH。另外,在进行数据传送或运算的时候,要注意指令的两个操作对象的位数,应当是一致的。将超过寄存器可以存放的数据存储到寄存器中的时候也是错误的。
CPU具有以下几个结构特性:
1.运算器一次最多可以处理16位的数据。
2.寄存器的最大宽度为16位。
3.寄存器和运算器之间的通路为16位。
8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。一个称为段地址,另外一个称谓偏移地址。
地址加法器采用物理地址=段地址*16+偏移地址的方法来合成物理地址。但是内存并没有分段,段的划分来自CPU。使得我们可以分段管理内存地址。
CS和IP使8086CPU中最为关键的两个寄存器,CS为代码段寄存器,IP为指令指针寄存器。
8086CPU的操作过程可以简单描述成:
1.从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
2.IP=IP+所读取的指令的长度,从而指向下一条指令。
3.执行指令,转到步骤1,重复这个过程。
最后,如果想要修改CS,IP中的内容可以用jmp指令来操作。
以上是关于对8086CPU中寄存器的理解的主要内容,如果未能解决你的问题,请参考以下文章