码迷,mamicode.com
首页 > 其他好文 > 详细

对8086CPU中寄存器的理解

时间:2017-10-05 19:34:09      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:指针   控制   过程   cal   长度   兼容   数据存储   编程   独立   

对于一个汇编程序员来说,CPU中的主要部件是寄存器,寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。

8086CPU的部件通常是16位的,为了保证兼容性,8086CPUAXBXCXDX这四个寄存器都可以分为两个可以独立使用的8位寄存器来使用。

比如说一个字形数据20000,分别存储在了AX寄存器中,AHAL分别为他的高8位和低8位。

当寄存器中的数据超过4位的时候,更高位的数字就会被省略。比如1044CH,最高位的1不能保存在AX中,因此AX中的数据为044CH。另外,在进行数据传送或运算的时候,要注意指令的两个操作对象的位数,应当是一致的。将超过寄存器可以存放的数据存储到寄存器中的时候也是错误的。

CPU具有以下几个结构特性:

1.运算器一次最多可以处理16位的数据。

2.寄存器的最大宽度为16位。

3.寄存器和运算器之间的通路为16位。

  8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。一个称为段地址,另外一个称谓偏移地址。

  地址加法器采用物理地址=段地址*16+偏移地址的方法来合成物理地址。但是内存并没有分段,段的划分来自CPU。使得我们可以分段管理内存地址。

  CSIP使8086CPU中最为关键的两个寄存器,CS为代码段寄存器,IP为指令指针寄存器。

8086CPU的操作过程可以简单描述成:

  1.CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;

  2.IP=IP+所读取的指令的长度,从而指向下一条指令。

  3.执行指令,转到步骤1,重复这个过程。

  最后,如果想要修改CS,IP中的内容可以用jmp指令来操作。

 

对8086CPU中寄存器的理解

标签:指针   控制   过程   cal   长度   兼容   数据存储   编程   独立   

原文地址:http://www.cnblogs.com/19981002hjk/p/7629822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!