以下為讀書筆記,摘抄自《深入理解計算機系統》
?
匯編程序為程序員提供了更多處理器狀態:
- 程序計數器:將要執行的下一條指令在存儲器中的地址 %eip
- 整數寄存器堆:8個32位的寄存器
- 條件碼寄存器:記錄控制流狀態(if,while)等
- 浮點寄存器堆: 8個32位寄存器
訪問信息:
整數寄存器堆的八個寄存器:%eax, %ecx, %edx, %ebx, %esi, %edi, %esp 棧指針, %ebp 幀指針
操作數指示符:立即數、寄存器、存儲器
? 類型 ?? | ? 格式 ?????????? | ?????????? 操作數值 ????????????????????? | ? 名稱 ?????????????????? |
? 立即數 ? | ? $Imm ?????????? | ? Imm = 直接的常數數值 ?????????????????? | ? 立即數尋址 ????????????? |
? 寄存器 ? | ? E_a ??????????? | ? R[E_a] = 寄存器E_a的數據 ?????????????? | ? 寄存器尋址 ????????????? |
? 寄存器 ? | ? Imm ??????????? | ? M[Imm] = VSS[Imm] 虛擬地址Imm處的數據 ? | ? 絕對尋址 ??????????????? |
? 寄存器 ? | ? (E_a) ????????? | ? M[R[E_a]] = VSS[R[E_a]] ??????????????? | ? 間接尋址 ??????????????? |
? 寄存器 ? | ? Imm(E_b) ?????? | ? M[Imm+R[E_b]] = VSS[Imm+R[E_b]] ??????? | ? (基址+偏移量) 尋址 ????? |
? 寄存器 ? | ? (E_b,E_i) ????? | ? M[R[E_b]+R[E_i]] ?????????????????????? | ? 變址 ??????????????????? |
? 寄存器 ? | ? Imm(E_b,E_i) ?? | ? M[Imm+R[E_b]+R[E_i]] ?????????????????? | ? 尋址 ??????????????????? |
? 寄存器 ? | ? (,E_i,s) ?????? | ? M[R[E_i]*s] ??????????????????????????? | ? 伸縮化的變址尋址 ??????? |
? 寄存器 ? | ? Imm(,E_i,s) ??? | ? M[Imm+R[E_i]*s] ??????????????????????? | ? 伸縮化的變址尋址 ??????? |
? 寄存器 ? | ? (E_b,E_i,s) ??? | ? M[R[E_b]+R[E_i]*s] ???????????????????? | ? 伸縮化的變址尋址 ??????? |
? 寄存器 ? | ? Imm(E_b,E_i,s) | ? M[Imm+R[E_b]+R[E_i]*s] ???????????????? |
? 伸縮化的變址尋址 ??????? |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
