目錄
定址方式
立即數定址方式
暫存器定址方式
儲存器定址方式
轉移位址定址
參照自:
立即數(imm)可以是8位數值,也可以16位數值。
立即數定址方式常用來給暫存器賦值
mov ax, 1234h
運算元存放在cpu的內部暫存器中,
通用暫存器:ax,bx,cx,dx,
si,di,bp,sp
段暫存器:cs,ds,ss,es
mov bx, ax
mov ax, [2000h]
mov ax, es:[2000h]
暫存器間接定址:暫存器內容與有符號8位或16位位移之和。暫存器可以是bx,bp,si,di
ea = bx/bp/si/di+8/16位位移。
段位址bx/si/di預設是ds,bp暫存器預設是ss。
mov ax, [di+06h]
mov bx, [bp+06h]
基址變址定址:
mov ax, [bx+si]
mov ax, [bp+di]
mov ax, ds:[bp+di]
相對基址變址定址:
ea = bx/bp+si/di+8/16
bx基址暫存器預設ds bp基址對應ss。
mov ax, [bx][si]
;相當於mov ax, [bx+si]
mov ax, count[si]
;相當於mov ax, [si+count]
mov ax, wnsum[bx][si]
;相當於mov ax, wnsum[bx+si]
;相當於mov ax, [bx+si+wnsum]
1、段內直接定址。
cs不變,隻變ip。
jmp short quest ;偏移8位 -128~127
jmp near ptr quest ;偏移量 -32768~+32767
2、段內間接定址
設(ds)=2000h, (bx)=1256h, (si)=528fh
位移量=20a1h, (232f7h)=3280h, (264e5h)=2450h
jmp bx ;(ip)=1256h
jmp table[bx] ;(ip)=3280h
jmp [bx][si] ;(ip)=(264e5h)=2450h
3、段間直接定址:
不在同一段內,同時改變cs和ip。段間直接轉移,指令中直接給出了新的段位址cs和偏移位址ip。偏移位址(ip)在低位址,段位址在高位址。
指令格式:
jmp far ptr nextroutint
4、段間間接定址:
新的段位址(cs)和偏移位址(ip)在儲存器的
連續4個位元組單元中
(段位址在高位址中,偏移位址在低位址中)。儲存器的位址由指令中給出的各種定址方式(立即定址方式和暫存器定址方式除外)求得。其段位址隱含為資料段。
指令格式:
jmp dword ptr[inters+bx]
組合語言之定址方式
1 固定定址 inherent addressing 特定的單運算元指令,運算元隱含在操作碼中,在固定定址的指令中,運算元被隱含在指令中,不需要執行匯流排週期,執行速度快 例子 1.1 cbw命令,將al中的符號位擴充套件到ah中,形成16位的運算元。比如al中的符號位是1,則執行cbw命令後,ah...
組合語言之定址方式
如 mov ax,2a78 表示將乙個記憶體單元中的資料送入ax,這個記憶體單元的長度為2位元組 字單元 存放乙個字,偏移位址為2a78h,段位址 在ds中。如 mov al,10f3 表示將乙個記憶體單元中的資料送入al,這個記憶體單元的長度為1位元組 位元組單元 存放乙個位元組,偏移位址為10f...
組合語言之定址方式
1 固定定址 inherent addressing 特定的單運算元指令,運算元隱含在操作碼中,在固定定址的指令中,運算元被隱含在指令中,不需要執行匯流排週期,執行速度快 例子 1.1 cbw命令,將al中的符號位擴充套件到ah中,形成16位的運算元。比如al中的符號位是1,則執行cbw命令後,ah...