微型計算機原理_第1頁
微型計算機原理_第2頁
微型計算機原理_第3頁
微型計算機原理_第4頁
微型計算機原理_第5頁
已閱讀5頁,還剩188頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

微型封簿機展理

基于16位機

概述

微處理器

指令系統(tǒng)

iihljS

0

.鐳

1.1微型材算機的岌展/0應用

■1946年,世界上出現(xiàn)第一臺數(shù)字式電子計

算機(電子數(shù)據(jù)和計算器)

■發(fā)展到以大規(guī)模集成電路為主要部件的第

四代,產(chǎn)生了微型計算機

■1971年,Intel公司設(shè)計了世界上第一個微

處理器芯片,開創(chuàng)了一個全新的

計算機時代

1.1.1微型計算機的發(fā)展

■第1代:4位和低檔8位微機

4004—4040—8008

■第2代:中高檔8位微機

Z80、18085、M6800,微機

■第3代:16位微機

8086一—80286,

31

1.1.1微型計算機的發(fā)展(續(xù))

■第4代:32位微機

一804867—PentiumII

—>PentiumIII-

32位PC機、Macintosh機、PS/2機

■第5代:64位微機

Itanium.64位RISC微處理器芯片

微機服務器、工程工作站、圖形工作站

1.1.2微型計算機的應用

■計算機應用通常分成如下各個領(lǐng)域

科學計算,數(shù)據(jù)處理,實時控制

計算機輔助設(shè)計,人工智能,……

■由于微型計算機具有如下特點

體積小、價格低

工作可靠、使用方便、通用性強……

■所以,可以分為兩個主要應用方向

1.1,微型計算機的應用

以及其他主要部件(如丁,

■用|ROM、RAM、I/O接口)都集成在方向

.一個微處理器芯片中.

例如:常用的MCS-51、MCS-96^■

■用于過程控制及智能乙窠Z/向

專用微機,例如:單片機、工控機

可靠性高、實時性強

程序相對簡單、處理數(shù)據(jù)量小

1.2微型計算機的系統(tǒng)組成

微型計算機系統(tǒng)

1.2.1微型計算機的硬件組成

系統(tǒng)總線BUS

處------------------地址總線AB

統(tǒng)

------------------數(shù)據(jù)總線DB

子---------------控制總線CB

統(tǒng)存儲器I/O接口

1.微處理器子系統(tǒng)

2.存儲器

I/O設(shè)備3.I/O設(shè)備和I/O接口

4.系統(tǒng)總線

圖L1微型計算機的系統(tǒng)組成

系統(tǒng)總線

■總線是指傳遞信息的一組公用導線

■總線是傳送信息的公共通道

■微機系統(tǒng)采用總線結(jié)構(gòu)連接系統(tǒng)功能部件

■總線信號可分成三組

□地址總線AB:傳送地址信息

數(shù)據(jù)總線DB:傳送數(shù)據(jù)信息

控制總線CB:傳送控制信息

總線信號

■地址總線ABcm

輸出將要訪問的內(nèi)存單元或I/O端口的地址

地址線的多少決定了系統(tǒng)直接尋址存儲器的范圍

■數(shù)據(jù)總線DBCUD

CPU讀操作時,外部數(shù)據(jù)通過數(shù)據(jù)總線送往CPU

CPU寫操作時,CPU數(shù)據(jù)通過數(shù)據(jù)總線送往外部

數(shù)據(jù)線的多少決定了一次能夠傳送數(shù)據(jù)的位數(shù)―

■控制總線CB<1。

協(xié)調(diào)系統(tǒng)中各部件的操作,有輸出控制、輸入狀態(tài)等信號

控制總線決定了系統(tǒng)總線的特點,例如功能、適應性等

1.2.2微型計算機的軟件系統(tǒng)

操作系統(tǒng)MS-DOS

匯編程序MASM和LINK

文本編輯程序EDIT.COM

調(diào)試程序DEBUG.EXE

匯編源程序

1.3舊MPC系列機系統(tǒng)

16位舊MPC系列機是32位微機的基礎(chǔ)

1.3.1硬件基本組成

16位和

32位PC機的基本部件相同

主機板組成

1.3.2r17Tz7」JI:/、4y門口

1.微處理器子系統(tǒng)

8088:16位內(nèi)部結(jié)構(gòu)、8位數(shù)據(jù)總線、20總線

80位地址總線、477MHz主頻I/O

總線

2.存儲器道

J-總線

11ROM-BIOS、主體為RAM

3.I/O接口控制電路

8259A、8253、8237A、8255等

in4.I/O通道

62線的舊MPC總線

1.3.3存儲空間的分配

000000H

系統(tǒng)RAM

6411KB―

OAOOOOH顯5常規(guī)內(nèi)存:

1:1MB

OCOOOOH擴/■基本RAM區(qū):640KB

OEOOOOH保¥

6■保留RAM區(qū):128KB

OFOOOOH基二

6■擴展ROM區(qū):128KB

100000H

擴/■基本ROM區(qū):64KB

FEOOOOH保^a抵展商華腺皿M隹

64KB

基本ROM

FFFFFFH64KB

圖1.5存儲空間的分配

1.3.4I/O空間的分配

OOO-OIFDMA控制器1

020-03F中斷控制器工

040-05F定時計數(shù)器

統(tǒng)

板060-07F

80x86訪問外設(shè)時,只使用低16位

尋址個位端口

0A0-A15,64K8I/O

■PC機僅使用低1。位A。?Ag,尋址

1___1024個8位I/C端口_____________

O278-27F并行打印機接口LPT2

I/2F8-2FF串行通信接口COM2

378-37F并行打印機接口LPT1

380-38FSDLC通信接口

3A0-3AFBSC通信接口

3B0-3BF單色顯示/打印機適配器

3D0-3DF彩色圖形適配器CGA

3F0-3F7軟盤適配器

3F8-3FF串行通信接口C0M1

第1章:1/計算機中的數(shù)據(jù)表示

■存儲容量的表達

比特b(二進制1位)

字節(jié)B(二進制8位)

1KB=210B=1024B

1MB=220B>1GB=230B

■進制的表示

二進制數(shù)用B或b結(jié)尾

□十進制數(shù)可不用結(jié)尾字母,

也可用D或d結(jié)尾

十六進制數(shù)用H或h結(jié)尾

lntel4004和采用4004的計算器

.返回.

Apple微型計算機

Apple-I

Apple-II

.返回.

返回

intel.

英特爾微處理器芯片

pentium*.,.

irrte(a

Pentium^

80386

Pentium

.返回.

明確3個概念的區(qū)別

■微處理器(Microprocessor)

一個大規(guī)模集成電路芯片

內(nèi)含控制器、運算器和寄存器等

微機中的核心芯片

■微型計算機(Microcomputer)

通常指微型計算機的硬件系統(tǒng)

還有一般的說法:微機、微型機

■微型計算機系統(tǒng)(Microcomputersystem)

指由硬件和軟件共同組成的完整的計算機系統(tǒng)

QUO

Intel80x86CPU的地址線條數(shù)

lntel80x86地址條數(shù)存儲容量

■8086201MB

■8088201MB

■802862416MB

■80386324GB

-Pentium4

.返回.

Intel80x86CPU的數(shù)據(jù)線條數(shù)

Intel80x86數(shù)據(jù)位數(shù)

■808616

■80888

■8028616

■80386~Pentium432

.返回.

系統(tǒng)總線的使用特點

■除了CPU外,還有DMA控制器和協(xié)處理器都

具有控制系統(tǒng)總線的能力。它們被稱為“總線

主控設(shè)備”

■在某一個時刻,只能由一個總線主控設(shè)備來控

制系統(tǒng)總線

■在連接系統(tǒng)總線的各個設(shè)備中,某一個時刻只

能有一個發(fā)送者向總線發(fā)送信號;但可以有多

個設(shè)備從總線上同時獲得信號

返回

■二章

主頻

外頻

工作電壓

制造工藝

地址線寬度

數(shù)據(jù)線寬度

內(nèi)置協(xié)處理器

^速發(fā)展贏

奔騰4代(安騰)

奔騰3代

奔騰2代

奔騰

80486

80386

80286

8086pentium,

4004

8088處理器

Intel公司1978年推出8086

1979年推出,于1981年用于舊MPC/XT中

2.118086/8088的內(nèi)部結(jié)構(gòu)

、總線接口部件BIU(BusinterfaceUnit)

二、執(zhí)行部件(ExecutionUnit)

第2章:2.L28088/8086的功能結(jié)構(gòu)

■8088的從功能上分成兩個單元

1.總線接口單元BIU

管理8088與系統(tǒng)總線的接口

負責CPU對存儲器和外設(shè)進行訪問

2.執(zhí)行單元EU

負責指令的譯碼、執(zhí)行和數(shù)據(jù)的運算

■兩個單元相互獨立,分別完成各自操作,

還可以,實現(xiàn)指令預?。ㄖ噶钭x取

和執(zhí)行的流水線操作)

■8088/8086的寄存器組有

□8個通用寄存器

4個段寄存器

1個標志寄存器

1個指令指針寄存器

他們均為16位!

「中匯編語言程序員看到的處理器,就是寄存器、

所以;一定要熟悉這些寄存器的名稱和作用

第2章:1.通用寄存器

■8088有8個通用的16位寄存器

(1)數(shù)據(jù)寄存器:AXBXCXDX

(2)變址寄存器:SIDI

(3)指針寄存器:BPSP

■4個數(shù)據(jù)寄存器還可以分成高8位和低8位兩

個獨立的寄存器,這樣又形成8個通用的8

位寄存器

AX:AHALBX:BHBL

CX:CHCLDX:DHDL內(nèi)部結(jié)構(gòu)

第2章:(1)數(shù)據(jù)寄存器

■AX稱為累加器(Accumulator)

使用頻度最高。用于算術(shù)、邏輯運算以及與外設(shè)傳送信

息等

■BX稱為基址寄存器(BaseaddressRegister)

常用做存放存儲器地址

■CX稱為計數(shù)器(Counter)

作為循環(huán)和串操作等指令中的隱含計數(shù)器

■DX稱為數(shù)據(jù)寄存器(Dataregister)

常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址

第2章:(1)數(shù)據(jù)寄存器

■稱為(Accumulator)

使用頻度最高。用于算術(shù)、邏輯運算以及與外設(shè)傳送信

息等

■稱為(BaseaddressRegister)

常用做存放存儲器地址

■稱為(Counter)

作為循環(huán)和串操作等指令中的隱含計數(shù)器

■稱為(Dataregister)

常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址

內(nèi)部結(jié)構(gòu)

<

第2章:(2)變址寄存器

■16位變址寄存器SI和DI

■常用于存儲器變址尋址方式時提供地址

是源地址寄存器(SourceIndex)

是目的地址寄存器(DestinationIndex)

■在串操作類指令中,SKDI還有較特殊的用法

?現(xiàn)在不必完全逋解,以后會詳細展開

內(nèi)部結(jié)構(gòu)

第2章:(3)指針寄存器

SF堆棧(Stack)是主存中一個特殊的

棧區(qū)域,采用“先進后出”或“后進先出”

BF存取操作方式、而不是隨機存取方式。

數(shù)用8088/8086形成的微機系統(tǒng)中,堆

■SP利棧區(qū)域被稱為堆棧段

定堆棧段中的存儲單元地址

內(nèi)部結(jié)構(gòu)?

第2章:2.指令指針寄存器

■(InstructionPointer)為指令指針寄存

器,指示主存儲器指令的位置

■隨著指令的執(zhí)行,IP將自動修改以指示下一

條指令所在的存儲器位置

■IP寄存器是一個寄存器

■IP寄存器與CS段寄存器聯(lián)合使用以確定下

一條指令的存儲單元地址

內(nèi)部結(jié)構(gòu)

第2章:3.標志寄存器

■標志(Flag)用于反映指令執(zhí)行結(jié)果

或控制指令執(zhí)行形式

■8088處理器的各種標志形成了一個16

位的標志寄存器LAGS(程序狀態(tài)字

PSW寄存器)

第2章:標志寄存器-分類

■狀態(tài)標志一一用來記錄程序運行結(jié)果的狀態(tài)

信息,許多指令的執(zhí)行都將相應地設(shè)置它

■控制標志一一可由程序根據(jù)需要用指令設(shè)置,

用于控制處理器執(zhí)行指令的方式

標志寄存器__F_L_A_G__S_____________

151211109876543210

DFIFTF

內(nèi)部結(jié)構(gòu)存儲

第2章:進位標志CF(CarryFlag)

■當運算結(jié)果的最高有效位有進位(加法)或借

位(減法)時,進位標志置1,即CF=1;

否則CF=O

3AH+7cH=B6H,沒有進位:CF=0

AAH+7CH=(1)26H,有進位:CF=1

?。

第2章:零標志ZF(ZeroFlag)

■若運算結(jié)果為為則ZF=1;

否則ZF=0

尸j.二??;丁,,:.:三一「港];,:.[二;三=,.卜匚7??;,:!二三=F:.??;,:

。注意:;ZF%1袤示的結(jié)集是。

L-i

二3?一..」£二二,:;=*,二..」£二二,一二二-1二?.」,二二,一-二一;士世。-:??/,二二,一2

3AH+7cH=B6H,結(jié)果不是零:ZF=0

4H+7CH=(1)00H,結(jié)果是零:ZF=1

第2章:符號標志SF(SignFlag)

■運算結(jié)果最高位為1,則SF=1;

否則SF=O

二:v¥,???f

所以,最高有效位就是符號標志的狀態(tài)

3AH+7cH=B6H,最高位口7=1:SF=1

84H+7CH=(1)OOH,最高位口7=0:SF=O

第2章:奇偶標志PF(ParityFlag)

■當運算結(jié)果最低字節(jié)中“1”的個數(shù)為零

或偶數(shù)時,PF=1;否則PF=O

一.F標志僅反映最低8位中“1”的個數(shù)是■

■調(diào)或奇喜即使是進行16位字操作三至匚?

3AH+7CH=B6H=10110110B

結(jié)果中有5個“1,是奇數(shù):PF=O

出標志OF(OverflowFlag)

■若算術(shù)運算的結(jié)果有溢出,則OF=1;

否貝ijOF=0

3AH+7CH=B6H,產(chǎn)生溢出:OF=12

AAH+7CH=(1)26H,沒有溢出:OF=0

返回

第2章:什么是溢出

pB6H=10110110B,最高位為1,j

作為有符號數(shù)是負數(shù)

?對B6H求反加1等于:

01001001B+1=01001010B=4AH=74

(所以,B6H表達有符號數(shù)的真值為一74J

3AH+7CH=B6H,就是58+124=182,

已經(jīng)超出一128?+127范圍,產(chǎn)生溢出,故0F=1;

補碼B6H表達真值是一74,顯然運算結(jié)果也不正確

第2章:溢出和進位的區(qū)別

■溢出標志OF和進位標志CF是兩個意義

不同的標志

■進位標志表示無符號數(shù)運算結(jié)果是否超

出范圍,運算結(jié)果仍然正確

■溢出標志表示有符號數(shù)運算結(jié)果是否

出范圍,運算結(jié)果已經(jīng)不正確

o

第2章:溢出和進位的對比

例1:3AH+7CH=B6H

無符號數(shù)運算:58+124=182

范圍內(nèi),無進位

有符號數(shù)運算:58+124=182

范圍外,有溢出

例2:AAH+7cH=(1)26H

無符號數(shù)運算:170+124=294

范圍外,有進位

有符號數(shù)運算:-86+124=28

范圍內(nèi),無溢出

第2章:溢出和進位的應用場合

■處理器對兩個操作數(shù)進行運算時,按照無

符號數(shù)求得結(jié)果,并相應設(shè)置進位標志CF;

同時,根據(jù)是否超出有符號數(shù)的范圍設(shè)置

溢出標志OF

■應該利用哪個標志,則由程序員來決定。

也就是說,如果將參加運算的操作數(shù)認為

是無符號數(shù),就應該關(guān)心進位;認為是有

符號數(shù),則要注意是否溢出

第2章:溢出的判斷

■判斷運算結(jié)果是否溢出有一個簡單的規(guī)則:

■只有當兩個相同符號數(shù)相加(包括不同符號數(shù)相

減),而運算結(jié)果的符號與原數(shù)據(jù)符號相反時,

產(chǎn)生溢出;因為,此時的運算結(jié)果顯然不正確

■其他情況下,則不會產(chǎn)生溢出

例1:3AH+7CH=B6H溢出

例2:AAH+7CH無溢出

例3:3AH-7CH無溢出

例4:AAH-7CH=2DH溢出

返回

■弟輔助進位標志AF_

(AuxiliaryCarryFlag)

?運算時D3位(低半字節(jié))有進位或借

位時,AF=1;否則AF=O

個標志主要由處理器內(nèi)部使用;「

丁F十進制算術(shù)運算調(diào)整指令中,「

■用片一般不必關(guān)心:1"「匕

3AH+7cH=B6H,D3有進位:AF=1

第2章:方向標志DF(DirectionFlag)

■用于串操作指令中,控制地址的變化方向:

設(shè)置DF=0,存儲器地址自動增加;

設(shè)置DF=1,存儲器地址自動減少

ACLD指令復位方向標志:DF=0

指令置位方向標志:DF=1

■中斷允許標志

(Interrupt-enableFlag)

■控制可屏蔽中斷是否可以被處理器響應:

設(shè)置IF=1,則允許中斷;

設(shè)置IF=O,則禁止中斷

■ACLI指令復位中斷標志:IF=O

ASTI指令置位中斷標志:IF=1

第2章:陷阱標志TF(TrapFlag)

■用于控制處理器進入單步操作方式:

設(shè)置TF=O,處理器正常工作;

□設(shè)置TF=1,處理器單步執(zhí)行指令

>單步執(zhí)行指令——處理器在每條指令執(zhí)行結(jié)

束時,便產(chǎn)生一個編號為1的內(nèi)部中斷

?這種內(nèi)部中斷稱為

A所以TF也稱為

■利用單步中斷可對程序進行逐條指令的調(diào)試

■這種逐條指令調(diào)試程序的方法就是單步調(diào)試

:2章:2.1.48088/8086的存儲器結(jié)構(gòu)

■存儲器是計算機存儲信息的地方。掌握數(shù)

據(jù),以及存儲器的對以

后的匯編程序設(shè)計非常重要

■你能區(qū)別寄存器、存儲器(主存)、外存(包

括硬盤、光盤、磁帶等存儲介質(zhì))嗎?

答案

第2章:寄存器、存儲器和外存的區(qū)別

■方存器是微處理器(CPU)內(nèi)部的存儲

單元,以名稱表示,例如:AX,BX.??...等

■儲卷也就是平時所說的,也叫,可直

接與CPU進行數(shù)據(jù)交換。主存利用地址區(qū)別

■外有主要指用來長久保存數(shù)據(jù)的外部存儲介質(zhì),

常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)

只能通過主存間接地與CPU交換數(shù)據(jù)

■程序及其數(shù)據(jù)可以長久存放在外存,在運行需要

時才進入主存

第2章:1.數(shù)據(jù)的存儲格式

■計算機中信息的單位圖示

二進制位Bit:存儲一位二進制數(shù):0或1

字節(jié)Byte:8個二進制位,D7~D0

字Word:16位,2個字節(jié),D15?Do

雙字DWord:32位,4個字節(jié),D31-D0

■最低有效位LSB:數(shù)據(jù)的最低位,D。位

■最高有效位MSB:數(shù)據(jù)的最高位,對應字節(jié)、

字、雙字分別指D7、D15,D31位

第2章:存儲單元及其存儲內(nèi)容

■每個存儲單元都有一個編號;被稱

%

■每個存儲單元存放一個字節(jié)的內(nèi)容

0002H單元存放有一個數(shù)據(jù)34H

表達為[0002H]=34H

'圖示〕

第2章:多字節(jié)數(shù)據(jù)存放方式

”的存儲形式,被稱為“小端方式

eEndian'o

圖2-5中0002H“字”單元的內(nèi)容為:

[0002H]=1234H

0002H號“雙字”單元的內(nèi)容為:'圖示,

[0002H]=78561234H

第2章:數(shù)據(jù)的地址對齊

■同一個存儲器地址可以是字節(jié)單元地址、

字單元地址、雙字單元地址等等(視具體情況

來確定)

■字單元安排在(xxxOB)、雙字單元

安排在(xxOOB)等,被稱為“地址

對齊(Align)”

■對于不對齊地址的數(shù)據(jù),處理器訪問時,

需要額外的訪問存儲器時間

■應該將數(shù)據(jù)的地址對齊,以取得較高的存

取速度

第2章:2,存儲器的分段管理

■8088CPU有20條地址線

最大可尋址空間為22。=1MB

□物理地址范圍從00000H?FFFFFH

■8088CPU將1MB空間分成許多

□每個段最大限制為64KB

段地址的低4位為0000B

■這樣,一個存儲單元除具有一個唯一的物

理地址外,還具有多個邏輯地址

第2章:物理地址和邏輯地址

■8088CPU存儲系統(tǒng)中,對應每個物理存

儲單元都有一個唯一的20位編號,就是物

理地址,A00000H-FFFFFH

■分段后在用戶編程時,采用邏輯地址,

形式為

段基地址;段內(nèi)偏移地址

物理地址14700H

邏輯地址1460H:100H

第2章:邏輯地址

■段地址說明邏輯段在主存中的起始位置

■8088規(guī)定段地址必須是模16地址:xxxxOH

■省略低4位0000B,段地址就可以用16位數(shù)

據(jù)表示,就能用段寄存器表達段地址

■偏移地址說明主存單元距離段起始位置的

偏移量

■每段不超過64KB,偏移地址也可用數(shù)

據(jù)表示

第2章:物理地址和邏輯地址的轉(zhuǎn)換

■將邏輯地址中的段地址左移4位,加上

偏移地址就得到20位物理地址

■一個物理地址可以有多個邏輯地址

第2章:3.段寄存器

■8088有4個16位段寄存器

CS(代碼段)指明代碼段的起始地址cs

SS(堆棧段)指明堆棧段的起始地址ss

DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址DS

ES(附加段)指明附加段的起始地址ES

■每個段寄存器用來確定一個邏輯段的起

始地址,每種邏輯段均有各自的用途

第2章:代碼段寄存器CS

(CodeSegment)

■代碼段用來存放程序的指令序列

代碼段寄存器CS存放代碼段的段地址

指令指針寄存器IP指示下條指令的偏移地址

■處理器利用CS:IP取得下一條要執(zhí)行的指令

第2章:堆棧段寄存器SS

(StackSegment)

■堆棧段確定堆棧所在的主存區(qū)域

堆棧段寄存器SS存放堆棧段的段地址

堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂?/p>

■處理器利用SS:SP操作堆棧頂?shù)臄?shù)據(jù)

第2章:數(shù)據(jù)段寄存器DS

(DataSegment)

■數(shù)據(jù)段存放運行程序所用的數(shù)據(jù)

數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址

各種主存尋址方式(有效地址EA)得到存儲器

中操作數(shù)的偏移地址

■處理器利用DSEA存取數(shù)據(jù)段中的數(shù)據(jù)

第2章:附加段寄存器ES

(ExtraSegment)

■附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):

附加段寄存器ES存放附加段的段地址

各種主存尋址方式(有效地址EA)得到存儲器

中操作數(shù)的偏移地址

■處理器利用ES:EA存取附加段中的數(shù)據(jù)

■串操作指令將附加段作為其目的操作數(shù)的

存放區(qū)域

第2章:如何分配各個邏輯段

■程序的指令序列必須安排在代碼段

■程序使用的堆棧一定在堆棧段

■程序中的數(shù)據(jù)是安排在數(shù)據(jù)段,

也經(jīng)常安排在附加段,尤其是串操作

的目的區(qū)必須是附加段

■數(shù)據(jù)的存放比較靈活,實際上可以存

放在任何一種邏輯段中,您一

演小

第2章:段超越前綴指令

■沒有指明時,一般的數(shù)據(jù)訪問在DS段;

使用BP訪問主存,貝U在SS段

■默認的情況允許改變,需要使用段超

越前綴指令;8088指令系統(tǒng)中有4個:

;代碼段超越,使用代碼段的數(shù)據(jù)

;堆棧段超越,使用堆棧段的數(shù)據(jù)

;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)

;附加段超越,使用附加段的數(shù)據(jù)

^11

第2章:段超越的示例

■沒有段超越的指令實例:

MOVAXJ2000H]AX-DS:[2000H]

;從默認的DS數(shù)據(jù)段取出數(shù)據(jù)

■采用段超越前綴的指令實例:

MOVAX,ES:[2000H]AX-ES:[2000H]

;從指定的ES附加段取出數(shù)據(jù)

第2章:段寄存器的使用規(guī)定

訪問存儲器的方式默認可超越偏移地址

取指令CS無IP

堆棧操作SS無SP

一般數(shù)據(jù)訪問DSCSESSS有效地址EA

BP基址的尋址方式SSCSESDS有效地址EA

串操作的源操作數(shù)DSCSESSSSI

串操作的目的操作數(shù)ES無DI

第2章:寄存器的總結(jié)

■8088有8個8位通用寄存器、8個16位通用

寄存器內(nèi)部圖

■8088有6個狀態(tài)標志和3個控制標志

■8088將1MB存儲空間分段管理,有4個段寄

存器,對應4種邏輯段

■8088有4個段超越前綴指令,用于明確指定

數(shù)據(jù)所在的邏輯段

1

AHAL

BHBL

CHCL

CS

通用DHDL

寄存器DS

SS輸入/輸出

BP

ES控制電路

SI

IP

DI總

內(nèi)部暫存器線

指令隊列

標志寄存器

執(zhí)行部件(EU)總線接口部件(BIU)

高地址

通用寄存器

地址加法器16921H數(shù)據(jù)段

AHALAX16920H

BHBLBX

DS

CHCLCXT3

DHDLDXCS總線

SPDS控

BP邏

SS

SI

ES

DI

八QJP

指令3|

內(nèi)部

16

暫存器代碼段

10104H

將令21

執(zhí)行部分£女指令隊列W10103H

ALU10102HCS

10101H

10100H指令1

標志寄存器

低地址

執(zhí)行部分(EU)總線接口部分(BIU)

圖2-58088的存儲格式

00006H

78H00005H

LS

56H00004H

12H00003H

34H00002H

00001H

00000H低地士

內(nèi)存

FFFFFh

10000—[―K)00:)00(

代碼段64K

地0000-T3000:DOO

址數(shù)據(jù)段更

碼90000—J-9000:00()

64K

器堆棧段

B0000-r-BOOO:()00

附加段64K

1M

ES

D?

停止OOOOOh

高地址

通用寄存器

地址加16921H數(shù)據(jù)段

AHALAX16920H

BHBLBX

DS

CHCLCX

DHDLDX總線

SPDS控/

BP邏

SS線

SI__

DIIES

八個\P

丙說

16

暫存器

10104H

執(zhí)行部分£10103H

ALUo10102H

指令隊列

10101H

10100H

標志寄存器

低地址

執(zhí)行部分(EU)總線接口部分(BIU)

O

8088的指令執(zhí)行過程.返回

0

第2章:2.28088/8086的尋址方式

■從8088/8086的指令格式入手,論述:

立即數(shù)尋址方式

寄存器尋址方式

存儲器尋址方式

■進而熟悉8088/8086匯編語言指令格式,尤

其是其中操作數(shù)的表達方法

■為展開8088/8086指令系統(tǒng)做好準備

第2章:指令的組成

操作碼操作數(shù)

指令由操作碼和操作數(shù)兩部分組成

■悚作他說明計算機要執(zhí)行哪種操作,如傳送、運算、

移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部

■操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象

■有些指令不需要操作數(shù),通常的指令都有一個或兩

個操作數(shù),也有個別指令有3個甚至4個操作數(shù)

第2章:指令的助記符格式

操作碼操作數(shù)1,操作數(shù)2;注釋

■操作數(shù)2,常被稱為源操作數(shù)src,它表示參與指

令操作的一個對象

■操作數(shù)1,成被稱為目的操作數(shù)dest,它不僅可以

作為指令操作的一個對象,還可以用來存放指令

操作的結(jié)果

■分號后的內(nèi)容是對指令的解釋

第2章:指令的操作碼和操作數(shù)

■每種指令的操作碼:

用一個助記符表示(指令功能的英文縮寫)

對應著機器指令的一個或多個二進制編碼

■指令中的操作數(shù):

可以是一個具體的數(shù)值

可以是存放數(shù)據(jù)的寄存器

或指明數(shù)據(jù)在主存位置的存儲器地址

第2章:操作數(shù)的尋址方式

■指令系統(tǒng)設(shè)計了多種操作數(shù)的來源

■尋找操作數(shù)的過程就是操作數(shù)的尋址

■把尋找操作數(shù)的方式叫做(操作數(shù))尋址方式

■理解操作數(shù)的尋址方式是理解指令功能的前提

■操作數(shù)采取哪一種尋址方式

一方面,會影響處理器執(zhí)行指令的速度和效率

另一方面,對程序設(shè)計也很重要

Mov指令

第2章:2.2.1立即數(shù)尋址方式

■指令中的操作數(shù)直接存放在機器代碼中,緊跟在

操作碼之后(操作數(shù)作為指令的一部分存放在操

作碼之后的主存單元中)

■這種操作數(shù)被稱為立即數(shù)imm

可以是8位數(shù)值i8(OOH?FFH)

也可以是16位數(shù)值i16(0000H?FFFFH)

■立即數(shù)尋址方式常用來給寄存器和存儲單元賦值,

多以常量形式出現(xiàn)

MOVAX,0102H;AX-0102H[5^1

s________________________________________L______________________________________________________________Z____________________________________________________________/

第2章:2.2.2寄存器尋址方式

■操作數(shù)存放在CPU的內(nèi)部寄存器reg中:

8位寄存器

AH、AL、BH、BL、CH、CL、DH、DL

16位寄存器-6:

AX、BX、CX、DX、SI、DI、BP、SP

4個段寄存器seg:

CS、DS、SS、ES

■[MOVAX,BX;AX-BX

第2章:2.2.3存儲器尋址方式

■操作數(shù)在主存儲器中,用主存地址表示

■程序設(shè)計時,8088采用邏輯地址表示主存地址

段地址在默認的或用段超越前綴指定的段寄存器中

指令中只需給出操作數(shù)的偏移地址(有效地址EA)

■8086設(shè)計了多種存儲器尋址方式

1、直接尋址方式

2、寄存器間接尋址方式

3、寄存器相對尋址方式

4、基址變址尋址方式

5、相對基址變址尋址方式

第2章:1.直接尋址方式

■直接尋址方式的有效地址在指令中直接給出

■默認的段地址在DS段寄存器,可使用

改變

■用中括號包含有效地址,表達存儲單元的內(nèi)容

[MOVAX,[2000H];AX^-DS:[2000H]|

MOVAX,ES:[2000H];AX-ES:[2000H]

第2章:2,寄存器間接尋址方式

■有效地址存放在基址寄存器BX或變址寄存

器SI、DI中

■默認的段地址在DS段寄存器,可使用段超

越前綴改變

[MOVAXJBX];AX-DS:[BX]

r~、占一~

演示>

第2章:3,寄存器相對尋址方式

■有效地址是寄存器內(nèi)容與有符號8位或16位位移

量之和,寄存器可以是BX、BP或SI、DI

有效地址=BX/BP/SI/DI+8/16位位移量

■段地址對應BX/SI/DI寄存器默認是DS,對應BP寄

存器默認是SS;可用段超越前綴改變

[MOVAXJSI+06H];AX-DS:[SI+06H]]

r~、占—\

演不

一?

MOVAX,06H[SI];AX-DS:[SI+06H]]

第2章:4.基址變址尋址方式

■有效地址由基址寄存器(BX或BP)的內(nèi)容加上變

址寄存器(SI或DI)的內(nèi)容構(gòu)成:

有效地址=BX/BP+SI/DI

■段地址對應BX基址寄存器默認是DS,對應BP基

址寄存器默認是SS;可用段超越前綴改變

[MOVAXJBX+SI];AX-DS:[BX+SI]]

r~、占—\

演不

一?

MOVAXJBX][SI];AX-DS:[BX+SI]]

第2章:5.相對基址變址尋址方式

■有效地址是基址寄存器(BX/BP)、變址寄存器

(SI/DI)與一個8位或16位位移量之和:

有效地址=BX/BP+SI/DI+8/16位位移量

■段地址對應BX基址寄存器默認是DS,對應BP基

址寄存器默認是SS;可用段超越前綴改變

[MOVAX,[BX+DI+6];AX-DS:[BX+DI+6]]

1rwn

MOVAX,6[BX+DI][MOVAX,

第2章:存儲器尋址方式中的變量

>變量指示內(nèi)存中的數(shù)批」變量名具有地址屬性。

存儲器尋找方式中經(jīng)用米用變量形式

>變量的定義

WVARDW1234H

;定義16位變量WVAR,具有初值1234H

;假設(shè)其偏移地址為10H

>單獨引用變量名是直接尋址方式

MOVAX,WVAR;指令功能:AX=1234H

;等同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論