寄存器(CPU工作原理)04 - 零基础入门学习汇编语言09
生活随笔
收集整理的這篇文章主要介紹了
寄存器(CPU工作原理)04 - 零基础入门学习汇编语言09
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第二章:寄存器(CPU工作原理)04
?讓編程改變世界
Change the world by program
?
段的概念
? 錯誤認識: 內存被劃分成了一個一個的段,每一個段有一個段地址。 其實是: 內存并沒有分段,段的劃分來自于CPU,由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式給出內存單元的物理地址,使得我們可以用分段的方式來管理內存。 [caption id="attachment_264" align="aligncenter" width="300"] 分段的方式來管理內存[/caption] [caption id="attachment_265" align="aligncenter" width="300"] 分段的方式來管理內存[/caption] 以后,在編程時可以根據需要,將若干地址連續的內存單元看作一個段,用段地址×16定位段的起始地址(基礎地址),用偏移地址定位段中的內存單元。 ?兩點需要注意
段地址×16 必然是 16的倍數,所以一個段的起始地址也一定是16的倍數;
偏移地址為16位,16 位地址的尋址能力為 64K,所以一個段的長度最大為64K。
?內存單元地址小結
CPU訪問內存單元時,必須向內存提供內存單元的物理地址。 8086CPU在內部用段地址和偏移地址移位相加的方法形成最終的物理地址。 ?思考兩個問題
1. 觀察下面的地址,讀者有什么發現? [caption id="attachment_266" align="aligncenter" width="265"] 內存單元[/caption] 結論:CPU可以用不同的段地址和偏移地址形成同一個物理地址。 ? 2. 如果給定一個段地址,僅通過變化偏移地址來進行尋址,最多可以定位多少內存單元? 結論:偏移地址16位,變化范圍為0~FFFFH,僅用偏移地址來尋址最多可尋64K個內存單元。 比如:給定段地址1000H,用偏移地址尋址,CPU的尋址范圍為:10000H~1FFFFH。 ?小結
在8086PC機中,存儲單元的地址用兩個元素來描述。即段地址和偏移地址。 ? “數據在21F60H內存單元中。”對于8086PC機的兩種描述:數據存在內存2000:1F60單元中;
數據存在內存的2000段中的1F60H單元中。
? 可根據需要,將地址連續、起始地址為16的倍數的一組內存單元定義為一個段。 檢測點2.2 [buy]?獲得所有教學視頻、課件、源代碼等資源打包?[/buy] [Downlink href='http://kuai.xunlei.com/d/LYTPWHZBNXYG']視頻下載[/Downlink]轉載于:https://www.cnblogs.com/LoveFishC/archive/2010/11/03/3846955.html
總結
以上是生活随笔為你收集整理的寄存器(CPU工作原理)04 - 零基础入门学习汇编语言09的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js页面倒计时7天 java_javas
- 下一篇: java 一致性hash算法 均衡分发_