彙編3 暫存器

2021-07-26 15:32:53 字數 1213 閱讀 5921

3.1記憶體中字的儲存

任何兩個位址連續的記憶體單元,n號和n+1號單元,可以將它們看成兩個記憶體單元,也可以看成乙個位址為n的字單元中的高位位元組單元和低位位元組單元。

3.2段位址暫存器

ds是段位址暫存器,裡面儲存的是16位的資料,代表當前段位址。

不能直接通過mov指令將資料存入ds中,mov ds,1000h這樣寫是錯誤的。只能先把1000h存入通用暫存器mov bx,1000h 然後 mov ds,bx。只能把另乙個暫存器中的資料寫入到ds中。

ds和cs的區別:ds儲存的是資料段基位址,cs儲存的是**段基位址。而且除了跳轉或其他分支指令之外,無法修改cs暫存器的內容。ds暫存器內容只能傳送,不能運算。

3.3mov指令的物件還能是記憶體單元

mov ax,[0] 1000:0處的字型資料送入ax,是傳入字型資料還是位元組型資料取決於傳入的暫存器,如果是al或ah則傳入的位元組型資料。

3.5棧

8086cpu提供出棧和入棧的基本指令:

push(入棧)

pop(出棧)

push ax:將暫存器ax中的資料送入棧中

pop ax:從棧頂取出資料送入ax

8086cpu的入棧和出棧操作都是以字為單位進行的

將10000h—1000fh這段空間當做棧的時候

ss=1000h,棧的空間大小為16位元組,棧的最底部字單元位址為1000:000e。

任意時刻ss:sp指向棧頂元素,當佔中只有乙個元素的時候ss=1000h,sp=000eh(入棧是sp先-2,再入棧)。當棧為空時,佔中沒有元素,也不存在棧頂元素。此時ss:sp只能指向棧最底部單元下面的單元,該單元的偏移位址為棧最底部的子單元的偏移位址+2。棧最底部字單元位址為1000:000e,所以棧空時,sp==0010h。

我們將硬碟格式化的時候只是初始化了棧的指標,並沒有真的把資料情況,所以是可以恢復的。這裡執行了pop指令後,原來記憶體單元中的資料還是存在的。

3.6push和pop的格式

格式1:push暫存器:將乙個暫存器的資料入棧

pop暫存器:用乙個暫存器接受出棧的資料

格式2:push段暫存器:講乙個段暫存器中的資料入棧

pop段暫存器:用乙個段暫存器接受出棧資料(只有jmp能操作cs,而且其他段暫存器不能用mov 段暫存器 ,資料 的形式賦值 cs暫存器只能由系統設定)

格式3:push記憶體單元 push[0]

pop記憶體單元 pop[0]

彙編學習(3)暫存器

暫存器 cpu的構成 乙個典型的cpu是由運算器 控制器 暫存器等器件構成,這些器件靠內部匯流排相連。各器件的聯絡 運算器進行資訊處理 暫存器進行資訊儲存 控制器控制各器件進行工作 內部匯流排連線各種器件。通用暫存器 ax bx cx dx這4個暫存器通常用來存放一般性的資料,被稱為通用暫存器。80...

組合語言 3暫存器

1.資料在21f60h記憶體單元中,可以說為 資料存在記憶體2000 1f60單元中 資料存在記憶體中的2000段的1f60單元中。2.9段暫存器 8086cou有4個段暫存器 cs,ds,ss,es.2.10 cs和ip cs為段暫存器,ip為指令暫存器 在8086機中任意時刻cpu將cs ip指...

彙編暫存器知識

一 32位cpu所含有的暫存器有 1 資料暫存器。4個 eax ebx ecx edx。2 變址暫存器 index register 2個 esi edi。3 指標暫存器 pointer register 2個 esp extended stack pointer ebp extended base...