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

下載本文檔

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

文檔簡介

1思考與練習(xí)題

一、選擇題

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

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

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

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

A.CPUB.主存儲器C.硬盤D.顯示器

3.計算機中帶符號數(shù)的表示通常采用()oC

A.原碼B.反碼C.補碼D.BCD碼

4.采用補碼表示的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ù)在計算機中用壓縮BCD碼表示為10010011,其真值為()?C

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

二、填空題

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

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

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

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

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

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

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

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

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

圍、機器數(shù)的符號、機器數(shù)中小數(shù)點位置3個因素。P15P16

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

令使用的稱為信息碼。P18P19

三、判斷題

1.計算機中帶符號數(shù)采用補碼表示的目的是為了簡化機器數(shù)的運算。()》

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

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

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

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

四、簡答題

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

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

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

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

5.ASCII碼和BCD碼有哪些特點?其應(yī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ù)的原碼、反碼、補碼表示(采用8位二進(jìn)制數(shù))。

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

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

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

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

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

(1)92H-110D

(2)8DH-115D

(3)B2H-781)

(4)4C26H+19494D

6.按照字符所對應(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.指令隊列緩沖器

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ù)容量為()。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取指令時,會選取CS作為段基值,再加上由」P提供的偏移地址形成20位物理地

址。

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

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

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

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

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

0230H,

7.時鐘周期是指CPU基本時間計量單位,總線周期是指一次總線操作時間,總線操作是

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

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

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

三、判斷題

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

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

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

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

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

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

四、簡答題

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

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

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

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

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

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

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

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

(64KB)?P36

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

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

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

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

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

7.簡述Pentium微處理器的主要特性。P44

五、分析題

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

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

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

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

3.有兩個16位的字31DAH和5E7FH,它們在8086系統(tǒng)存儲器中的地址分別為00130H和

00134H,試畫出它們的存儲示意圖。

地址存儲空間

00130HODAH

00131H31H

00134H7FH

00135H5EH

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

存單元示意圖。

地址存儲空間

01250H

01251H

01252H

01253H

01254H

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

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

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

線操作的時鐘周期。例如:8086執(zhí)行MUL、DIV指令長指令時,BIU有段時間不執(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.下列指令中錯誤的是()。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位清零,下面指令錯誤的是()。A

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

二、填空題

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

據(jù)的存放位置可分為立即數(shù)、寄存器操作數(shù)、存儲器操作數(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的存儲單元

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

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

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

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

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

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

三、分析計算題

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.分析如下指令的正誤,對錯誤指令說明出錯誤原因并加以收正:

(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];直接端口地址寫法錯誤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)容和堆棧存儲內(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è)計題

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

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

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

;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中保存有帶符號數(shù),CX、DX中保仔無符號數(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個字?jǐn)?shù)據(jù),則SS、

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

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

4思考與練習(xí)題

一、選擇題

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

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

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

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

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

A.ALB.AHC.DLD.DH

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

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

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

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

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

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

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

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

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

二、填空題

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

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

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

備的。P83

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

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

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

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

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

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

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

虬。

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

能及運行結(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;停機

5

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

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

三、判斷題

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

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

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

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

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

四、簡答題

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

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

行的代碼)?P87

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

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

MASN.EXE,將源程序會變成機器語言目標(biāo)程序.OBJ)、連接(運用連接程序LINK.EXE,將目

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

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

運行操作)匯編語言源程序的過程和步驟。P94

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

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

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

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

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

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

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

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

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

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

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

次對它們調(diào)用。)及不同特點(宏操作可直接傳遞和接收參數(shù),不通過堆?;蚱渌浇椋蛔映?/p>

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

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

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

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

五、設(shè)計題

1.編程實現(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.編程序完成計算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.試編程實現(xiàn)將內(nèi)存中的若干個無符號字?jǐn)?shù)據(jù)中的最大值和最小值找出來,并開辟獨立的存

儲區(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ù)組元素個數(shù)送CX

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

MOVAH,4CH

INT21H;返回DOS

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

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

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

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

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

QZDZXSPROCNEAR

PUSHSI

SH

DX

PSU

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

M^

ZDZXO:DX,[SI];取一個數(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)場

RET;返回主程序

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

CODEENDS;代碼段結(jié)束

ENDSTART;匯編結(jié)束

4.編寫程序,計算如下函數(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)計其中非數(shù)字字符的個數(shù)?

;XT4_5_5.ASM

DATASEGMENT

NUMDB0;統(tǒng)計變量

DATAENDS

STACKSEGMENTSTACK;定義堆棧段

DB100DUP(?);開辟100個存儲單元

STACKENDS;堆棧段結(jié)束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,SS:STACK,DS:DATA

START:MOVAX,DATA

MOVDS,AX

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

INT21H

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

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

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

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

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

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

JMPLLL

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

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

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

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

INT21H;換行

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

MOVCL,4

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

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

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

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

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

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

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

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

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

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

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

INT21H;顯示'H'

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

INT21H;返回DOS

CODEENDS;代碼段結(jié)束

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

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

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

;XT456.ASM

STACKSEGMENTSTACK;定義堆棧段

DB100DUP(?);開辟100個存儲單元

STACKENDS;堆棧段結(jié)束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,SS:STACK

START:MOVAH,01H;1號調(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號調(diào)用,在顯示器上顯示字符

INT21H;顯示u

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

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

INT21H;顯示大寫字母

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

MOVAH,02H;2號調(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ù)段中有一個字節(jié)數(shù)組,編程統(tǒng)計其中正數(shù)的個數(shù)放入、單元保存,統(tǒng)計負(fù)數(shù)的個數(shù)

放入B單元保存。

;XT4_7.ASM

DATASEGMENT

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

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

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

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

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化

MOVSI,OFFSETARR;敢組首地址送SI

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

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

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

JNZ

溫馨提示

  • 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

提交評論