80x86定址方式概括總結
書上總共講了十種定址方式,這十種定址方式,從第一種到第十種,其有效地址的計算複雜度逐漸增加。首先我們要弄清楚幾個概念,即什麼是有效地址,什麼是段地址,什麼又是基址,什麼又是變址。有效地址是偏移地址,它和段地址共同構成儲存器中的實體地址。那麼要求得這個有效地址,就有很多方法,不同的方法對應不同的定址方式。段地址是分配給段的實體地址,是某一段地址的開始地址,儲存在DS等段暫存器中,而基址和變址都是相對於不同的定址方式而產生的,一般都對應與特定的定址方式。一般基址暫存器為BX,而變址暫存器為SI。下面還要解釋幾個名詞,即間接和相對的含義。間接指的是某一個地址並不是直接拿到的,而是儲存在另外一個應經給出地址的儲存單元或者暫存器中,必須先拿出它的地址,才能拿出它的內容,也就是說要拿到內容必須進行至少兩次的取。而相對的含義,就是指在地址上要進行一定的運算,必須根據給出的相對始地址求得實際地址,從而根據實際地址求得具體的運算元。理解了這兩個概念有助於識記定址方式。
下面我只說明各個定址方式的有效地址的計算方法:
1:立即定址——運算元在指令中
2:暫存器直接定址——有效地址在暫存器中
3:暫存器間接定址——有效地址在暫存器給出的儲存單元中
4:直接定址——有效地址在指令中
5:暫存器相對定址——基址或者變址暫存器+偏移量
6:基址變址定址——基址+變址
7:相對基址變址定址——基址+變址+偏移量
8:比例變址和基址比例變址和相對基址比例變址這最後三個定址方式,都是在變址上乘以一個比例因子做換算,最後得出實際地址
另外書上還講了段內定址和段間定址,段內定址是相對於IP暫存器的,而段間定址還需要改變CS等段暫存器的值,所以在進行堆疊操作的時候要把相應的段暫存器壓入堆疊中。以上便是對80x86定址方式的簡介。
相關文章
- 作業系統2——80x86定址方式概括總結作業系統
- IPv4 定址方式簡介
- Spark的四種部署方式概括Spark
- I/0埠有關的定址方式
- 【軟工文件總結之概括與圖形(簡要篇)】軟工
- JS中繼承方式總結JS中繼繼承
- JavaScript擷取字串方式總結JavaScript字串
- 豎直居中方式總結
- 主流動畫實現方式總結動畫
- MySQL查詢結果匯出方式總結MySql
- React | ref三種使用方式總結React
- skynet熱更方式總結
- MySQL 常用DDL執行方式總結MySql
- HTML概括HTML
- 程式通訊方式總結與盤點
- android 跨程式點選方式總結Android
- 滲透測試——提權方式總結
- Javascript 常見的迴圈方式總結JavaScript
- Android螢幕截圖方式總結Android
- oracle兩種認證方式總結(ZT)Oracle
- C++概括C++
- 陣列的定址陣列
- Linux核心筆記001 - Intel X86 CPU 系列的定址方式Linux筆記Intel
- 程式的機器級表示:定址方式、指令及棧的執行機制
- vue許可權路由實現方式總結Vue路由
- 日誌管理系統,多種方式總結
- 垂直水平居中的方式總結 +(使用場景)
- HTML5 5大儲存方式總結HTML
- Django執行方式及處理流程總結Django
- Java集合和陣列的排序方式總結Java陣列排序
- x64 結構體系下的記憶體定址結構體記憶體
- 暫存器定址和暫存器間接定址的區別
- HTML知識概括HTML
- FastDFS簡易概括AST
- oracle recover 原理概括Oracle
- 網路定址過程
- 記憶體定址原理記憶體
- 關於VB中資料的儲存格式和定址方式 菜鳥獻醜了~~~