組合語言 暫存器(記憶體訪問 ds資料段暫存器)

2022-05-26 09:24:11 字數 3133 閱讀 4272

這段話的主要意思是:乙個字=2b=16bit,cpu中是用兩個記憶體單元儲存乙個字(假如獲取0位址存放的字型資料,就是獲取它的高位位元組0+1位低位位元組0位的資料,資料由高位址位向低位址位讀)

(1)0位址單元中存放的位元組型資料是多少?  #  20h

(2)0位址字單元中存放的字型資料是多少?  # 4e20h

(3)2位址字單元中存放的位元組型資料是多少? # 12h

(4)2位址單元中存放的字型資料是多少?      #  0012h

(5)1位址字單元中存放的字型資料是多少?  # 12aeh

用法和cs和ip差不多,都是段暫存器的值*16+偏移量的值

因為cpu的段暫存器都比較害羞,沒法給他們直接賦值(cs**暫存器用的是jmp cs:ip),所以段暫存器採用以下方法賦值

mov ax,1234h    # 將ax暫存器賦值為1234h

mov ds,ax # 通過ax暫存器 間接賦值

mov ax,[1]    # 中的是偏移量 意思是將12341記憶體位置的字形資料賦給ax暫存器

mov al,[1] # 將12341記憶體位置的位元組形資料賦給al(低位)暫存器

mov [1],ax # 將ax暫存器字形資料賦給12341記憶體位置的值

mov [1],al # 將al暫存器的位元組形資料賦給12341記憶體位置

記憶體中的情況如下圖,寫出下面指令執行後暫存器ax,bx,cx中的值?

記憶體中的情況如下圖,寫出下面指令執行後暫存器ax,bx,cx中的值?

mov 通用暫存器,資料		# mov ax,1234h

mov 通用暫存器,暫存器 # mov bx,ax / mov bx,ds(將段暫存器的值賦給通用暫存器)

mov 段暫存器,暫存器 # mov ds,ax(因為無法直接給段暫存器賦值,所以用通用暫存器當中介)

mov 記憶體單元,暫存器 # mov [0],ax(將ax暫存器中的值賦給ds*16+0這個記憶體單元)

mov 記憶體單元,暫存器 # mov ax,[0](記憶體單元ds*16+0的值賦給ax暫存器)

我們上面操作的實際上就是資料段,具體來看下是怎樣運算元據段的

累加123b0h~123bah的記憶體單元的操作

(1)字在記憶體中儲存時 ,要用兩個位址連續的記憶體單元來存放,字的低位位元組存放在低位址單元中,高位位元組存放再高位址單元中。

(2)用 mov 指令要訪問記憶體單元,可以在mov指令中只給出單元的偏移位址,此時,段位址預設在ds暫存器中。

(3)[address]表示乙個偏移位址為address的記憶體單元。

(4)在記憶體和暫存器之間傳送字型資料時,高位址單元和高8位暫存器、低位址單元和低8位暫存器相對應。

(5)mov、add、sub是具有兩個操作物件的指令。jmp是具有乙個操作物件的指令。

(2) 記憶體中的情況如圖3.6所示

各暫存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0;

①   寫出cpu執行的指令序列(用彙編指令寫出)。

②   寫出cpu執行每條指令後,cs、ip和相關暫存器的數值。

③   再次體會:資料和程式有區別嗎?如何確定記憶體中的資訊哪些是資料,哪些是程式?

答案:我以為jmp了以後cp的值也會改變,實際上就是它jmp的內個cp:ip

指令序列

csip

dsax

bx初始值

2000h00

001mov ax,6622h

2000h3h0

6622h02

jmp 0ff0:0100

ff0h

100h

06622h03

mov ax,2000h

ff0h

103h

02000h04

mov ds,ax

ff0h

105h

2000h

2000h05

mov ax,[8]

ff0h

108h

2000h

c389h06

mov ax,[2]

ff0h

10bh

2000h

ea66h

0

組合語言 暫存器 記憶體訪問

記憶體中字的儲存 cpu中,用16位暫存器來儲存乙個字,乙個字要用兩個連續的記憶體單元來存放,這個字的低位位元組存放到低位址單元中,高位位元組存放在高位址單元中。假如用0 1兩個記憶體單元存放乙個字,這兩個單元看作乙個起始位址為0的字單元。ds和 address 8086cpu中有乙個ds暫存器,通...

組合語言 暫存器(記憶體訪問)

在cpu中,用16位來儲存乙個字,高8位存放高位元組,低8位存放低位位元組。在記憶體中時,由於記憶體單元是位元組單元,剛乙個字要用2個位址連續的記憶體單元來存放,字的低位位元組存在低位址單元.字單元 存放乙個字型資料 16位 的記憶體單元,由兩個位址連續的記憶體單元組成,高位址記憶體單元中存放字型資...

組合語言 暫存器(記憶體訪問)

暫存器 記憶體訪問 字的儲存,乙個字占用兩個位元組,在記憶體單元中儲存要用兩個位址連續的記憶體單元來存放 低位位元組放在低位址單元中,字單元,即兩個位址連續的記憶體單元 ds和 address ds暫存器通常用來存放要訪問資料的段位址 mov al,0 mov al,ds 0 資料訪問的段位址預設d...