第二章 8086 8088定址和指令系統

2021-10-06 10:47:01 字數 3682 閱讀 7435

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...