第二章:寄存器(CPU工作原理)02
让编程改变世界
Change the world by program
8086CPU的8位寄存器存储逻辑
以AX为例,8086CPU的16位寄存器分为两个8位寄存器的情况:
[caption id="attachment_249" align="aligncenter" width="300"]
![8086CPU的16位寄存器 8086CPU的16位寄存器](http://blog.fishc.com/wp-content/uploads/2012/07/41-300x101.gif)
8086CPU的16位寄存器[/caption]
AX的低8位(0位~7位)构成了AL寄存器,高8位(8位~15位)构成了AH寄存器。
AH和AL寄存器是可以独立使用的8位寄存器。
8086CPU的8位寄存器数据存储情况
[caption id="attachment_250" align="aligncenter" width="300"]
![8086CPU的8位寄存器数据存储情况](http://blog.fishc.com/wp-content/uploads/2010/10/5-300x98.gif)
8086CPU的8位寄存器数据存储情况[/caption]
[caption id="attachment_251" align="aligncenter" width="300"]
![8086CPU的8位寄存器数据存储情况](http://blog.fishc.com/wp-content/uploads/2010/10/6-300x93.gif)
8086CPU的8位寄存器数据存储情况[/caption]
一个8位寄存器所能存储的数据的最大值是多少?
答案:
2^8-1。
字在寄存器中的存储
一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。
[caption id="attachment_252" align="aligncenter" width="300"]
![字在寄存器中的存储](http://blog.fishc.com/wp-content/uploads/2010/10/7-300x71.gif)
字在寄存器中的存储[/caption]
关于数制的讨论
由于一个内存单元可以存放 8位数据,CPU中的寄存器又可存放 n 个 8位数据。也就是说,计算机中的数据大多是由1~N个8位数据构成的。
用十六进制来表示数据可以直观的看出这个数据是由哪些8位数据构成的。
每两位对应一个八位的二进制数据(
修正视频)!
几条汇编指令
[caption id="attachment_253" align="aligncenter" width="300"]
![汇编指令](http://blog.fishc.com/wp-content/uploads/2010/10/8-300x103.gif)
汇编指令[/caption]
CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。
[caption id="attachment_254" align="aligncenter" width="300"]
![汇编指令](http://blog.fishc.com/wp-content/uploads/2010/10/9-300x129.gif)
汇编指令[/caption]
[caption id="attachment_255" align="aligncenter" width="300"]
![汇编指令](http://blog.fishc.com/wp-content/uploads/2010/10/10-300x164.gif)
汇编指令[/caption]
这里的丢失,指的是进位制不能在 8 位寄存器中保存,但是 CPU 不是并真的不丢弃 这个进位值,这个问题会在后面的课程中讨论。
检测点2.1(Page 18)
[buy]
获得所有教学视频、课件、源代码等资源打包 [/buy]
[Downlink href='http://kuai.xunlei.com/d/LVULDHEYNHYI']视频下载[/Downlink]