一、常見暫存器的分類
1.通用暫存器(eax ebx ecx edx ebp esp esi edi)
2.段暫存器(cs ds ss es fs gs)
3.指令指標暫存器(eip)
4.標誌暫存器(eflags)
二、通用暫存器
通用暫存器分為前加上字母e表示32位暫存器,普通的32位暫存器分為高16位和低16位,低16位通用暫存器有具體名稱,分別叫做ax、bx、cx、dx、si(源指標暫存器)、di、(目的指標暫存器)、sp 、bp。
那麼各種暫存器的作用分別是什麼呢?這裡簡要介紹一下。
(一)資料暫存器(eax ebx ecx edx):
1.eax——累加暫存器(accumulator register)
低16位(ax=ah&al)
作用:實現乘除運算、中間結果快取
2.ebx——基址暫存器(base register)
低16位(bx=bh&bl)
作用:儲存器指標
3.ecx——計數暫存器(count register)
低16位(cx=ch&cl)
作用:實現迴圈控制、進行串操作
4.edx——資料暫存器(data register)
低16位(dx=dh&dl)
作用:實現乘除運算、中間結果快取(與eax類似)
(二)變址暫存器和指標暫存器(esi edi ebp esp)
1.esi——源變址暫存器(source index register)
低16位(si)
作用:作為儲存器指標、在串指令中作為源運算元指標
2.edi——目的變址暫存器(destination index register)
低16位(di)
作用:作為儲存器指標、在串指令中作為目的運算元指標
3.ebp——基址指標暫存器(base pointer register)
低16位(bp)
作用:指向棧幀底部或棧底(棧幀底部和棧底是兩個不同的概念)
4.esp——堆疊指標暫存器(stack pointer register)
低16位(sp)
作用:指向棧幀頂部或棧頂(棧幀頂部和棧頂是兩個不同的概念)
(三)段暫存器(cs ds ss es fs gs)
段暫存器作用——儲存段位址
1.cs——**段暫存器(code segment register)
作用:儲存**段的段位址
2.ds——資料段暫存器(data segment register)
作用:儲存資料段的段位址
3.ss——堆疊段暫存器(stack segment register)
作用:儲存堆疊段的段位址
4.es——附加段暫存器(extra segment register)
作用:儲存附加段的段位址
5.新增附加段暫存器:
fs——附加段暫存器(extra segment register)
gs——附加段暫存器(extra segment register)
(四)eip——指令指標暫存器(instruction pointer register)
1.記憶體中的位址表示
實體地址=段位址+偏移位址
段位址儲存在段暫存器中、偏移位址是相對於段位址的偏移量。
eip暫存器存放下乙個機器指令的位址,指向下一條**指令,並隨程式的執行不斷變化。
(五)eflags——標誌暫存器
1.cf——進製標誌(carry flag)
2.pf——奇偶標誌(parity flag)
3.af——輔助進製標誌(auxiliary carry flag)
4.of——溢位標誌(overflow flag)
5.sf——符號標誌(sign flag)
6.zf——零標誌(zero flag)
微處理器 微控制器 暫存器這些你分的清楚嗎
嵌入式系統的處理器大多是微控制器 microcontroller 微控制器不同於微處理器 microprocessor 它是指在同一塊晶元內除了 處理單元 cpu 之外還整合了部分記憶體和外設。整合於微控制器內的記憶體和外設我們分別稱之為 片內記憶體 和 片內外設 否則稱之為 片外記憶體 和 片外外...
Chisel中的幾種常見的暫存器
一 最基本形式 可用於型別宣告reg val clock node x.parent.get.clock 時鐘跟復位訊號在chisel中是隱藏的。reg t,next,init 如果沒有顯示式宣告,那這三個的預設值都是null t 是暫存器的資料型別 next 是資料的輸入端,也就是要延遲一拍輸出的...
我了解的部分指令與暫存器
部分指令 mov 傳達指令,格式 mov op1,op2 reg mem,reg mem im sub 減法指令 不帶借位 格式 sub op1,op2 op1 op2 op1 add 加法指令 不帶進製 格式 add op1,op2 op1 op2 op1 jmp 無條件跳轉指令。test 將兩個...