這段話的主要意思是:乙個字=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暫存器賦值為1234hmov ds,ax # 通過ax暫存器 間接賦值
mov ax,[1] # 中的是偏移量 意思是將12341記憶體位置的字形資料賦給ax暫存器記憶體中的情況如下圖,寫出下面指令執行後暫存器ax,bx,cx中的值?mov al,[1] # 將12341記憶體位置的位元組形資料賦給al(低位)暫存器
mov [1],ax # 將ax暫存器字形資料賦給12341記憶體位置的值
mov [1],al # 將al暫存器的位元組形資料賦給12341記憶體位置
記憶體中的情況如下圖,寫出下面指令執行後暫存器ax,bx,cx中的值?
mov 通用暫存器,資料 # mov ax,1234hmov 通用暫存器,暫存器 # 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...