1. 程式人生 > >第3章 暫存器(記憶體訪問)小結

第3章 暫存器(記憶體訪問)小結

記憶體中字的儲存

字單元,即存放一個字形資料(16位)的記憶體單元,由兩個地址連續的記憶體單元組成。高地址記憶體單元中存放字型資料的高位位元組,低地址記憶體單元中存放字型資料的低位位元組。我們將起始地址為N的字單元簡稱為N地址字單元。

 

DS和[address]

“[...]”表示一個記憶體單元,“[...]”中的0表示記憶體單元的偏移地址。8086CPU自動取ds中的資料為記憶體單元的段地址。8086CPU不支援將資料直接送入段暫存器的操作,只能用一個暫存器來進行中轉,即先將1000H送入一個一般的暫存器,如bx,再將bx中的內容送入ds。

 

mov、add、sub指令

mov指令可以有以下幾種形式:

mov        暫存器,資料

mov        暫存器,暫存器

mov        暫存器,記憶體單元

mov        暫存器,段暫存器

mov        記憶體單元,暫存器

mov        記憶體單元,段暫存器

mov        段暫存器,暫存器

mov        段暫存器,記憶體單元

add指令可以有以下幾種形式:

add         暫存器,資料

add         暫存器,暫存器

add         暫存器,記憶體單元

add         記憶體單元,暫存器

sub指令可以有以下幾種形式:

sub          暫存器,資料

sub          暫存器,暫存器

sub          暫存器,記憶體單元

sub          記憶體單元,暫存器

 

 

CPU提供的棧機制

後進先出的操作規則

push  ax表示將暫存器ax中的資料送入棧中,pop   ax表示從棧頂取出資料送入ax。8086CPU的入棧和出棧操作都是以字為單位進行的。

8086CPU中,有兩暫存器,段暫存器SS和暫存器SP,棧頂的段地址存放在SS中,偏移地址存放在SP中。任意時刻,SS:SP指向棧頂元素。

 

 

Push、Pop指令

執行push時,CPU的兩步操作是:先改變SP,後向SS:SP處傳送。執行pop時,CPU的兩步操作是:先讀取SS:SP處的資料,後改變SP。