精簡組合語言筆記 三 通用暫存器及記憶體位址

2021-10-02 03:56:30 字數 2002 閱讀 7276

暫存器是cpu內部用來存放資料的一些小型儲存區域,用來暫時存放參與運算的資料和運算結果。其實暫存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含儲存電路。暫存器的儲存電路是由鎖存器或觸發器構成的,因為乙個鎖存器或觸發器能儲存1位二進位制數,所以由n個鎖存器或觸發器可以構成n位暫存器。暫存器是**處理器內的組成部分。暫存器是有限儲存容量的高速儲存部件,它們可用來暫存指令、資料和位址。在計算機領域,暫存器是cpu內部的元件,包括通用暫存器、專用暫存器和控制暫存器。

通用暫存器可用於傳送和暫存資料,也可參與算術邏輯運算,並儲存運算結果。

32位16位

8位8位

eaxax

ahal

ebxbx

bhbl

ecxcx

chcl

edxdx

dhdl

espsp無無

ebpbp無無

esisi無無

edidi無無

其中eax、ebx、ecx和edx的結構都相一致,如下:

八個暫存器都可以作為普通的資料暫存器使用。

但有的有特殊的用途:

eax為累加器,常用於存放資料計算得到的結果;

ecx為計數器,在迴圈和字串操作時,要用它來控制迴圈次數;在位操作中,當移多位時,要用cl來指明移位的位數;

ebx為基址暫存器,它可作為儲存器指標來使用;

edx稱為資料暫存器。在進行乘、除運算時,它可作為預設的運算元參與運算,也可用於存放i/o的埠位址。

ebp為基址暫存器,它可作為儲存器指標來使用;

esi為源變址暫存器,edi為目的變址暫存器,它們主要用於存放儲存單元在段內的偏移量,用它們可實現多種儲存器運算元的定址方式,為以不同的位址形式訪問儲存單元提供方便;

ebp位基址暫存器,通常指向棧低,也可以用來定址,見ebp定址;

esp為堆疊指標暫存器,指向當前棧頂;

<1> 記憶體太大沒法起名字,所以只能用編號。當我們想向記憶體中儲存資料,或者從記憶體中讀取資料時,必須用到這個編號,就像寫信必須要寫收信人位址一樣。

<2> 這個編號又稱為記憶體位址(32位,前面0可以省略)。

因為32位機器定址範圍為2^32=4gb,所以32計算機最多為每個程序分配4gb的邏輯空間

組合語言中對記憶體書寫的格式

byte ptr ds:[位址編號]

word ptr ds:[位址編號]

dword ptr ds:[位址編號]

如果位址編號處使用esp和ebp,則ds換成ss:

byte ptr ss:[位址編號]

word ptr ss:[位址編號]

dword ptr ss:[位址便還]

記憶體位址的五種形式

1、形式一:[立即數]

mov eax,dword ptr ds:[0x13ffc4]

2、形式二:[reg]  reg代表暫存器 可以是8個通用暫存器中的任意乙個

mov ecx,0x13ffd0

mov eax,dword ptr ds:[ecx]

3、形式三:[reg+立即數]

mov ecx,0x13ffd0

mov eax,dword ptr ds:[ecx+4]

4、形式四:[reg+reg*]

mov eax,13ffc4

mov ecx,2

mov edx,dword ptr ds:[eax+ecx*4]

形式五:[reg+reg*+立即數]

mov eax,13ffc4

mov ecx,2

mov edx,dword ptr ds:[eax+ecx*4+4]

組合語言 通用暫存器

通用暫存器的主要用途 暫存器的分類 暫存器主 要 用 途 通 用暫存器 資料 暫存器 ax乘 除運算,字的輸入輸出,中間結果的快取 al位元組的乘 除運算,位元組的輸入輸出,十進位制算術運算 ah位元組的乘 除運算,存放中斷的功能號 bx儲存器指標 cx串操作 迴圈控制的計數器 cl移位操作的計數器...

組合語言(三) 暫存器

任何兩個位址連續的記憶體單元,n號單元和 n 1號單元,可以將它們看成兩個記憶體單元 也可以看成乙個位址為n的字單元中的高位位元組單元和低位位元組單元。cpu要讀取乙個記憶體單元時,必須先給出這個記憶體單元的位址 在8086pc中,記憶體位址由段位址和偏移位址組成 8086cpu中有乙個ds暫存器,...

彙編筆記 通用暫存器及堆疊

暫存器 32位 主要用途 編號eax 累加器1 ecx計數 2edx i o指標 3ebx ds段的資料指標 4esp 堆疊指標 棧底 5ebp ss段的資料指標 棧頂 6esi 字串的源指標 ss段的資料指標 7edi 字串操作的目標指標 es段的資料指標 8範圍 0 0xffffffff 位址編...