當前位置:首頁 » 凈水方式 » esiedi寄存器

esiedi寄存器

發布時間: 2021-02-23 20:40:42

A. 試編寫一程序,把ecx,es和esi的內容相加,其和edi存入寄存器中

.code
start:
push es
pop eax
add eax,ecx
add eax,esi
end start

B. 32位匯編里一共有哪些寄存器以及它們的作用,比如cr0,gs,gdtr,等等

在32位匯編中,對復於工作制於ring3的應用程序來說,cr0,gdtr等寄存器是不可見的,可用的寄存器有eax,ebx,ecx,edx,esi,edi,esp,ebp等
其中eax-edx還可以以ax進行16位調用,ah,al進行8位調用,
esi,edi主要用於串操作,esp用於存放堆棧棧頂地址,ebp用於存放堆棧基址。
其餘寄存器的作用在32位中沒有專門的規定(不過api函數的返回值統一存放於eax中)
另外ebx,esi,edi,ebp,esp這幾個寄存器的在使用後要由使用者負責恢復調用前的值

C. edi,esi寄存器是什麼寄存器有什麼作用

EDI和ESI分別是16位寄存器DI和SI的32位擴展
它們是目的變址寄存器和源變址寄存器,用於串操作指令中。
同時,它們也可以作為通用寄存器使用。

D. 匯編中eax,ecx,edx,ebx,esp,ebp,esi,edi,eip分別是什麼有什麼用

這些是32位的CPU中32位的寄存器的名字。

寄存器是CPU內部的用於運行中專暫存數據的存儲單屬元。

在PC用的16位CPU 8086、8088中,寄存器的名字分別是AX(累加器),BX(基址寄存器),CX(計數寄存器),DX(數據寄存器),SP(堆棧指針),BP(基址指針),SI(源變址寄存器),DI(目的變址寄存器),IP(指令指針),等等……

這些寄存器除了從名字可以看得出來的用途以外,一部分寄存器也可以作為通用的一般數據寄存使用。具體每個寄存器的功能要與各種具體的指令關聯起來才能理解清楚。

在386以上的32位CPU中,這些寄存器擴展成了32位的,名字就是在原來16位的名字前面加一個字母E,變成了EAX,EBX,…………

E. 新手求助關於寄存器SYSCFG

32位CPU所含有的寄存器有:

4個數據寄存器(EAX、EBX、ECX和EDX) 2個變址和指針寄存器(ESI和EDI) 2個指針寄存器(ESP和EBP) 6個段寄存器(ES、CS、SS、DS、FS和GS) 1個指令指針寄存器(EIP) 1個標志寄存器(EFlags)

1、數據寄存器數據寄存器主要用來保存操作數和運算結果等信息,從而節省讀取操作數所需佔用匯流排和訪問存儲器的時間。 32位CPU有4個32位的通用寄存器EAX、EBX、ECX和EDX。對低16位數據的存取,不會影響高16位的數據。這些低16位寄存器分別命名為:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。 4個16位寄存器又可分割成8個獨立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每個寄存器都有自己的名稱,可獨立存取。程序員可利用數據寄存器的這種「可分可合」的特性,靈活地處理字/位元組的信息。

寄存器EAX通常稱為累加器(Accumulator),用累加器進行的操作可能需要更少時間。可用於乘、 除、輸入/輸出等操作,使用頻率很高; 寄存器EBX稱為基地址寄存器(Base Register)。它可作為存儲器指針來使用; 寄存器ECX稱為計數寄存器(Count Register)。在循環和字元串操作時,要用它來控制循環次數;在位操作中,當移多位時,要用CL來指明移位的位數; 寄存器EDX稱為數據寄存器(Data Register)。在進行乘、除運算時,它可作為默認的操作數參與運算,也可用於存放I/O的埠地址。

在16位CPU中,AX、BX、CX和DX不能作為基址和變址寄存器來存放存儲單元的地址,在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不僅可傳送數據、暫存數據保存算術邏輯運算結果,而且也可作為指針寄存器,所以,這些32位寄存器更具有通用性。

F. 匯編語言中所有寄存器的作用

寄存器有點多,介紹常用的,通用寄存器8個,EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,最後+eip+EFL;
eax多用於計算,函數的返回值等;
ecx多用於計數(count),比如循環中的那個計數,結合eax,ESI,edi。
ebp用於堆棧指針追蹤,指低(debug版本),esp用於堆棧跟蹤,多跟ebp一起使用(指向頂部,最高,也就是最前)。
esi,edi多用於復制內存。
eip就是固定作用了,CPU指令全靠它了,指那打哪。
efl就是標志寄存器了,16位就夠用了,現在64位,完全空著呢,比如位溢出(兩個計算數據太大溢出,不夠減溢出),凡是條件(除了變態的jmp),無論if,while等,還是運算,或者符號位(數據是正還是負),或者數據檢查,奇偶等,都是看它的。也就是說,無論CPU運算還是控制,都看它對應的不同位。
下面給你通用寄存器幾個例子:假如eax的值為10,要將一塊內存賦值為cc,循環10次,而EDI裡面是內存地址的話,那麼代碼就是:mov EAX,0Xcc
mov ecx,0xa
rep stos byte ptr [edi]
這樣,內存就全部被成為「ccccccccccccccccc」,這樣的代碼到處都是,尤其沒有初始化之後,就能見到這樣的CC,中文顯示就是「燙燙燙」.
從一個內存賦值到另一個內存地址是這樣的,假如esi是指針p1的地址,edi是指針p2的地址,那麼*p2=*p1就是:
rep movs byte ptr es:[edi],byte ptr ds:[esi]
所以,edi,ESI,以及EBX,

G. 匯編語言 esi,edi寄存器問題

都屬於通用寄存器,所以一般場景下都可以隨便用。就是有些傳送指令規定了esi是源,edi是目的

H. 寄存器 rdi與edi什麼關系

DI、EDI、RDI都是目的變址寄存器,DI用於16位匯編、EDI用於32位匯編、RDI用於64位匯編中,並且RDI向前兼容EDI、DI,EDI向前兼容DI。與之對應的還有SI、ESI、RDI都是源變址寄存器,區別與DI、EDI、RDI類似。

I. 寄存器EAX、ECX、EDX、EBX的八位是AL、AH、BL、BH......

eax,ebx,ecx,edx是4個32位的寄存器,對應的16位寄存器分別為ax,bx,cx,dx
ax,bx,cx,dx的高8位和低8位可以分開使用

esp,ebp,esi,edi都是32位的寄存器,其對應的16位寄存器分別為sp,bp,si,di,
這些寄存器都不能再分割出8位的寄存器。

J. 易語言怎麼讀寄存器ESI的值

.子程序 取ESI, 整數型

置入代碼 ({ 139, 198, 201, 195 })
返回 (0)

熱點內容
丁度巴拉斯情人電影推薦 發布:2024-08-19 09:13:07 瀏覽:886
類似深水的露點電影 發布:2024-08-19 09:10:12 瀏覽:80
《消失的眼角膜》2電影 發布:2024-08-19 08:34:43 瀏覽:878
私人影院什麼電影好看 發布:2024-08-19 08:33:32 瀏覽:593
干 B 發布:2024-08-19 08:30:21 瀏覽:910
夜晚看片網站 發布:2024-08-19 08:20:59 瀏覽:440
台灣男同電影《越界》 發布:2024-08-19 08:04:35 瀏覽:290
看電影選座位追女孩 發布:2024-08-19 07:54:42 瀏覽:975
日本a級愛情 發布:2024-08-19 07:30:38 瀏覽:832
生活中的瑪麗類似電影 發布:2024-08-19 07:26:46 瀏覽:239