微型計(jì)算機(jī)原理與接口技術(shù)(第三版)課后練習(xí)答案_第1頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)(第三版)課后練習(xí)答案_第2頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)(第三版)課后練習(xí)答案_第3頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)(第三版)課后練習(xí)答案_第4頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)(第三版)課后練習(xí)答案_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1思考與練習(xí)題

一、選擇題

1.計(jì)算機(jī)硬件中最核心的部件是()。C

A.運(yùn)算器B.主存儲(chǔ)器C.CPUD.輸入/輸出設(shè)備

2.微機(jī)的性能主要取決于()。A

(B一一計(jì)算機(jī)數(shù)據(jù)處理能力的一個(gè)重要指標(biāo))

A.CPUB.主存儲(chǔ)器C.硬盤D.顯示器

3.計(jì)算機(jī)中帶符號(hào)數(shù)的表示通常采用()oC

A.原碼B.反碼C.補(bǔ)碼D.BCD碼

4.采用補(bǔ)碼表示的8位二進(jìn)制數(shù)真值范圍是()。C

A.T27?+127B.-127~+128C.T28?+127D.T28?+128

5.大寫字母“B”的ASCH碼是()oB

A.41HB.42HC.61HD.62H

6.某數(shù)在計(jì)算機(jī)中用壓縮BCD碼表示為10010011,其真值為()?C

A.1001001IBB.93HC.93D.147

二、填空題

1.微處理器是指CPU:微型計(jì)算機(jī)以CPU為核心,配置內(nèi)存和1/0接口構(gòu)成;其特點(diǎn)

是(1)功能強(qiáng)(2)可靠性高(3)價(jià)格低(4)適應(yīng)性強(qiáng)(5)體積?。?)維護(hù)方便。P8P5

2.主存容量是指RAM和ROM總和:它是衡量微型計(jì)算機(jī)計(jì)算機(jī)數(shù)據(jù)處理能力的一個(gè)重要

指標(biāo);構(gòu)成主存的器件通常采用DRAM和PROM半導(dǎo)體器件。P5P9

3.系統(tǒng)總線是CPU與其他部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道:根據(jù)傳送內(nèi)容

的不同可分成數(shù)據(jù)、地址、控制3種總線。P9

4.計(jì)算機(jī)中的數(shù)據(jù)可分為數(shù)值型和非數(shù)值型兩類,前者的作用是表示數(shù)值大小,進(jìn)行算

術(shù)運(yùn)算等處理操作;后者的作用是表示字符編碼,在計(jì)算機(jī)中描述某種特定的信息。P12

5.機(jī)器數(shù)是指一數(shù)及其符號(hào)在機(jī)器中加以表示的數(shù)值化_;機(jī)器數(shù)的表示應(yīng)考慮機(jī)器數(shù)的范

圍、機(jī)器數(shù)的符號(hào)、機(jī)器數(shù)中小數(shù)點(diǎn)位置3個(gè)因素。P15P16

6.ASCH碼可以表示128種字符,其中起控制作用的稱為功能碼:供書寫程序和描述命

令使用的稱為信息碼。P18P19

三、判斷題

1.計(jì)算機(jī)中帶符號(hào)數(shù)采用補(bǔ)碼表示的目的是為了簡(jiǎn)化機(jī)器數(shù)的運(yùn)算。()》

2.計(jì)算機(jī)中數(shù)據(jù)的表示范圍不受計(jì)算機(jī)字長(zhǎng)的限制。()X

3.計(jì)算機(jī)地址總線的寬度決定了內(nèi)存容量的大小。()?

4.計(jì)算機(jī)鍵盤輸入的各類符號(hào)在計(jì)算機(jī)內(nèi)部均表示為ASCH碼。()X

(鍵盤與計(jì)算機(jī)通信采用ASCII碼)

四、簡(jiǎn)答題

L微處理器和微型計(jì)算機(jī)的發(fā)展經(jīng)歷了哪些階段?各典型芯片具備哪些特點(diǎn)?P2~3

2.微型計(jì)算機(jī)硬件結(jié)構(gòu)由哪些部分組成?各部分的主要功能和特點(diǎn)是什么?P8~ll

3.微型計(jì)算機(jī)系統(tǒng)軟件的主要特點(diǎn)是什么?包括哪些內(nèi)容?P1T12

4.計(jì)算機(jī)中常用的數(shù)制有哪些?如何進(jìn)行數(shù)制之間的轉(zhuǎn)換?P13~15

5.ASCII碼和BCD碼有哪些特點(diǎn)?其應(yīng)用場(chǎng)合是什么?P19~20

五、數(shù)制轉(zhuǎn)換題

1.將下列十進(jìn)制數(shù)分別轉(zhuǎn)換為二進(jìn)制數(shù)、十六進(jìn)制數(shù)和壓縮BCD碼。

(1)25.8211001.1101B;19.DI1;00100101.10000010BCD

(2)4120010B;19C.2H;040000010010.00010101BCD

(3)513.461000000001.0111;201.7H;010100010011.01000110BCD

(4)690010;45.2H;01011001.000100110110BCD

2.將下列二進(jìn)制數(shù)分別轉(zhuǎn)換為十進(jìn)制數(shù)和十六進(jìn)制數(shù)。

(1)111001.10157.625D;39.AH

(2)110010.110150.8125D;32.DH

(3)1011.1101111.84375D;B.D8H

(4)101101.011145.4375D;21).7H

3.將下列十六進(jìn)制數(shù)分別轉(zhuǎn)換為二進(jìn)制數(shù)、十進(jìn)制數(shù)和BCD碼。

(D7B.211111011.00100001B;123.12890625D;123.12890625BCD

(2)127.IC100100111.000111B;295.06640625D;295.06640625BCD

(3)6A1.4110110100001.0100000IB;1697.25390625D;1697.25390625BCD

(4)2DF3.410110111110011.01B;11763.25D;11763.25BCD

4.寫出下列十進(jìn)制數(shù)的原碼、反碼、補(bǔ)碼表示(采用8位二進(jìn)制數(shù))。

(1)96[96]原=01100000;[96]反=01100000;[96]補(bǔ)=01100000

(2)31[31]原=00011111;[31]反=00011111;[31]補(bǔ)=00011111

(3)-42[-42]原=10101010;[-42]反=11010101;[-42]#=11010110

(4)-115[T15]原=11110011;[-115]反=10001100;[-115④卜=10001101

5.己知下列補(bǔ)碼,求其原值的十進(jìn)制表示.

(1)92H-110D

(2)8DH-115D

(3)B2H-781)

(4)4C26H+19494D

6.按照字符所對(duì)應(yīng)的ASCII碼表示,查表寫出如下字符的ASCII碼:

a、K、G、+、DEL、SP、CR、$。

61H4BH47H2BH7FH20HODH24H

2思考與練習(xí)題

一、選擇題

1.在EU中起數(shù)據(jù)加工與處理作用的功能部件是()。A

A.ALUB.數(shù)據(jù)暫存器C.數(shù)據(jù)寄存器D.EU控制電路

2.以下不屬于BIU中的功能部件是()0B

A.地址加法器B.地址寄存器C.段寄存器D.指令隊(duì)列緩沖器

3.堆棧操作中用于指示棧頂?shù)刂返募拇嫫魇牵ǎ

A.SSB.SPC.BPD.CS

4.指令指針寄存器(IP)中存放的內(nèi)容是()?B

A.指令B.指令地址C.操作數(shù)D.操作數(shù)地址

5.8086系統(tǒng)可訪問的內(nèi)存空間范圍是()。B

A.OOOOH-FFFFHB.00000H?FFFFFH

C.0~2'6D.0~220

6.8086的1/0地址空間采用16位數(shù)尋址時(shí),可訪問的端門數(shù)容量為()。C

A.16KBB.32KBC.64KBD.1MB

7.8086最大和最小工作方式的主要差別是()。D

A.數(shù)據(jù)總線的位數(shù)不同B.地址總線的位數(shù)不同

C.I/O端口數(shù)的不同D.單處理器與多處理器的不同

二、填空題

1.8086的內(nèi)部結(jié)構(gòu)由工工和BIU一組成,前者功能是執(zhí)行指令,后者功能是總線操作。

P24P26

2.8086取指令時(shí),會(huì)選取CS作為段基值,再加上由」P提供的偏移地址形成20位物理地

址。

3.8086有兩種外部中斷請(qǐng)求線,它們分別是INTR和NMI。P32

4.8086的標(biāo)志寄存器共有個(gè)標(biāo)志位,分為6個(gè)狀態(tài)標(biāo)志位和3個(gè)控制標(biāo)志位。P28

5.8086為訪問1MB內(nèi)存空間,將存儲(chǔ)器進(jìn)行分段管理;其物理地址是唯一的;偏移地

址是指相對(duì)段基地址的偏移量;邏輯地址常用于程序中。P29P20P34P35

6.邏輯地址為1000H:0230H時(shí),其物理地址是10230H,段地址是1000H,偏移量是

0230H,

7.時(shí)鐘周期是指CPU基本時(shí)間計(jì)量單位,總線周期是指一次總線操作時(shí)間,總線操作是

指CPU經(jīng)外部總線對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次信息輸入和輸出的過程。P37

8.8086工作在最大方式時(shí)CPU引腳MN/-MX應(yīng)接地;最大和最小工作方式的應(yīng)用場(chǎng)合分別

是多處理器和單處理器系統(tǒng)。P38P39

三、判斷題

1.IP中存放的是正在執(zhí)行的指令偏移地址。()X

2.從內(nèi)存單元偶地址開始存放的數(shù)據(jù)稱為規(guī)則字。()4

3.EU執(zhí)行算術(shù)和邏輯運(yùn)算后的結(jié)果特征可由控制標(biāo)志位反映出來(lái)。()X

4.指令執(zhí)行中插入”,和T,是為了解決CPU與外設(shè)之間的速度差異。()X

5.總線操作中第1個(gè)時(shí)鐘周期通常是取指周期。()X

6.8086系統(tǒng)復(fù)位后重新啟動(dòng)時(shí)從內(nèi)存地址FFFFOH處開始執(zhí)行。()J

四、簡(jiǎn)答題

1.8086微處理器中的指令隊(duì)列起什么作用(EU從指令隊(duì)列取指令的緩沖作用),其長(zhǎng)度是多

少字節(jié)(6個(gè)字節(jié))?P26

2.什么是邏輯地址(無(wú)符號(hào)32位二進(jìn)制數(shù)),它由哪兩部分組成(段地址和偏移地址)?8086

的物理地址是如何形成的(物理地址=段地址*10H+偏移地址)?P35

3.8086微機(jī)系統(tǒng)中存儲(chǔ)器為什么要分段(8086系統(tǒng)內(nèi)的地址寄存器均是16位,只能尋址

64KB;將1MB存儲(chǔ)器分成邏輯段,每段不超過64KB空間,以便CPU操作。),各邏輯段之間

的關(guān)系如何(可重疊、交叉、緊密連接和分離)?P34

4.I/O端口有哪兩種編址方式(統(tǒng)一編址和獨(dú)立編址),8086的最大I/O尋址空間是多少

(64KB)?P36

5.8086的最大工作模式(8086、8087和8089通過總線控制器8288產(chǎn)生對(duì)總線的控制信號(hào))

和最小工作方式(8086直接產(chǎn)生總線控制信號(hào))的主要區(qū)別是什么?他們分別應(yīng)用在何種場(chǎng)

合(多處理器和單處理器系統(tǒng))?P39

6.簡(jiǎn)述實(shí)地址方式(山段地址和偏移地址計(jì)算產(chǎn)生物理地址,其物理地址可以超過20位)和

虛擬8086方式(由段地址和偏移地址計(jì)算產(chǎn)生的有效物理地址為20位)的區(qū)別。P41

7.簡(jiǎn)述Pentium微處理器的主要特性。P44

五、分析題

1.有一個(gè)由10個(gè)字組成的數(shù)據(jù)區(qū),其起始地址為1200H:0120H。試寫出該數(shù)據(jù)區(qū)的首末存

儲(chǔ)單元的實(shí)際地址(12120H~12120H+10*2T=12133H)。

2.若一個(gè)程序段開始執(zhí)行之前,(CS)=33AOH,(IP)=0130H,試問該程序段啟動(dòng)執(zhí)行指令的實(shí)

際地址是什么(33A00H+0130II=33B30H)?

3.有兩個(gè)16位的字31DAH和5E7FH,它們?cè)?086系統(tǒng)存儲(chǔ)器中的地址分別為00130H和

00134H,試畫出它們的存儲(chǔ)示意圖。

地址存儲(chǔ)空間

00130HODAH

00131H31H

00134H7FH

00135H5EH

4.將字符串“Good!”的ASCII碼依次存人從01250H開始的字節(jié)單元中,畫出它們存放的內(nèi)

存單元示意圖。

地址存儲(chǔ)空間

01250H

01251H

01252H

01253H

01254H

5.8086微處理器讀/寫總線周期各包含多少個(gè)時(shí)鐘周期(4個(gè)時(shí)鐘周期)?什么情況下需要插

入T”等待周期(當(dāng)4上升沿檢測(cè)到READY=0時(shí),在Ts與「之間插入T,)?應(yīng)插入多少個(gè)T”,

取決于什么因素(READY=0持續(xù)的時(shí)間長(zhǎng)短)?什么情況下會(huì)出現(xiàn)空閑狀態(tài)T,(BIU不執(zhí)行總

線操作的時(shí)鐘周期。例如:8086執(zhí)行MUL、DIV指令長(zhǎng)指令時(shí),BIU有段時(shí)間不執(zhí)行總線操

作;因此,插入TJ?P38

3思考與練習(xí)題

一、選擇題

1.寄存器間接尋址方式中,要尋找的操作數(shù)位于()中。B

A.通用寄存器B.內(nèi)存單元C.段寄存器D.堆棧

2.下列指令中正確的是()。C

A.MOVAL,BXB.MOVCS,AXC.MOVAL,CLD.MOV[BX],[SI]

3.下列指令中錯(cuò)誤的是()。C

A.MOVAX,1234HB.INCBXC.SRLAX,2D.PUSHDX

4.設(shè)(SP)=1010H,執(zhí)行POPAX后,SP中的內(nèi)容為()。B

A.10UHB.1012HC.100EHD.100FH

5.給定(AL)=80H,(CL)=02H,指令SHR八1,比執(zhí)行后的結(jié)果是()。B

A.(AL)=40HB.(AL)=20HC.(AL)=COHD.(AL)=EOH

6.將AX清零并使CF位清零,下面指令錯(cuò)誤的是()。A

A.SUBAX,BXB.XORAX,AXC.MOVAX,0(不影響FR)D.ANDAX,000011

二、填空題

1.計(jì)算機(jī)指令通常由操作碼字段和操作數(shù)字段兩部分組成:指令對(duì)數(shù)據(jù)操作時(shí).按照數(shù)

據(jù)的存放位置可分為立即數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)。

2.尋址的含義是指尋找操作數(shù)的過程;8086指令系統(tǒng)的尋址方式按照大類可分為與操作

數(shù)有關(guān)的尋址方式、與I/O端U有關(guān)的尋址方式;其中尋址速度最快的是立即數(shù)尋址。

P54~P57

3.指令MOVAX,ES:[BX+0100H]中,源操作數(shù)位于物理地址為ES*10H+BX+0100H的存儲(chǔ)單元

;讀取的是附加數(shù)據(jù)ES段的存儲(chǔ)單元內(nèi)容。

4.堆棧是一個(gè)特殊的存儲(chǔ)器區(qū)域,其操作是以2字節(jié)單元為單位按照先進(jìn)后出原則

來(lái)處理;采用一段指向棧頂?shù)刂?,入棧時(shí)地址變化為SP<=(SP)-2。P57

5.I/O端口的尋址有直接端口尋址和間接端口尋址兩種方式;采用8位數(shù)端口地址(直接

端口尋址)時(shí),可訪問的端口地址為02255;采用16位數(shù)端口地址(間接端口尋址)時(shí),

可訪問的端口地址為0~65535。P57~P58

三、分析計(jì)算題

1.指出如下指令中源操作數(shù)和目的操作數(shù)的尋址方式:

(l)MOVAX,100H(2)MOVCX.AX

(3)ADD[SI],1000(4)SUBBX,[SI+100]

(5)MOV[BX+300],AX(6)ANDBP,[DI]

源操作數(shù)目的操作數(shù)

(DMOVAX,100H立即數(shù)寄存器

(2)MOVCX,AX寄存器寄存器

(3)ADD[SI],1000立即數(shù)寄存器間接

(4)SUBBX,[SI+100]變址寄存器

(5)MOV[BX+300],AX寄存器變址

(6)ANDBP,[DI]寄存器間接寄存器

2.分析如下指令的正誤,對(duì)錯(cuò)誤指令說(shuō)明出錯(cuò)誤原因并加以收正:

(l)MOV[1200],23H(2)MOV1020H,CX

(3)MOV[1000H],[200011](4)MOVIP,00011

(5)PUSHAL(6)OUTCX,AL

(7)INAL,[80H](8)MOVCL,3300H

(DMOV[1200],23H;未指明數(shù)據(jù)類型MOVBYTEPTR[1200],23H

(2)MOV1020H,CX;立即數(shù)不能作為目標(biāo)操作數(shù)MOV[1020H],CX

(3)MOV[1000H],[2000H];兩操作數(shù)不能均是內(nèi)存單元MOVBYTEPTR[1000H],2000H

(4)MOVIP,000H;IP不能在MOV指令中出現(xiàn)JMP00011

(5)PUSHAL;操作數(shù)必須是16位PUSHAX

(6)OUTCX,AL;CX不能作為端口地址的間接訪問寄存器OUTDX,AL

(7)INAL,[80H];直接端口地址寫法錯(cuò)誤INAL,8011

(8)MOVCL,3300H;兩操作數(shù)的數(shù)據(jù)類型不一致MOVCX,3300H

3.給定(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,

(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65Ho試分析如下

指令執(zhí)行后,AX寄存器中的內(nèi)容:

(l)MOVAX,120011(2)MOVAX,BX

(3)MOVAX,[1200H](4)MOVAX,[BX]

(5)MOVAX,110011[BX](6)MOVAX,[BX+SI]

(7)MOVAX,[1100H+BX+SI]

(DMOVAX,1200H;(AX)=1200H

(2)MOVAX,BX;(AX)=0100H

(3)MOVAX,[1200H];(AX)=4C2AH

(4)MOVAX,[BX];(AX)=3412H

(5)MOVAX,1100HEBX];(AX)=4C2AH

(6)MOVAX,[BX+SI];(AX)=7856H

(7)MOVAX,[1100H+BX+SI];(AX)=65B7H

4.己知(AX)=75A4H,CF=1,分別寫出如下指令執(zhí)行后的結(jié)果:

(DADDAX,08FFH(2)INCAX

(3)SUBAX,4455H(4)ANDAX,OFFFH

(5)ORAX.0101H(6)SARAX,1

(7)RORAX,1(8)ADCAX,5

(DADDAX,08FFH(AX)=7EA3HCF=0

(2)INCAX(AX)=75A5HCF=1

(3)SUBAX,4455H(AX)=314FHCF=0

(4)ANDAX,OFFFH(AX)=05A4HCF=O

(5)ORAX,0101H(AX)=75A5HCF=0

(6)SARAX,1(AX)=3AD2HCF=O

(7)RORAX,1(AX)=3AD2HCF=0

(8)ADCAX,5(AX)=75AAHCF=O

5.給定(SS)=8000H,(SP)=200011,(AX)=7A6CH,(DX)=3158H?執(zhí)行如下程序段,畫出每條指

令執(zhí)行后寄存器的內(nèi)容和堆棧存儲(chǔ)內(nèi)容的變化情況:

PUSHAX

PUSHDX

POPBX

POPCX

PUSHAX;(AX)=7A6CH,(SP)=1FFEH,(81FFEH)=7A6CH

PUSHDX;(DX)=3158H,(SP)=1EFCH,(81EECH)=3158H

POPBX;(BX)=3158H,(SP)=1FFEH

POPCX;(CX)=7A6CH,(SP)=2000H

6.試分析如下程序段執(zhí)行完后,BX的內(nèi)容:817FII

MOVBX,1030H;(BX)=1030H

MOVCL,3;(CL)=3

SHLBX,CL;(BX)=8180H

DECBX;(BX)=817FH

四、設(shè)計(jì)題

1.現(xiàn)有兩個(gè)雙倍精度字?jǐn)?shù)據(jù)1234FEDCII和1123876511,分別存放在數(shù)據(jù)段中從1000H和2000II

開始的存儲(chǔ)單元中,低位在前,高位在后。要求兩數(shù)相加之后所得的和放在從1000H開始的

內(nèi)存單元中,設(shè)計(jì)該程序段。

;3_4_1.ASM

MOVSI,200011;SI指向2000H

MOVDI,1000H;DI指向1000H

CLC;CF=O

MOVCX,4;CX=4,循環(huán)相加4次

LL:MOVAL,[SI];取數(shù)

ADCAL,[DI];相加

MOV[DI],AL;保存

INCSI;SI增1

INCDI;1)1增1

LOOPLL;CX減1,不為0,轉(zhuǎn)LL

MOVAX,0

ADCAX,0

MOV[DILAX

2.設(shè)AX、BX中保存有帶符號(hào)數(shù),CX、DX中保仔無(wú)符號(hào)數(shù),請(qǐng)寫出實(shí)現(xiàn)以下功能的指令或程

序段。

⑴若(CX)〈(DX),則轉(zhuǎn)移到NEXT1。

CMPCX,DX

JBNEXT1

(2)若(AX)XBX),則轉(zhuǎn)移到NEXT2,

CMPAX,BX

JGNEXT2

(3)若(CX)=0,則轉(zhuǎn)移到NEXT3.

CMPCX,0或JCXZNEXT3

JENEXT3

(4)若AX中內(nèi)容為負(fù),則轉(zhuǎn)移到NEXT4。

TESTAX,8000H或ADDAX,0

JNZNEXT4或JSNEXT4

3.設(shè)堆棧寄存器(SS)=2250H。堆棧指示器(SP)=0140H,若在堆棧中存入5個(gè)字?jǐn)?shù)據(jù),則SS、

SP的內(nèi)容各是多少?[(SS)=2250H、(SP)=0136H]如果又取出2個(gè)字?jǐn)?shù)據(jù),SS、SP的內(nèi)容各

是多少?[(SS)=2250H、(SP)=013AH]

4思考與練習(xí)題

一、選擇題

1.匯編語(yǔ)言程序中可執(zhí)行的指令位于()中。C

A.數(shù)據(jù)段B.堆棧段C.代碼段D.附加數(shù)據(jù)段

2.以下內(nèi)容不是標(biāo)號(hào)和變量屬性的是()oB

A.段屬性B.地址屬性C.偏移屬性D.類型屬性

3.DOS功能調(diào)用中采用屏幕顯示單個(gè)字符,其值保存在()寄存器。C

A.ALB.AHC.DLD.DH

4.DOS功能調(diào)用中,從鍵盤讀取一個(gè)字符并回顯的是()。A

A.01HB.02HC.09HD.OAH

5.循環(huán)程序設(shè)計(jì)中,要考慮的核心問題是()。1)

A.循環(huán)的控制B.選擇循環(huán)結(jié)構(gòu)C.設(shè)置循環(huán)參數(shù)初始值D.修改循環(huán)控制參數(shù)

6.對(duì)于宏指令和子程序,下列說(shuō)法不正確的是()。D

A.宏指令不能簡(jiǎn)化目標(biāo)程序

B.子程序可以簡(jiǎn)化目標(biāo)程序,但執(zhí)行時(shí)間長(zhǎng)

C.子程序在執(zhí)行過程中由CPU處理

1).宏指令在執(zhí)行時(shí)要保護(hù)和恢復(fù)現(xiàn)場(chǎng)

二、填空題

1.匯編語(yǔ)言是一種面向CPL:指令系統(tǒng)的程序設(shè)計(jì)語(yǔ)言,采用指令助記符表示操作碼和操

作數(shù),用符號(hào)地址表示操作數(shù)地址。P82

2.匯編語(yǔ)言的語(yǔ)句可由名字、操作符、操作數(shù)、注釋四部分組成;其中一操作符.是必須具

備的。P83

3.機(jī)器指令是指發(fā)送給CPL.的命令,在運(yùn)行時(shí)由一CPU_執(zhí)行;偽指令是發(fā)送給匯編程序的

命令,在匯編過程中由匯編程序進(jìn)行處理:宏指令是指代表一段源程序,通常用于

經(jīng)常用到的一個(gè)程序段場(chǎng)合。P87、P107

4.子程序的基本結(jié)構(gòu)包括子程序說(shuō)明、現(xiàn)場(chǎng)保護(hù)及恢復(fù)、子程序體、子程序返回等幾個(gè)部

分;子程序的參數(shù)傳遞有寄存器、堆棧、存儲(chǔ)器等方法。P104、P105

5.DOS功能調(diào)用可完成對(duì)完成對(duì)文件、設(shè)備、內(nèi)存的管理;BIOS的主要功能是外設(shè)的控

制;如系統(tǒng)加電自檢、引導(dǎo)裝入及對(duì)鍵盤、磁盤、顯示器、打印機(jī)、異步串行通信口等的控

虬。

6.給定如下程序段,在每條指令的右邊寫出指令的含義和操作功能,指出該程序段完成的功

能及運(yùn)行結(jié)果:

MOVAX,0;AX<=0

MOVBX,1;BX<=1

MOVCX,5;CX<=5

LP:ADDAX,BX;AX<=AX+BX

ADDBX,2;BX<=BX+2

LOOPLP;CX〈=CX—1;若CXWO,轉(zhuǎn)LP

HLT;停機(jī)

5

(1)該程序段完成的功能是一Z2〃+1_。

(2)程序運(yùn)行后:(AX)=36;(BX)=_H_;(CX)=_0_?

三、判斷題

1.偽指令是在匯編中用于管理和控制計(jì)算機(jī)相關(guān)功能的指令。()X

2.程序中的“$”可指向下一個(gè)所能分配存儲(chǔ)單元的偏移地址。(

3.宏指令的引入是為了增加匯編程序的功能。()V

4.多重循環(huán)的內(nèi)循環(huán)要完整地包含在外循環(huán)中,可嵌套和并列。(

5.子程序結(jié)構(gòu)縮短了程序的長(zhǎng)度,節(jié)省了程序的存儲(chǔ)空間。()J

四、簡(jiǎn)答題

1.完整的匯編源程序應(yīng)該由哪些邏輯段組成(數(shù)據(jù)段、堆棧段、代碼段)?各邏輯段的主要作

用是什么(存放數(shù)據(jù)變量及其預(yù)置初值、保存中斷和子程序的斷點(diǎn)和參數(shù)傳遞、存放程序執(zhí)

行的代碼)?P87

2.簡(jiǎn)述在機(jī)器上建立(為源程序起一個(gè)有意義的文件名字,并創(chuàng)建成文本文件)、編輯(在文

本編輯軟件EDIT.EXE環(huán)境下,輸入和編輯源程序)、匯編(通過匯編程序ASM.EXE或

MASN.EXE,將源程序會(huì)變成機(jī)器語(yǔ)言目標(biāo)程序.OBJ)、連接(運(yùn)用連接程序LINK.EXE,將目

標(biāo)程序.OBJ連接生成執(zhí)行程序.EXE)、運(yùn)行(在DOS狀態(tài)下,直接運(yùn)行執(zhí)行程序)、調(diào)試(運(yùn)

用調(diào)試程序DEBUG.EXE將執(zhí)行程序跳入調(diào)試界面狀態(tài),并進(jìn)行斷點(diǎn)設(shè)置調(diào)試運(yùn)行或單步調(diào)試

運(yùn)行操作)匯編語(yǔ)言源程序的過程和步驟。P94

3.什么是偽指令(發(fā)送給匯編程序的命令)?程序中經(jīng)常使用的偽指令有哪些(數(shù)據(jù)定義、符

號(hào)定義、段定義、過程定義、結(jié)構(gòu)定義、模塊定義與連接、程序計(jì)數(shù)器$和起點(diǎn)定義ORG)?

簡(jiǎn)述其主要功能(數(shù)據(jù)定義為變量及其類型分配存儲(chǔ)單元,并賦予初值;符合定義給一個(gè)符

號(hào)重新命名;段定義指定邏輯段的名稱、范圍、斷的定位類型、組合類型和類別;過程定義

為程序段定義成過程,并賦予過程名字,以便用CALL指令調(diào)用;結(jié)構(gòu)定義用于相互關(guān)聯(lián)的

數(shù)據(jù)定義;模塊定義與連接用NAME為源程序匯編后的目標(biāo)程序指定模塊名,以便連接該目

標(biāo)模塊,并生成執(zhí)行程序文件;$在匯編過程中,用于存儲(chǔ)單元分配計(jì)數(shù)器,該計(jì)數(shù)器可在

指令操作數(shù)表達(dá)式中引用;ORG為數(shù)據(jù)變量和程序段指定起始位置。)?P87~P93

4.什么是宏指令(代表某功能的一段源程序)?宏指令在程序中如何被調(diào)用(在源程序中,通

過宏名字(即宏指令名)進(jìn)行調(diào)用)?P107

5.子程序與宏指令在程序的使用中有何共性(宏和子程序都可用來(lái)簡(jiǎn)化程序,并可使程序多

次對(duì)它們調(diào)用。)及不同特點(diǎn)(宏操作可直接傳遞和接收參數(shù),不通過堆棧或其他媒介;子程

序不能直接帶參數(shù),需有傳遞參數(shù)時(shí),必須通過堆棧寄存器和存儲(chǔ)器進(jìn)行。宏調(diào)用只能簡(jiǎn)化

源程序的書寫,并沒有縮短目標(biāo)代碼長(zhǎng)度;子程序調(diào)用能縮短目標(biāo)程序長(zhǎng)度。應(yīng)用好操作并

不會(huì)在執(zhí)行目標(biāo)代碼時(shí)增加額外的時(shí)間開銷;子程序調(diào)用由于需要保護(hù)和恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn),

因而延長(zhǎng)目標(biāo)程序的執(zhí)行時(shí)間)?P109

五、設(shè)計(jì)題

1.編程實(shí)現(xiàn)求S=(X2+Y2)/Z的值,并將結(jié)果放入RESULT單元。

;XT451.ASM

DATASEGMENT;定義數(shù)據(jù)段

XDW15

YDW-32

ZDW280

RESULTDW2DUP(?);定義結(jié)果保存單元

DATAENDS;數(shù)據(jù)段結(jié)束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA;初始化DS

MOVDS,AX

MOVAX,X;取出被乘數(shù)X存入AX中

IMULX;執(zhí)行X2操作

MOVCX,AX;乘積的低位字轉(zhuǎn)存至CX

MOVBX,DX;乘積的高位字轉(zhuǎn)存至BX

MOVAX,Y;取出被乘數(shù)X存入AX中

IMULY;執(zhí)行丫?操作

ADDAX,CX;X2+Y2的低位字與Z的低位字相加

ADCDX,BX;X2+Y2的高位字相加

IDIVZ;(X2+Y2)/Z

MOVRESULT,AX;商存入RESULT單元

MOVRESULT+2,DX;余數(shù)存入RESULT+2單元

MOVAH,4CH

INT21H;返回DOS

CODEENDS;代碼段結(jié)束

ENDSTART;匯編結(jié)束

2.編程序完成計(jì)算S=(A+B)/2-2(AANDB)。

;XT4_5_2.ASM

DATASEGMENT;定義數(shù)據(jù)段

ADW15

BDW-32

SDW?

RESULTDW2DUP(?);定義結(jié)果保存單元

DATAENDS;數(shù)據(jù)段結(jié)束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA;初始化DS

MOVDS,AX

MOVAX,A;取出被乘數(shù)A存入AX中

ADDAX,B;A+B

SARAX,1;(A+B)/2

MOVBX,AX;存入BX中

MOVAX,A;取出被乘數(shù)A存入AX中

ANDAX,B;AANDB

SALAX,1;(AANDB)*2

SUBBX,AX:(A+B)/2-2(AANDB)

MOVS,BX;存入S單元

MOVAH,4CH

INT21H;返回DOS

CODEENDS;代碼段結(jié)束

ENDSTART;匯編結(jié)束

3.試編程實(shí)現(xiàn)將內(nèi)存中的若干個(gè)無(wú)符號(hào)字?jǐn)?shù)據(jù)中的最大值和最小值找出來(lái),并開辟獨(dú)立的存

儲(chǔ)區(qū)域保存結(jié)果。

;XT4_5_3.ASM

DATASEGMENT

ARRDW123,456,67,0,34,90,89,67,0,256

CNEQU($-ARR)/2

ZDDW0;最大(數(shù)組中任何數(shù)均大于AX內(nèi)容)

ZXDWOFFFFH;最小(數(shù)組中任何數(shù)均小于BX內(nèi)容)

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化DS

MOVSI,OFFSETARR;數(shù)組首地址送SI

MOVCX,CN;數(shù)組元素個(gè)數(shù)送CX

CALLQZDZXS;調(diào)用近過程QZDZXS(求最大最小數(shù))

MOVAH,4CH

INT21H;返回DOS

;求最大最小數(shù)子程序名:QZDZXS

;子程序功能:求一組字?jǐn)?shù)據(jù)中的最大最小數(shù)

;入口參數(shù):數(shù)組首地址在SI中,數(shù)組個(gè)數(shù)在CX中

;出口參數(shù):最大數(shù)在ZD中,最小數(shù)在ZX中

;使用寄存器用X、DX、SI及PSW

QZDZXSPROCNEAR

PUSHSI

SH

DX

PSU

nCX;保護(hù)現(xiàn)場(chǎng)

M^

ZDZXO:DX,[SI];取一個(gè)數(shù)組元素送DX

CP

ZD,DX;AX中內(nèi)容和DX中內(nèi)容比較

JB

ZDZX1;(ZD)XDX),轉(zhuǎn)ZDZX1

MV

ZD,DX;較大數(shù)存入ZD

CP

ZDZX1:ZX,DX;AX中內(nèi)容和DX中內(nèi)容比較

JA

ZDZX2;(ZX)<(DX),轉(zhuǎn)ZDZX1

MV

DZX,DX;較小數(shù)存入ZX

ZDZX2:AOSI,2;數(shù)組指針加2調(diào)整

D

]LP-ZDZXO;循環(huán)控制

PCX

POPDX

POPSI;恢復(fù)現(xiàn)場(chǎng)

RET;返回主程序

QZDZXSENDP;子程序定義結(jié)束

CODEENDS;代碼段結(jié)束

ENDSTART;匯編結(jié)束

4.編寫程序,計(jì)算如下函數(shù)的值:

fIX,X<0

S=<3X,0WXW10

、4X,0>10

;XT4_5_4.ASM

DATASEGMENT

XDB15

SDB?

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX

MOVAL,X

TESTAL,80H

JZLLO

SALAL,1;2X

JMPLL10

LLO:CMPAL,10

JGLL1

MOVBL,AL

SALAL4;3X

ADDAL,BL

JMPLL10

LL1:SALAL,1;4X

SALAL,1

LL10:MOVS,AL

MOVAH,4CH

INT21H;返回DOS

CODEENDS

ENDSTART;匯編結(jié)束

5.從鍵盤輸入一系列字符,以回車符結(jié)束,編寫程序統(tǒng)計(jì)其中非數(shù)字字符的個(gè)數(shù)?

;XT4_5_5.ASM

DATASEGMENT

NUMDB0;統(tǒng)計(jì)變量

DATAENDS

STACKSEGMENTSTACK;定義堆棧段

DB100DUP(?);開辟100個(gè)存儲(chǔ)單元

STACKENDS;堆棧段結(jié)束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,SS:STACK,DS:DATA

START:MOVAX,DATA

MOVDS,AX

LLL:MOVAH,01H;1號(hào)調(diào)用,從鍵盤輸入一字符存入AL

INT21H

CMPAL,13;與“回車符”的ASCII碼比較

JZL2;是“回車符”,轉(zhuǎn)L2(退出)

CMPAL,30H;與“0”的ASCII碼比較

JBLI;低于“0”的非數(shù)字字符ASCII碼,轉(zhuǎn)L1(統(tǒng)計(jì))。

CMPAL,39H;與“9”的ASCII碼比較

JALI;高于“9”的非數(shù)字字符ASCII碼,轉(zhuǎn)L1(統(tǒng)計(jì))。

JMPLLL

LI:INCNUM;非數(shù)字字符,統(tǒng)計(jì);計(jì)數(shù)增1.

JMPLLL;轉(zhuǎn)LLL(繼續(xù))

L2:MOVDL,OAH;設(shè)置換行符

MOVAH,02H;設(shè)置顯示功能號(hào)

INT21H;換行

MOVDL,NUM;設(shè)置顯示統(tǒng)計(jì)數(shù)字(8位二進(jìn)制數(shù))

MOVCL,4

SHRDL,CL;保留高4位二進(jìn)制數(shù)

ORDL,30H;轉(zhuǎn)換成ASCII碼(高1位十六制數(shù)的ASCII)

MOVAH,02H;設(shè)置顯示功能號(hào)

INT21H;顯示高1位十六制數(shù)的ASCH

MOVDL,NUM;設(shè)置顯示統(tǒng)計(jì)數(shù)字(8位二進(jìn)制數(shù))

ANDDL,0FH;保留低4位二進(jìn)制數(shù)

ORDL,30H;轉(zhuǎn)換成ASCII碼(低1位十六制數(shù)得ASCII)

MOVAH,02H;設(shè)置顯示功能號(hào)

INT21H;顯示低1位十六制數(shù)的ASCII

MOVDL/H’;設(shè)置顯示'H'

MOVAH,02H;設(shè)置顯示功能號(hào)

INT21H;顯示'H'

MOVAH,4CH;設(shè)置返回DOS功能碼。

INT21H;返回DOS

CODEENDS;代碼段結(jié)束

ENDSTART;程序匯編結(jié)束

6.編程實(shí)現(xiàn)將鍵盤連續(xù)輸入的小寫字母用大寫字母顯示出來(lái),小寫字母與大寫字母之間采用

號(hào)分隔,當(dāng)輸入非小寫字母時(shí)程序停止處理。

;XT456.ASM

STACKSEGMENTSTACK;定義堆棧段

DB100DUP(?);開辟100個(gè)存儲(chǔ)單元

STACKENDS;堆棧段結(jié)束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,SS:STACK

START:MOVAH,01H;1號(hào)調(diào)用,從鍵盤輸入一字符存入AL

INT21H;輸入并回顯

MOVBL,AL;保存從鍵盤輸入字符

CMPALJa,;與“曖的ASCII碼比較

JBL3;低于“a”的ASCH碼,轉(zhuǎn)L3(退出)。

CMPAL";與2”的ASCII碼比較

JAL3;高于“a”的ASCII碼,轉(zhuǎn)L3(退出)。

SUBAL,20H;將AL中字符的ASCII碼減去20H變成大寫字母。

MOVBL,AL;保存結(jié)果

MOVDL,<;顯示字符u送DL

MOVAH,02H;2號(hào)調(diào)用,在顯示器上顯示字符

INT21H;顯示u

MOVDL,BL;結(jié)果(大寫字母)送DL。

MOVAH,02H;2號(hào)調(diào)用,在顯示器上顯示DL中的內(nèi)容(大寫字母)。

INT21H;顯示大寫字母

MOVDL,20H;空格送DL。()

MOVAH,02H;2號(hào)調(diào)用,在顯示器上顯示DL中的內(nèi)容(大寫字母).

INT21H;顯示空格(使兩結(jié)果用空格隔開)

JMPSTART;不是“回車符",轉(zhuǎn)START(繼續(xù))

L3:MOVAH,4CH;是“回車符,,,設(shè)置返回DOS功能碼。

INT21H;返回DOS

CODEENDS;代碼段結(jié)束

ENDSTART;程序匯編結(jié)柬

7.在數(shù)據(jù)段中有一個(gè)字節(jié)數(shù)組,編程統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù)放入、單元保存,統(tǒng)計(jì)負(fù)數(shù)的個(gè)數(shù)

放入B單元保存。

;XT4_7.ASM

DATASEGMENT

ARRDB-13,46,67,0,-34,-90,89,67,0,26

CNEQU$-ARR;數(shù)組長(zhǎng)度

ADW?;正數(shù)個(gè)數(shù)統(tǒng)計(jì)結(jié)果變量

BDW?;負(fù)數(shù)個(gè)數(shù)統(tǒng)計(jì)結(jié)果變量

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化

MOVSI,OFFSETARR;敢組首地址送SI

MOVCX,CN;數(shù)組元素個(gè)數(shù)送CX

L0:MOVDL,[SI];取一個(gè)數(shù)組元素送DX

TESTDL,80H;DX中內(nèi)容和0比較

JNZ

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論