2.2 儲存分段和位址的形成
8086/8088的定址方式
8086/8088指令系統
bx
cx
dx
指標暫存器
變址暫存器
控制暫存器
段暫存器
151413
1211109
8765
4321
0ofdfif
tfsf
zfaf
pfcf
運算結果標識
8086或8088系統中以位元組為單位線性組織儲存器
因為8086或8088有20根位址線,所以可以直接定址1m(2^20)的空間,但是由於暫存器只有16位,所以通過對1m的空間進行邏輯分段來實現定址1m的能力。
實體地址= 段值*16 + 偏移
訪問儲存器的方式
正常使用的暫存器
可選暫存器
偏移取指令cs無
ip堆疊操作ss無
sp一般資料訪問
dscs、es、ss
有效位址
源資料串
dscs、es、ss
si目的資料串es無
dibp作為指標暫存器使用
sscs、ds、es
有效位址
運算元包含在指令中
mov ax, 1234h
運算元在cpu內部暫存器中
mov si,ax
運算元存放在儲存器中,指令直接包含運算元的有效位址
mov es:[5678h], bl
運算元在儲存器中,運算元有效位址時si、di、bx、bp四個儲存器之一
mov ax,[si]
運算元在儲存器中,運算元的有效位址是基址暫存器之一加上變址暫存器之一
mov ax, [bx+di]
運算元在暫存器,運算元有效位址是基址暫存器加上變址暫存器再加上偏移
mov ax, [bx+di-2]
指令格式
[標號:] 指令助記符 [運算元1 [,運算元2]] [:注釋]
mov dst,src
規則:1、源和目的不能同時是段暫存器
2、**段暫存器不能作為目的
3、指令指標ip不能作為源也不能作為目的
xchg oprd1, oprd2
規則:1、不能同時是儲存單元
2、不能有立即數
3、不能有段暫存器
1、lea (load effective address)
lea reg, oprd
2、 lds (load pointer into ds)
lds reg, oprd
說明: 將oprd的段值存放到ds,將偏移存放到reg
3、 les (load pointer into es)
les reg, oprd
說明:將oprd的段值存放到es,將偏移存放到reg
1、進棧指令
push src
2、出棧指令
pop dst
1、lahf (load ah with flags)
說明: 將標誌暫存器的低8位存入ah
2、sahf (store ah into flags)
說明: 將ah存入標誌暫存器的低8位
3、pushf
說明: 將標誌暫存器入棧
4、 popf
說明: 將棧頂元素寫入標誌暫存器
5、clc (clear carry flag)
說明: 清空進製標誌
6、stc (set carry flag)
說明: 設定進製標誌
7、cmc (complement carry flag)
說明: 對進製標誌取反
8、cld
說明:清空方向標誌
9、std
說明: 設定方向標誌
10、cli
說明:情況中斷標誌
11、sti
設定中斷標識
1、add
add oprd1, oprd2
說明:加法
2、adc
adc oprd1, oprd2
說明: 帶進製的加法
3、sub
sub oprd1, oprd2
說明: 減法
4、sbb
sbb oprd1, oprd2
說明: 帶借位的減法
5、dec
dec oprd
說明:減一
6、neg
neg oprd
說明:對oprd取補
7、cmp
cmp oprd1, oprd2
說明:oprd1-oprd2 將影響標誌存入標誌暫存器
1、mul
mul oprd
2、imul
imul oprd
3、div
div oprd
4、idiv
idiv oprd
5、cbw
cbw
說明: 將al暫存器的符號位擴充套件到ah
6、cwd
cwd說明:將ax暫存器的符號位擴充套件到dx
1、not
not oprd
說明:對oprd取反並將結果存放到oprd,不影響標誌暫存器
2、and
and oprd1, oprd2
說明:對oprd1,oprd2進行邏輯與運算,並將結果存入oprd1,並影響標誌暫存器
3、or
or oprd1, oprd2
說明:對oprd1,oprd2進行邏輯或運算,並將結果存入oprd1,影響標誌暫存器
4、 xor
xor oprd1,oprd2
說明:對oprd1,oprd2進行邏輯異或運算,並將結果存入oprd1, 影響標誌位
5、test
test oprd1, oprd2
說明:類似and,只影響標誌位
6、sal
sal oprd, m
說明:對oprd左移m位
7、shl
shl oprd, m
說明:對oprd左移m位
8、sar
sar oprd, m
說明:對oprd右移m位符號位保持bub
9、shr
shr oprd, m
說明:對oprd右移m位,左邊補0
10、rol
rol oprd,m
說明:迴圈左移
11、ror
ror oprd,m
說明:迴圈右移
12、rcl
rcl oprd,m
說明:帶進製迴圈左移
13、rcr
rcr oprd,m
說明:帶進製迴圈右移
1、jmp
jmp 標號
2、loop
loop 標號
3、loope
loope 標號
4、loopne
loopne 標號
5、jcxz
jcxz 標號
劍指offer第二章
如果沒有表明成員函式或者成員變數的訪問許可權級別,那麼在struct中預設的是public,在class中預設的是private。衍生知識 三種訪問控制許可權 訪問許可權 public protected private 對本類可見 可見可見 對子類可見 可見不可見 對外部 呼叫方 可見不可見 不可...
x86彙編 第二章 定址方式
暫存器定址 暫存器間接定址 變址定址 基址加變址定址 立即定址 直接定址 定址相關的問題 示例 inc ax 運算元存放在cpu暫存器內,暫存器的名字就是它的位址,直接操作對應的暫存器 示例 mov ax,si 運算元存放在記憶體中,需要通過暫存器的值 該值就是運算元的偏移位址ea 間接找到運算元 ...
MySQL第二章總結 Mysql第二章 儲存引擎
1 本章目標 儲存引擎 資料型別 重點 2 儲存引擎 在關係型資料庫中,資料儲存在表中,表由行和列組成。開發中,可能需要各種不同的表,有的表簡單,有的表複雜,有的表讀取快,有的讀取資料慢,有的表更新快等。根據對資料的不同的處理需求,使用不同的儲存引擎,可以將mysql資料庫的效能發揮到最大。查詢my...