工學(xué)1632位微機(jī)原理匯編語言及接口技術(shù)課后習(xí)題答案_第1頁
工學(xué)1632位微機(jī)原理匯編語言及接口技術(shù)課后習(xí)題答案_第2頁
工學(xué)1632位微機(jī)原理匯編語言及接口技術(shù)課后習(xí)題答案_第3頁
工學(xué)1632位微機(jī)原理匯編語言及接口技術(shù)課后習(xí)題答案_第4頁
工學(xué)1632位微機(jī)原理匯編語言及接口技術(shù)課后習(xí)題答案_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

[工學(xué)]1632位微機(jī)原理匯編語言及接口技術(shù)課后習(xí)題答案

第一章

1.1解:

五代,詳細(xì)見書

1.2解:

微型計算機(jī):以大規(guī)模、超大規(guī)模集成電路為主要部件,以集成了計算機(jī)主要

部件一一控制器和運(yùn)算器的微處理器為核心,所構(gòu)造出的計算機(jī)系統(tǒng)。

PC機(jī):PC(PersonalComputer)機(jī)就是面向個人單獨(dú)使用的一類微機(jī)。

單片機(jī):用于控制的微處理器芯片,內(nèi)部除CPU外還集成了計算機(jī)的其他一些

主要部件,如:ROM、RAM、定時器、并行接口、串行接口,有的芯片還集成了

A/D、D/A轉(zhuǎn)換電路等。

數(shù)字信號處理器DSP:主要面向大流量數(shù)字信號的實時處理,在宿主系統(tǒng)中充當(dāng)

數(shù)據(jù)處理中心,在網(wǎng)絡(luò)通信、多媒體應(yīng)用等領(lǐng)域正得到越來越多的應(yīng)用

1.3解:

微機(jī)主要有存儲器、I/O設(shè)備和"0接口、CPU、系統(tǒng)總線、操作系統(tǒng)和應(yīng)用軟

件組成,各部分功能如下:

CPU:統(tǒng)一協(xié)調(diào)和控制系統(tǒng)中的各個部件

系統(tǒng)總線:傳送信息

存儲器:存放程序和數(shù)據(jù)

I/O設(shè)備:實現(xiàn)微機(jī)的輸入輸出功能

I/O接口:I/O設(shè)備與CPU的橋梁

操作系統(tǒng):管理系統(tǒng)所有的軟硬件資源

1.4解:

系統(tǒng)總線:傳遞信息的一組公用導(dǎo)線,CPU通過它們與存儲器和I/O設(shè)備進(jìn)行信

息交換。

好處:組態(tài)靈活、擴(kuò)展方便

三組信號線:數(shù)據(jù)總線、地址總線和控制總線。

其使用特點(diǎn)是:在某一時刻,只能由一個總線主控設(shè)備來控制系統(tǒng)總線,只能

有一個發(fā)送者向總線發(fā)送信號;但可以有多個設(shè)備從總線上同時獲得信號。

L5解:

(1)用于數(shù)值計算、數(shù)據(jù)處理及信息管理方向。采用通用微機(jī),要求有較快的

工作速度、較高的運(yùn)算精度、較大的內(nèi)存容量和較完備的輸入輸出設(shè)備,為用戶提

供方便友好的操作界面和簡便快捷的維護(hù)、擴(kuò)充手段。

(2)用于過程控制及嵌人應(yīng)用方向。

采用控制類微機(jī),要求能抵抗各種干擾、適應(yīng)現(xiàn)場的惡劣環(huán)境、確保長時間穩(wěn)

定地工作,要求其實時性要好、強(qiáng)調(diào)其體積要小、便攜式應(yīng)用強(qiáng)調(diào)其省電。

1.6解:

1

1.7解:

I/O通道:位于CPU和設(shè)備控制器之間,其目的是承擔(dān)一些原來由CPU處理的

I/O任

務(wù),從而把CPU從繁雜的I/O任務(wù)中解脫出來。由10根信號線組成(A9-A0)。

L8解:

BIOS:基本輸入輸出系統(tǒng)。

主要功能:用來驅(qū)動和管理諸如鍵盤、顯示器、打印機(jī)、磁盤、時鐘、串行通

信接

口等基本的輸入輸出設(shè)備

1.9解:

基本RAM區(qū):640KB

保留RAM區(qū):128KB

擴(kuò)展ROM區(qū):128KB

基本ROM區(qū):128KB

1.10解:

(1)、數(shù)一用來直接表征量的大小,包括:定點(diǎn)數(shù)、浮點(diǎn)數(shù)。

(2)、碼一用來指代某個事物或事物的某種狀態(tài)屬性,包括:二進(jìn)制、八進(jìn)制、

進(jìn)制、十六進(jìn)制。

區(qū)別:使用場合不同,詳見P16.

1.11解:

(1)

2

(174.66)(10101110.10101),102

(174.66)(.8),AEA1016

(2)

(100011101011.01011)(2283.34375),210

(100011101011.01011)(8.58),EB216

(3)

(F18A6.6)(11110001100010100110.0110),162

(F18A6.6)(989350.375),1610

1.12解:

原碼反碼補(bǔ)碼+3700100101/25H00100101/25H00100101/25H

-3710100101/A5H11011010/DAH11011011/DBI1

1.13解:

+37-37

16位32位16位32位

0025H00000025HFF5BHFFFFFF5BH

1.14解:

無符號數(shù):70D

補(bǔ)碼有符號數(shù):70D

BCD碼:46D

ASCII:F

1.15解:

1)、相加后若出現(xiàn)和大于9,則將和減去10后再向高位進(jìn)1

2)、若出現(xiàn)組間進(jìn)位,則將低位加6

1.16解:

詳見課本16頁。

1.17解:

C3402000

1.18解:

5050H十進(jìn)制值5080

二進(jìn)制十六進(jìn)制二進(jìn)制十六進(jìn)制

3

00110010B32H0101OOOOB5011

1.19解:

D:44H

d:64H

CR:ODH

LF:OAH

0:30H

SP:20H

NUL:OOI1

1.20解:

國標(biāo)碼:3650H

機(jī)內(nèi)碼:B6BOH

第二章

2(1

算術(shù)邏輯單元ALU、寄存器組和控制器;

總線接口單元BIU:管理8088與系統(tǒng)總線的接口負(fù)責(zé)cpu對接口和外設(shè)進(jìn)行訪

問執(zhí)行單元EU:負(fù)責(zé)指令譯碼、執(zhí)行和數(shù)據(jù)運(yùn)算;

8位cpu在指令譯碼前必須等待取指令操作的完成,8088中需要譯碼的指令已

經(jīng)取到了指令隊列,不需要等待取指令。而取指令是cpu最為頻繁的操作,因此

8088的結(jié)構(gòu)和操作方式節(jié)省了大量等待時間,比8位cpu節(jié)省了時間,提高了性

能。2(2

AL、BH、BL、CH、CL、DH、DL;8個8位寄存器:AH、

8個16位寄存器:累加器AX、基址寄存器BX、計數(shù)器CX、數(shù)據(jù)寄存器DX、源

地址寄存器SI、目的地址寄存器DI、基址指針BP、堆棧指針SP。

2(3

標(biāo)志用于反映指令執(zhí)行結(jié)果或者控制指令執(zhí)行形式。

狀態(tài)標(biāo)志用于記錄程序運(yùn)行結(jié)果的狀態(tài)信息;控制標(biāo)志用于控制指令執(zhí)行的形

式。2(4

例:有運(yùn)算:3AH+7CH=B6H

作為無符號數(shù)運(yùn)算,沒有進(jìn)位,CF=O;

作為有符號數(shù)運(yùn)算,結(jié)果超出范圍,OF=L2.5

8088中每個存儲單元有唯一的20位地址,稱為物理地址。處理器通過總線存

取存儲器數(shù)據(jù)時,采用這個物理地址。

在用戶編程過程中采用的“段地址:偏移地址”的形式稱為邏輯地址。將邏輯

地址中的段地址左移4位,加上偏移地址就得到物理地址。1MB最多能分成65536

個邏輯段。

4

2(6

代碼段:存放程序的指令序列;

堆棧段:確定堆棧所在的主存儲區(qū);

數(shù)據(jù)段:存放當(dāng)前運(yùn)行程序的數(shù)據(jù);

附加段:附加數(shù)據(jù)段,用于數(shù)據(jù)保存。另外串操作指令將其作為目的操作數(shù)的

存放區(qū)。2(7

8088的存儲空間分段管理,程序設(shè)計時采用邏輯地址。由于段地址在默認(rèn)的或

指定的段寄存器中,所以只需要偏移地址,稱為有效地址EA.

操作數(shù)在主存中有以下幾種尋址方式:直接尋址、寄存器間接尋址、寄存器相

對尋址、基址變址尋址、相對基址變址尋址。

2(8

(1)立即數(shù)尋址ax:120011

(2)寄存器尋址ax:0100H

(3)存儲器直接尋址ax:4C2AH

(4)寄存器間接尋址ax:3412H

(5)寄存器間接尋址ax:4C2AH

(6)基址變址尋址ax:7856H

(7)相對基址變址尋址ax:65B7H

2(9

(l)cx為字寄存器,dl為字節(jié)寄存器,類型不匹配。

(2)mov指令的目的操作數(shù)只能是寄存器或者主存單元,ip是指針。(3)不允

許立即數(shù)到段寄存器的傳送。

(4)不允許段寄存器之間的直接傳送。

(5)數(shù)據(jù)溢出。

(6)sp不能用于寄存器間接尋址。

(7)格式不對。應(yīng)為:movax,[bx+di]

(8)mov指令的操作數(shù)不能是立即數(shù)。

2(10

(l)bx得到table的偏移地址,bx=200H.

(2)將立即數(shù)8送到al。

(3)換碼,al=12H.

2(11

(l)al=89H

(2)al=12H,cf=l,zf=O,sf=O,of=l,pf=l

(3)al=OAFH,cf=O,zf=O,sf=l,of=0,pf=l(4)al=OAFH,cf=l,zf=O,sf=l,of=l,pf=l

(5)al=0,cf=O,zf=l,sf=O,of=0,pf=l(6)al=OFFH,cf=O,zf=O,sf=l,of=0,pf=l

5

(7)al=O,cf=O,zf=l,sf=O,of=0,pf=l2(12

(1)adddx,bx

(2)addal,[bx+si]

(3)addwordptr[bx+0B2H],ex(4)addwordptr[0520H],3412H(5)add

al,OAOH

2(13

(V,Z,X*Y,540)/X運(yùn)算公式:。商存儲在ax,余數(shù)存儲在dx。2(14

(l)ax=1470H

(2)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=O

(3)ax=1470H,cf=0,of=0,sf=O,zf=0,pf=O(4)ax=0,cf=O,of=0,sf=O,zf=l,pf=l

(5)ax=0FFFFH,cf=0,of=0,sf=O,zf=l,pf=l

(6)ax=0FFFFH,cf=0,of=0,sf=l,zf=0,pf=l2.15

相對尋址方式、直接尋址方式、間接尋址方式。

2(16

(1)1256H

(2)3280H

2(17

ax=lElEH(1)

⑵al的DO、D7位不全為0

(3)cx<64H

2(18

執(zhí)行65536次。

2(19

功能:將數(shù)組中每個字元素相加,結(jié)果存儲于total。

2(20

(1)leasi,string

Movdh,[si]

Movdl,[si+5]

(2)movaxwordptrbufferl

Subaxwordptrbuffer2

Movdxwordptrbufferl+2

Sbbdxwordptrbuffer2+2

6

(3)testdx,0F000H

jzeven

even:movax,0

(4)movex,4

again:sardx,1

rcrax,1

loopagain(5)movex,100

movsi,0

again:moval,OFFH

addal,array[si]

movarray[si],al

incsi

loopagain2.21

Iltoascproc

Movbl,al

Moval,ah

Movbh,10

Muibh

Andax,OOFFH

Addal,blHtoend:ret

Iltoascendp

2.22

計算機(jī)系統(tǒng)利用中斷為用戶提供硬件設(shè)備驅(qū)動程序。在IBM-PC系列微機(jī)中,

基本輸入輸

出系統(tǒng)ROM-BIOS和DOS都提供了豐富的中斷服務(wù)程序,稱為系統(tǒng)功能調(diào)用。

調(diào)用步驟(DAH中設(shè)置系統(tǒng)功能調(diào)用號

(2)在指定寄存器中設(shè)置入口參數(shù)

(3)使用中斷調(diào)用指令執(zhí)行功能調(diào)用

(4)根據(jù)出口參數(shù)分析調(diào)用情況2(23

Iltoascproc

Andal,OFH

Addal,90H

Daa

Adcal,40H

Daa

7

Movah,02H

Movdl,al

Int21H

Ret

Htoascendp

2.24

Numoutproc

Xorah,ah

Aam

Addax,3030H

Movdl,ah

Movah,02H

Int21H

Movdl,al

Movah,02H

Int31H

Ret

Numoutendp

2.25

Msgkeydb”inputnumber0-9",”$

Msgwrgdb"error","$"

Movah,09H

Movdx,offsetmsgkey

Int2111Again:movah,01H

Int21H

Cmpal,3011

Jbdisp

Cmpal,39H

Jadisp

Movdl,al

Movah,02H

Int21H

JmpdoneDisp:movdx,offsetmsgwrg

Movah,09H

Int21H

Jmpagain

8

Done:movah,02H

Movdl,al

Int21H

弟3早

3.1解:

匯編語言是一種以處理器指令系統(tǒng)為基礎(chǔ)的低級程序設(shè)計語言,它采用助記符

表達(dá)指令操作碼,采用標(biāo)識符號表示指令操作數(shù),可以直接、有效地控制計算機(jī)硬

件,因而容易創(chuàng)建代碼序列短小、運(yùn)行快速的可執(zhí)行程序

3.2解:

)完整的匯編語言源程序由段組成(1

⑵一個匯編語言源程序可以包含若干個代碼段、數(shù)據(jù)段、附加段或堆棧段,

段與段之間的順序可隨意排列

)需獨(dú)立運(yùn)行的程序必須包含一個代碼段,并指示程序執(zhí)行的起始點(diǎn),一個程

序(3

只有一個起始點(diǎn)

(4)所有的可執(zhí)行性語句必須位于某一個代碼段內(nèi),說明性語句可根據(jù)需要位

于任一段內(nèi)

)通常,程序還需要一個堆棧段(5

3.3解:

存儲模式特點(diǎn)

TINYCOM類型程序,只有一個小于64KB的邏輯段(MASM6.x支持)SMALL小

應(yīng)用程序,只有一個代碼段和一個數(shù)據(jù)段(含堆棧段),每段不大于64KBCOMPACT

代碼少、數(shù)據(jù)多的程序,只有一個代碼段,但有多個數(shù)據(jù)段MEDIUM代碼多、數(shù)據(jù)

少的程序,可有多個代碼段,只有一個數(shù)據(jù)段LARGE大應(yīng)用程序,可有多個代碼

段和多個數(shù)據(jù)段(靜態(tài)數(shù)據(jù)小于64KB)HUGE更大應(yīng)用程序,可有多個代碼段和多

個數(shù)據(jù)段(對靜態(tài)數(shù)據(jù)沒有限制)FLAT32位應(yīng)用程序,運(yùn)行在32位80x86CPU和

Windows9x或NT環(huán)境

3.4解:

9

開始位置:用標(biāo)號指明

返回DOS:利用DOS功能調(diào)用的4CH子功能來實現(xiàn)

匯編停止:執(zhí)行到一條END偽指令時,停止匯編

3.5解:

段定位、段組合和段類型。

3.6解:

stacksegmentstack

db1024(0)

stackends

datasegment

stringdb'Hello,Assembly?',OdH,OaH,

dataends

codesegment'code'

assumecs:code,ds:data,ss:stack

start:movdx,offsetstring

movah,9

int21h

codeends

endstart

3.7解:

(1).EXE程序

程序可以有多個代碼段和多個數(shù)據(jù)段,程序長度可以超過64KB

通常生成EXE結(jié)構(gòu)的可執(zhí)行程序

(2).COM程序

只有一個邏輯段,程序長度不超過64KB

需要滿足一定條件才能生成COM結(jié)構(gòu)的可執(zhí)行程序(MASM6.x需要采用TINY模

式)

3.8解:

符號定義偽指令有“等價EQU”和“等號,”:

符號名EQU數(shù)值表達(dá)式

符號名EQU〈字符串》

符號名,數(shù)值表達(dá)式

EQU用于數(shù)值等價時不能重復(fù)定義符號名,但允許有重復(fù)賦值。例如:

X=7;等效于:Xequ7

X=X+5;"XEQUX+5”是錯誤的

3.9解:

(1)al=67h

(2)ax=133h,dx=4h

(3)ax=0230h

(4)al=41h

10

(4)ax=7654h

3.10解:

(1)

41441145h46h-1?444-1,444-1,444

h2300

hhh

(2)

lOhOOhOfbhOffh??????

3.11解:.data

mylbdb'PersonalComputer,

my2bdb20

my3bdb14h

my4bdb00010100b

my5wdw20dup(?)

my6c=100

my7c=PersonalComputer,>

3.12解:

利用定位偽指令控制,如org,even,align

3.13解:

包括邏輯地址和類型兩種屬性。

3.14解:

;數(shù)據(jù)段

org100h

varwdw1234h,5678h

varbdb3,4

varddd12345678h

buffdd10dup(?)

messdb'Hello'

;代碼段

movax,offsetvarb+offsetmess

movax,typebuff+typemess+typevard

movax,sizeofvarw+sizeofbuff+sizeofmess

movax,lengthofvarw+lengthofvard

3.15解:

(1)1000超過一個字節(jié)所能表達(dá)的最大整數(shù)

(2)SI應(yīng)為偶數(shù)

⑶兩個內(nèi)存單元不能直接運(yùn)算

11

(4)應(yīng)改為[al+1]

⑸條件轉(zhuǎn)移指令后面應(yīng)接標(biāo)號,而不是變量

3.16解:

movah,1;只允許輸入小寫字母

int21h

subal,20h;轉(zhuǎn)換為大寫字母

movdl,al

movah,2

int21h;顯示

3.17解:

movbx,offsetLEDtable

moval,lednum

xlat

3.18解:

movax,bufX

cmpax,bufY

jaedone

movax,bufY

done:movbufZ,ax

3.19解:

.modelsmall

?stack

.data

bufXdw-7

signXdb?

.code

,startup

cmpbufX,0;testbufX,80h

jlnext;jnznext

movsignX,0

jmpdone

next:movsignX,-1done:.exit0

end

3.20解:

movdl,,2'

movax,bufX

cmpax,bufY

jenextl

12

decdl

nextl:cmpax,bufZ

jenext2

decdl

next2:movah,2

int21h

3.21解:

;代碼段

moval,number

movbx,0;BX?記錄為1的位數(shù)

restart:cmpal,0;AL,0結(jié)束

jzdone

again:shral,1;最低位右移進(jìn)入CF

jcnext;為1,轉(zhuǎn)移

,繼續(xù)incbx;不為1

jmpagain

next:pushax

pushbx

shlbx,1;位數(shù)乘以2(偏移地址要用2個字節(jié)單元)

jmpaddrs[bx];間接轉(zhuǎn)移:IP?[table,BX]

;以下是各個處理程序段funO:movdl,'O'

jmpdisp

funl:movdl,,1'

jmpdisp

fun2:movdl,,2'

jmpdisp

fun3:movdl,’3'

jmpdisp

fun4:movdl,’4'

jmpdisp

fun5:movdl,’5'

jmpdisp

fun6:movdl,’6'

jmpdisp

fun7:movdl,,T

jmpdisp

disp:movah,2;顯示一個字符

int21h

popbx

popax

jmprestart

13

done:?

3.22編制程序完成12序45H、0F3H、6AH、201KOFEH、90H、0C8H、57H和

34H等10

個字節(jié)數(shù)據(jù)之和,并將結(jié)果存入字節(jié)變量SUM中(不考慮溢出和進(jìn)

位)。;wjxt322.asm

.modelsmall

,stack

.data

b_datadb12h,45h,Of3h,6ah,20h,Ofeh,90h,0c8h,57h,34h;原始數(shù)據(jù)

numequ10;數(shù)據(jù)個數(shù)

sumdb?;預(yù)留結(jié)果單元

.code

,startup

xorsi,si;位移量清零

xoral,al;取第一個數(shù)

movex,num;累加次數(shù)

again:addal,b_data[si];累力口

incsi;指向下一個數(shù)

loopagain;如未完,繼續(xù)累加

movsum,al;完了,存結(jié)果

,exit0

end

3.23求主存0040h:0開始的一個64KB物理段中共有多少個空格?;

wjxt323.asm

.modelsmall

,code

start:movax,0040h;送段地址

movds,ax

movsi,0;偏移地址

movex,si;計數(shù)(循環(huán)次數(shù))

xorax,ax;空格計數(shù)器清零again:empbyteptr[si],20h;與空格的

ASCH碼比較

jnenext;不是空格,轉(zhuǎn)

incax;是空格,空格數(shù)加1next:incsi;修改地址指針

loopagain;cx,ex,1,如ex,0退出循環(huán)

.exit0

endstart

3.24編寫計算100個16位正整數(shù)之和的程序。如果和不超過16位字的范圍

(65535),

則保存其和到wordsum,如超過則顯示'overflow'。答:

;數(shù)據(jù)段

14

countequ100

parraydwcountdup(?);假設(shè)有100個數(shù)據(jù)wordsumdw0

msgdb'overflow','$'

;代碼段

movex,count

movax,0

movbx,offsetparrayagain:addax,[bx]

jncnext

movdx,offsetmsg

movah,9

int21h;顯示溢出信息

jmpdone;然后,跳出循環(huán)體next:addbx,2

loopagain

movwordsum,ax

done:?

3.25編程把一個16位無符號二進(jìn)制數(shù)轉(zhuǎn)換成為用8421BCD碼表示的5位十進(jìn)

制數(shù)。轉(zhuǎn)

換算法可以是:用二進(jìn)制數(shù)除以10000,商為“萬位”,再用余數(shù)除以1000,

得到“千位”;

依次用余數(shù)除以100、10和1,得到“百位”、“十位”和“個

位”。;wjxt325.asm

.modelsmall

,stack256

,data

arraydw?;源字?jǐn)?shù)據(jù)dbcddb5dup(?);五位bed結(jié)果,高對高低對低

,code

,startup

movdx,array;取源數(shù)據(jù)(余數(shù))

movbx,10000;除數(shù)

movex,10;除數(shù)系數(shù)

movsi,4;目的數(shù)據(jù)高位位移量again:movax,dx;dx.ax中存放被除數(shù)

movdx,0

divbx;除于bx,商ax,余數(shù)dx

movdbcd[si],al;商,10,存結(jié)果

pushdx;暫存余數(shù)

movax,bx;除數(shù)除于10

movdx,0

divex;dx.ax除于ex,商ax^余數(shù)0存在dx

movbx,ax;bx是除數(shù)

popdx

15

decsi;目的數(shù)據(jù)位移量減1

jnzagain

movdbcd,dl;存?zhèn)€位數(shù)(<10)

.exit0

end

3.26解:

⑴匯編語言中,子程序要用一對過程偽指令PROC和ENDP聲明,格式如下:

過程名PROC[NEARFAR]

,,,,;過程體

過程名ENDP

⑵保護(hù)用到的寄存器內(nèi)容,以便子程序返回時進(jìn)行相應(yīng)的恢復(fù)。

⑶改錯:

crazyproc

pishbx

pushex

xorax,ax

xordx,dx

again:adda,[bx]

adcdx,0

incbx

incbx

loopagain

popex

popbx

3.27解(不需調(diào)用HTOASC子程序):again:movah,1

int21h

ESC的ASCII碼是Ibhcmpal,Ibh;

jedone

movdl,al

movah,2

int21h;是大寫字母則轉(zhuǎn)換為小寫字母

jmpagain

done:,,

3.28解答:

asctobproc

pushex

anddh,Ofh;先轉(zhuǎn)換十位數(shù)

shldh,1;十位數(shù)乘以10(采用移位指令)

movch,dh

shldh,1

16

shldh,1

adddh,ch

anddl,Ofh;轉(zhuǎn)換個位數(shù)

adddh,dl;十位數(shù)加個位數(shù)

moval,dh;設(shè)置出口參數(shù)

popex

ret

asctobendp

3.29解:

DIPASCproc;入口參數(shù):AL,要顯示的一個16進(jìn)制數(shù)

pushex

pushdx

pushax

movcl,4;轉(zhuǎn)換高位

shral,cl

callHTOASC

movdl,al;顯示

movah,2

int21h

popax;轉(zhuǎn)換低位

callHTOASC

movdl,al;顯示

movah,2

int21h

movdl,'H';顯示一個字母“H”

movah,2

int21h

popdx

popex

ret

DIPASCendp

HTOASCproc;將AL低4位表達(dá)的一位16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼

andal,Ofh

cmpal,9

jbehtoascl

addal,37h;是OAH,OFH,加37H轉(zhuǎn)換為ASCII碼

ret;子程序返回htoascl:addal,30h;是0,9,加30H轉(zhuǎn)換為ASCH碼

ret;子程序返回HTOASCendp

3.30解:

lucaseproc

17

pushbx

movbx,offsetstring

cmpal,0

jecaseO

cmpal,1

jzeasel

cmpal,2

jzcase2

jmpdone

caseO:cmpbyteptr[bx],0

jedone

cmpbyteptr[bx],,A'

jbnextO

cmpbyteptr[bx],,T

janextO

addbyteptr[bx],20hnextO:incbx

jmpcaseO

easel:empbyteptr[bx],0

jedone

empbyteptr[bx],'a,

jbnextl

empbyteptr[bx],'z,

janextl

subbyteptr[bx],20hnextl:incbx

jmpeasel

case2:empbyteptr[bx],0

jedone

empbyteptr[bx],'A'

jbnext2

empbyteptr[bx],'V

janext20

addbyteptr[bx],20h

jmpnext2

next20:empbyteptr[bx],'a'

jbnext2

empbyteptr[bx],'z,

janext2

subbyteptr[bx],20hnext2:incbx

jmpcase2

done:popbx

ret

18

lucaseendp

3.31解:

(1)用寄存器傳遞參數(shù):

最簡單和常用的參數(shù)傳遞方法是通過寄存器,只要把參數(shù)存于約定的寄存器中

就可以了

由于通用寄存器個數(shù)有限,這種方法對少量數(shù)據(jù)可以直接傳遞數(shù)值,而對大量

數(shù)據(jù)只能傳遞地址

采用寄存器傳遞參數(shù),注意帶有出口參數(shù)的寄存器不能保護(hù)和恢復(fù),帶有入口

參數(shù)的寄存器可以保護(hù)、也可以不保護(hù),但最好能夠保持一致

(2)用共享變量傳遞參數(shù)

子程序和主程序使用同一個變量名存取數(shù)據(jù)就是利用共享變量(全局變量)進(jìn)行

參數(shù)傳遞

如果變量定義和使用不在同一個源程序中,需要利用PUBLIC、EXTREN聲明

如果主程序還要利用原來的變量值,則需要保護(hù)和恢復(fù)

利用共享變量傳遞參數(shù),子程序的通用性較差,但特別適合在多個程序段間、

尤其在不同的程序模塊間傳遞數(shù)據(jù)

(3)用堆棧傳遞參數(shù)

參數(shù)傳遞還可以通過堆棧這個臨時存儲區(qū)。主程序?qū)⑷肟趨?shù)壓入堆棧,子程

序從堆棧中取出參數(shù);子程序?qū)⒊隹趨?shù)壓入堆棧,主程序彈出堆棧取得它們

采用堆棧傳遞參數(shù)是程式化的,它是編譯程序處理參數(shù)傳遞、以及匯編語言與

高級語言混合編程時的常規(guī)方法

3.32解:

方法:主程序?qū)⑷肟趨?shù)壓入堆棧,子程序從堆棧中取出參數(shù);子程序?qū)⒊隹趨?/p>

數(shù)壓入堆棧,主程序彈出堆棧取得它們

注意:壓棧與彈棧必須要一一對應(yīng)。

3.33解:

方法1:

neg32proc;入口參數(shù):DX,AX,32位有符號數(shù)

negax;實現(xiàn)0,DX.AX功能

negdx

sbbdx,0;這條指令也可以用decdx代替

ret

neg32endp;出口參數(shù):DX.AX,32位有符號數(shù)的補(bǔ)碼方法2:

neg32proc;入口參數(shù):DX.AX,32位有符號數(shù)

notax;實現(xiàn)DX.AX求反加1

notdx

addax,1

adcdx,0

ret

neg32endp;出口參數(shù):DX.AX,32位有符號數(shù)的補(bǔ)碼

19

3.34解:

;數(shù)據(jù)段

arraydb12h,25h,OfOh,0a3h,3,68h,71h,Ocah,Offh,90h;數(shù)組

countequ$-array;數(shù)組元素個數(shù)resultdb?;校驗和

;代碼段

movbx,offsetarray;BX?數(shù)組的偏移地址

movex,count;CX?數(shù)組的元素個數(shù)

callchecksum;調(diào)用求和過程

movresult,al;處理出口參數(shù)

movax,4c00h

int21h

;計算字節(jié)校驗和的通用過程

;入口參數(shù):DS:BX,數(shù)組的段地址:偏移地址,CX,元素個數(shù)

出口參數(shù):AL,校驗和;

;說明:除AX/BX/CX外,不影響其他寄存器checksumproc

xoral,al;累加器清0sum:addal,[bx];求和

incbx;指向下一個字節(jié)

loopsum

ret

checksumendp

end

3.35解:

?

.modelsmall

.stack

.data

wdatadw34abh

.code

.startup

movax,wdata

calldispa

.exit0

dispaproc

pushex

pushdx

movcl,4

movdl,ah

shrdl,cl

20

calldldisp

movdl,ah

anddl,Ofh

calldldisp

movdl,al

shrdl,cl

calldldisp

movdl,al

anddl,Ofh

calldldisp

popdx

popex

ret

dispaendp

dldispproc

pushax

ordl,30h

empdl,39h

jbedldispl

adddl,7

dldispl:movah,2

int21h

popax

ret

dldispendp

end

?

.modelsmall

.stack

.data

wdatadw34abhwordtempdw?

.code

.startup

movax,wdata

movwordtemp,ax

calldispa

.exit0

dispaproc

pushex

pushdx

movcl,4

21

movdl,byteptrwordtemp+1

shrdl,cl

calldldisp

movdl,byteptrwordtemp+1

anddl,Ofh

calldldisp

movdl,byteptrwordtemp

shrdl,cl

calldldisp

movdl,byteptrwordtemp

anddl,Ofh

calldldisp

popdx

popex

ret

dispaendp

dldispproc

pushax

ordl,30h

cmpdl,39h

jbedldispl

adddl,7

dldispl:movah,2

int21h

popax

ret

dldispendp

end

9

.modelsmall

.stack

?data

wdatadw34abh

?code

.startup

pushwdata

calldispa

popax;addsp,2

.exit0

dispaproc

pushbp

movbp,sp

22

pushax

pushex

pushdx

movax,[bp+4]

movcl,4

movdl,ah

shrdl,cl

calldldisp

movdl,ah

anddl,Ofh

calldldisp

movdl,al

shrdl,cl

calldldisp

movdl,al

anddl,Ofh

calldldisp

popdx

popex

popax

popbp

ret

dispaendp

dldispproc

pushax

ordl,30h

empdl,39h

jbedldispl

adddl,7

dldispl:movah,2

int21h

popax

ret

dldispendp

end

3.36解:

如果利用共享變量傳遞函數(shù),且變量定義和使用不在同一個源程序中,需要利

PUBLIC,EXTERN聲明。

3.37解:

(1)宏定義由一對宏匯編偽指令MACRO和ENDM來完成,格式如下:

宏名MACRO[形參表]

,,,,;宏定義體

23

ENDM

宏定義之后就可以使用它,即宏調(diào)用:

宏名[實參表]

(2)宏調(diào)用的格式同一般指令一樣:在使用宏指令的位置寫下宏名,后跟實體參

數(shù);如果有多個參數(shù),應(yīng)按形參順序填入實參,也用逗號分隔

(3)宏展開:在匯編時,宏指令被匯編程序用對應(yīng)的代碼序列替代,這就是宏展

宏展開的具體過程是:當(dāng)匯編程序掃描源程序遇到已有定義的宏調(diào)用時,即用

相應(yīng)的宏定義體完全替代源程序的宏指令,同時用位置匹配的實參對形參進(jìn)行取代

3.38解:

宏調(diào)用的參數(shù)通過形參、實參結(jié)合實現(xiàn)傳遞,簡捷直觀、靈活多變。宏匯編的

一大特色是它的參數(shù)。宏定義時既可以無參數(shù),也可以有一個或多個參數(shù);宏調(diào)用

時實參的形式也非常靈活,可以是常數(shù)、變量、存儲單元、指令(操作碼)或它們的

一部分,也可以是表達(dá)式;只要宏展開后符合匯編語言的語法規(guī)則即可。

3.39解:

宏:僅是源程序級的簡化:宏調(diào)用在匯編時進(jìn)行程序語句的展開,不需要返回;

不減小目標(biāo)程序,執(zhí)行速度沒有改變

通過形參、實參結(jié)合實現(xiàn)參數(shù)傳遞,簡捷直觀、靈活多變

子程序:還是目標(biāo)程序級的簡化:子程序調(diào)用在執(zhí)行時由CALL指令轉(zhuǎn)向、RET指

令返

回;形成的目標(biāo)代碼較短,執(zhí)行速度減慢

需要利用寄存器、存儲單元或堆棧等傳遞參數(shù)

選擇:宏與子程序具有各自的特點(diǎn),程序員應(yīng)該根據(jù)具體問題選擇使用那種方

法。通常,當(dāng)程序段較短或要求較快執(zhí)行時,應(yīng)選用宏;當(dāng)程序段較長或為減小目

標(biāo)代碼時,要選用子程序

3.40編寫一個宏指令movedoprnd,soprnd,它實現(xiàn)任意尋址方式的字量源操

作數(shù)soprnd送到目的操作數(shù)doprnd,包括存儲單元到存儲單元的傳送功能。答:

movemacrodoprnd,soprnd

movax,soprnd

movdoprnd,ax

endm

3.41定義一個宏logical,用它代表4條邏輯運(yùn)算指令:and/or/xor/test。注

意需要利用3個形式參數(shù),并給出一個宏調(diào)用以及對應(yīng)宏展開的例子。

答:

logicalmacroIcode,dopd,sopd

Icodedopd,sopd

endm

例如,如果使用“andax,[bx]”指令,可以利用該宏定義,寫出宏指令如下:

logicaland,ax,[bx]

3.42解:

24

utolmacro

localnext

cmpal,'A';小于"A"不轉(zhuǎn)換

jbnext

cmpal/V;大于“A”不轉(zhuǎn)換

janext

addal,20h;是大寫字母則轉(zhuǎn)換為小寫字母next:

endm

3.43定義一個宏movestrstrn,dstr,sstr,它將strn個字符從一個字符區(qū)

sstr傳送到另一個字符區(qū)dstr

解:(假設(shè)它們都在數(shù)據(jù)段)

movestrmacrostrn,dstr,sstr

movex,ds

moves,ex

movex,strn

movdi,offsetdstr

movsi,offsetsstr

cld

repmovsb;;重復(fù)傳送ES:[DI]?DS:送I]

endm

第四章

4.1

20;;65536;;擴(kuò)展板A,AA,A19009

4.4

總線操作周期中,8088在第三個時鐘周期的前沿測試READY引腳,若無效,表

明被訪問的設(shè)備與CPU操作不同步,CPU插入等待周期。

4.5

最小組態(tài)模式用于小規(guī)模系統(tǒng),MN/MX*接高電平,分時復(fù)用引腳是:,AD,AD70

,當(dāng)MN/MX*接低電平,8088構(gòu)成最大組態(tài)模式,應(yīng)用大規(guī)模應(yīng)用程序。

A/S,A/S196163

4.6

引腳三態(tài)能力主要針對引腳輸出信號狀態(tài):高電平、低電平和高阻。輸出高阻

意味著芯片放棄對引腳的控制。這樣它所連接的設(shè)備就可以接管該引腳及連接導(dǎo)線

的控制權(quán)。4.7

RESET:復(fù)位請求,高電平有效時,CPU回到初始狀態(tài)。

HOLD:總線請求,高電平有效時,其他總線主控設(shè)備向CPU申請占用總線。

25

NMI:不可屏蔽中斷請求。外界向CPU申請不可屏蔽中斷。

INTR:可屏蔽中斷請求。高電平有效時,中斷請求設(shè)備向CPU申請可屏蔽中

斷。4.10

(1)門周期,CPU進(jìn)行讀操作。

(2)T2-T4期間,CPU對數(shù)據(jù)總線輸出高阻態(tài),選通存儲器或I/O接口,向CPU

傳送數(shù)據(jù)。(3)T4的下降沿,CPU對數(shù)據(jù)總線采樣。

4.15

三態(tài)透明鎖存器指芯片具有三態(tài)輸出能力。當(dāng)G有效,允許數(shù)據(jù)輸出,否則不

允許。當(dāng)?shù)刂份敵龆薉E*無效,說明不允許CPU向總線輸出地址。

4.16

數(shù)據(jù)收發(fā)器指向兩個方向驅(qū)動數(shù)據(jù)。74LS245的G*標(biāo)示輸出控制端,DIR標(biāo)示

方向控制端。4.17

(1)8086是真正的16位微處理器。8088的數(shù)據(jù)總線只有8位;

(2)8086指令隊列長度為4字節(jié),8088為6字節(jié);

(3)最小組態(tài)下,8088選擇訪問對象的信號為IO/M*,8086為M/I0*(4)8086

數(shù)據(jù)存儲按照16位數(shù)據(jù)寬度組織,由奇偶兩個對稱的存儲器組織,提高訪問效

率。

第五章

5.1解:

主存的作用:保存正在使用的、處于活動狀態(tài)的程序和數(shù)據(jù)。

輔存的作用:長期保存程序文件和數(shù)據(jù)文件,在需要時將這些文件調(diào)入RAM內(nèi)

存并激活使用。

cache的作用:提高對存儲器的訪問速度。

虛擬存儲:由容量較小的主存和容量較大的輔存構(gòu)成,其目標(biāo)是擴(kuò)大程序員眼

中的主存容量。

區(qū)別:通過存儲器訪問指令用戶可對主存進(jìn)行隨機(jī)訪問;用戶利用操作系統(tǒng)提供

的用戶命令和功能調(diào)用對輔存進(jìn)行訪問。

5.2在半導(dǎo)體存儲器中,RAM指的是隨機(jī)存取存儲器,他可讀可寫,但斷電

后信息一般會丟失;而ROM指的是只讀存儲器,正常工作時只能從中讀取信

息,但斷電后信息不會丟失。以EPROM芯片2764為例,其存儲容量為8KX8

位,共有8條數(shù)據(jù)線和13條地址線。用它組成64KB的ROM存儲區(qū)共需8片

2764芯片。

5.3解:

雙譯碼方式使得地址譯碼器的輸出線的數(shù)目大為減少,使得芯片設(shè)計得時候復(fù)

雜度就低了。

地址線A,A90

4根數(shù)據(jù)線I/O,I/O41

26

片選cs*

讀寫WE*

5.4解:

假想的RAM有12根地址線、4根數(shù)據(jù)線

片選端CS*或CE*:有效時,可以對該芯片進(jìn)行讀寫操作,通過對系統(tǒng)高位地址

線的譯碼來選中各個存儲芯片

輸出0E*:控制讀操作。有效時,芯片內(nèi)數(shù)據(jù)輸出,該控制端對應(yīng)系統(tǒng)的讀控制

線MEMR*(MRDC*)

寫WE*:控制寫操作。有效時,數(shù)據(jù)進(jìn)入芯片中,該控制端對應(yīng)系統(tǒng)的寫控制線

MEMW*(MWTC*)

5.5解:

位片結(jié)構(gòu):每個存儲單元具有一個唯一的地址,可存儲1位。(4116)

字片結(jié)構(gòu):每個存儲單元具有一個唯一的地址,可存儲多位。(2114)

5.6解:

組成單元速度集成度應(yīng)用SRAM觸發(fā)器快低小容量系統(tǒng)DRAM極間電容

慢高大容量系統(tǒng)NVRAM帶微型電池慢低小容量非易失掩膜ROM:信息制作在

芯片中,不可更改

PROM:允許一次編程,此后不可更改

EPROM:用紫外光擦除,擦除后可編程;并允許用戶多次擦除和編程

EEPROM(E2PROM):采用加電方法在線進(jìn)行擦除和編程,也可多次擦寫Flash

Memory(閃存):能夠快速擦寫的EEPROM,但只能按塊(Block)擦除

5.7解:

位擴(kuò)充一一存儲器芯片數(shù)據(jù)位數(shù)小于主機(jī)數(shù)據(jù)線數(shù)時,利用多個存儲器芯片在

數(shù)據(jù)“位”方向的擴(kuò)充;

地址擴(kuò)充(字?jǐn)U充)一一當(dāng)一個存儲器芯片不能滿足系統(tǒng)存儲容量時,利用多個

存儲器芯片在“地址”方向的擴(kuò)充

組成32KB存儲空間,用SRAM2114(1KX4)需要64個芯片;

組成32KB存儲空間,用DRAM4116(16KX1)需要16個芯片;

它們都需要進(jìn)行位擴(kuò)充和地址擴(kuò)充

5.8解:

片選信號說明該存儲器芯片是否被選中正常工作,設(shè)置它可以比較方便地實現(xiàn)

多個

存儲器芯片組成大容量的存儲空間

存儲器片選信號通常與CPU地址總線的高位地址線相關(guān)聯(lián),可以采用“全譯

碼”、

“部分譯碼”、“線選譯碼”方式

采用全譯碼方式可以避免地址重復(fù)

采用部分或線選譯碼可以節(jié)省譯碼硬件

5.9解:

42,16

5.10解:

E片二,可用地址重復(fù)地址

(右)aow-JFyFfl<200013FFFH

Vi*8200083FFH1

6264C2000C3FFF1I

5.11解:

5.12解:

5.13解:

5.14解:

動態(tài)隨機(jī)存取存儲器(DRAM)的存儲單元電路動態(tài)存儲單元是由MOS管的柵

極電容C和門控管組成的。數(shù)據(jù)以電荷的形式存儲在柵極電容上,電容上的電壓

高表示存儲數(shù)據(jù)1;電容沒有儲存電荷,電壓為0,表明存儲數(shù)據(jù)0。因存在漏

電,使電容存儲的信息不能長久保持,為防止信息丟失,就必須定時地給電容補(bǔ)

充電荷,這種操作稱為“刷新”由于要不斷地刷新,所以稱為動態(tài)存儲。

方法:采用“僅行地址有效”方法刷新;

刷新周期:15NS

刷新次數(shù):128

29

5.15解:

4256KBA19-A164

5.16解:

訪問的局部性原理:在一個較短的時間間隔內(nèi),由程序產(chǎn)生的地址往往集中在

存儲器邏輯地址空間的很小范圍內(nèi)。指令地址的分布本來就是連續(xù)的,再加上循環(huán)

程序段和子程序段要重復(fù)執(zhí)行多次。因此,對這些地址的訪問就自然地具有時間上

集中分布的傾向。數(shù)據(jù)分布的這種集中傾向不如指令明顯,但對數(shù)組的存儲和訪問

以及工作單元的選擇都可以使存儲器地址相對集中。這種對局部范圍的存儲器地址

頻繁訪問,而對此范圍以外的地址則訪問甚少的現(xiàn)象,就稱為程序訪問的局部性。

cache的作用:提高對存儲器的訪問速度。

虛擬存儲:其目標(biāo)是擴(kuò)大程序員眼中的主存容量。

弟八早

6.1

獨(dú)立,I/O,2,直接尋址和DX間接尋址。

6.2

(1)數(shù)據(jù)寄存器:輸入時保存從外設(shè)發(fā)往CPU的數(shù)據(jù),輸出時保護(hù)從CPU發(fā)往外

設(shè)的數(shù)據(jù)。

(2)狀態(tài)寄存器:保存狀態(tài)數(shù)據(jù)。CPU可以獲取當(dāng)前接口電路或外設(shè)的狀態(tài)。(3)

控制寄存器:保存控制數(shù)據(jù)。CPU可以向其寫入命令,選擇接口電路工作方式,控

制外設(shè)。

6.4

Taskmovdx,8000H

Inal,dx

Notal

Cmpal,1

Jzstatusl

Cmpal,2

Jzstatus2

Moval,0

Outdx,al

Jmpdone

Statusl:rolal,1

Outdx,al

Calldelay

Jmpstatusl

Status2:roral,1

Outdx,al

30

Calldelay

Jmpstatus2Done:.........

6.5

Code

Start:movax,2000H

Movds,ax

Movbx,2000H

Movdx,0FFE2H

Movex,100Next:inal,dx

Testal,1

Jznext

Subdx,2

Inal,dx

Mov[bx],al

Incbx

Adddx,2

Loopnext6.6

Code

Start:movdx,80H

Leabx,ADDRNext:inal,dx

Testal,80H

Jnznext

Cmp[bx],'$'

Jzdone

Moval,[bx]

Outdx,al

Incbx

JmpnextDone:....

6.8

中斷源指的是能夠引起中斷的時間或原因。安排中斷的優(yōu)先級原因:

⑴多個中斷源同時向CPU申請中斷,需要決定先響應(yīng)哪個。

⑵一個中斷沒有結(jié)束,是否允許新的中斷打斷該中斷。

6.9

31

Interrupt:movdx,8000H

Inal,dx

Cmpal,1

Jnznextl

Callprod

Jmpdone

Nextl:cmpal,2

Jnznext2

Callproc2

Jmpdone

Next2:cmpal,3

Jnzdone

Callproc3

Done:....

6.10

直接存儲器存取,,,,請求,,,,,,,,,,,高阻,,,,。

第七章

7.1解:

總線:指可以由多個信息處理單元所共享的信息通道。

使用特點(diǎn):

?在某一時刻,只能由一個主設(shè)備控制總線,其他主設(shè)備此時可作為從設(shè)備出

現(xiàn)

?在某一時刻,只能有一個設(shè)備向總線上發(fā)送數(shù)據(jù),但可以有多個設(shè)備從總線

上接收數(shù)據(jù)

7.2在各種微機(jī)總線中,根據(jù)總線連接對象的不同可將它們分為以下幾類,它

們是:片內(nèi)總線、芯片總線、板級總線、設(shè)備總線和互連總線二例如,ISA總

線屬于板級總線,

2USB總線屬于設(shè)備總線,IC總線屬于芯片總線。總線中除電源和地線外的信

號線,也可按傳輸信息的不同分為以下3類,即:數(shù)據(jù)總線、地址總線、控制

總線。

7.3解:

分時復(fù)用就是一個引腳在不同的時刻具有兩個甚至多個作用

總線復(fù)用的目的是為了減少對外引腳個數(shù)

在訪問存儲器或外設(shè)的總線操作周期中,這些引腳在第一個時鐘周期輸出存儲

器或I/O端口的低8位地址A7~A0,其他時間用于傳送8位數(shù)據(jù)D7~DO

7.4解:

并行總線:多維數(shù)據(jù)通過多根信號線同時進(jìn)行傳遞。

并行同步傳輸、并行異步傳輸見P174。

32

7.5解:

見P174.

7.6解:

總線的性能指標(biāo)包括:總線寬度、標(biāo)準(zhǔn)傳輸、時鐘同步/異步、總線復(fù)用、信號

線數(shù)、總線控制方式

總線寬度:它是指數(shù)據(jù)總線的根數(shù),用bit(位)表示,如8位、16位、32位、

64位。

7.9解:

DO,D7:8位雙向數(shù)據(jù)總線

AO,A19:20位輸出地址總線

ALE:地址鎖存允許,每個CPU總線周期有效

I0R*:I/0讀,輸出

I0W*:I/0寫,輸出

10CHRDY:I/O通道準(zhǔn)備好,輸入

第八章

).1

(一)內(nèi)部中斷。由,,,,內(nèi)部執(zhí)行程序出現(xiàn)異常引起。(,)除法錯中斷(,)指令

中斷(,)溢出中斷(,)單步中斷(二)外部中斷。由,,,,外部提出中斷請求引起。

(,)不可屏蔽中斷。外部通過,…向,,,提出中斷請求,,,,執(zhí)行完當(dāng)前指令就

予以響應(yīng)。

(,)可屏蔽中斷。外部通過,,,,信號向,,,發(fā)出請求。當(dāng),,,,時,,,,在當(dāng)前

指令結(jié)束予以響應(yīng)。

可屏蔽中斷向量號由外部提供,處理器產(chǎn)生中斷響應(yīng)周期的同時讀取一個字節(jié)

的中斷向量號數(shù)據(jù),其他類型的中斷向量號包含在指令中或者已經(jīng)預(yù)置。,(

中斷向量表是一種表數(shù)據(jù)結(jié)構(gòu)。是中斷向量號與對應(yīng)中斷服務(wù)程序之間的連接

表。,(,

,中斷請求寄存器。存儲外界中斷請求信號。

,中斷服務(wù)寄存器。存儲正在被服務(wù)的中斷狀態(tài)。

,中斷屏蔽寄存器。保存對中斷信號的屏蔽狀態(tài)。

,,,有中斷請求,,,,正在服務(wù),,,,,,,,

33

第九章

9.1解:

軟件延時、不可編程的硬件定時、可編程的硬件定時

9.2解:

CLK時鐘輸入信號一一在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降

沿),計

數(shù)器的計數(shù)值減1

GATE門控輸入信號一一控制計數(shù)器工作,可分成電平控制和上升沿控制兩種類

34

OUT計數(shù)器輸出信號一一當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為0),OUT引腳上將產(chǎn)

一個輸出信號

9.3解:

8253每個通道有6種工作方式可供選擇。若設(shè)定某通道為方式0后,其輸出

引腳為

低電平;當(dāng)寫入計數(shù)初值(并進(jìn)入減1

溫馨提示

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

評論

0/150

提交評論