微型計(jì)算機(jī)原理及應(yīng)用技術(shù)_第二版_課后作業(yè)解答(全集)_第1頁
微型計(jì)算機(jī)原理及應(yīng)用技術(shù)_第二版_課后作業(yè)解答(全集)_第2頁
微型計(jì)算機(jī)原理及應(yīng)用技術(shù)_第二版_課后作業(yè)解答(全集)_第3頁
微型計(jì)算機(jī)原理及應(yīng)用技術(shù)_第二版_課后作業(yè)解答(全集)_第4頁
微型計(jì)算機(jī)原理及應(yīng)用技術(shù)_第二版_課后作業(yè)解答(全集)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第1章 計(jì)算機(jī)基礎(chǔ)知識(shí)3. 填空:(1) (1234)10( )2( )16(2) (34.6875)10( )2( )16(3) (271.33)10( )2( )16(4) (101011001001)2( )10( )16(5) (1AB.E)16( )10( )2(6) (10101010.0111)2( )10( )16【解】(1) (1234)10( 10011010010 )2( 4D2 )16(2) (34.6875)10( 100010.1011 )2( 22.B )16(3) (271.33)10( 100001111.010101 )2( 10F.54 )16(4) (

2、101011001001)2( 2761 )10( AC9 )16(5) (1AB.E)16( 427.875 )10(110101011.111 )2(6) (10101010.0111)2( 170.4375 )10( AA.7 )164. 已知X=36,Y=136,Z=1250,請(qǐng)寫出X、Y、Z的16位原碼、反碼和補(bǔ)碼。【解】X原0000 0000 0010 0100Y原1000 0000 1000 1000Z原1000 0100 1110 0010X反0000 0000 0010 0100Y反1111 1111 0111 0111Z反1111 1011 0001 1101X補(bǔ)0000

3、0000 0010 0100Y補(bǔ)1111 1111 0111 1000Z補(bǔ)1111 1011 0001 11105. 已知X補(bǔ)=01010101B,Y補(bǔ)=10101010B,Z補(bǔ)=1000111111111111B,求X、Y、Z及XY、YZ的十進(jìn)制值為多少?【解】YZ運(yùn)算時(shí)Y需要擴(kuò)展符號(hào)位X85Y86Z28673XY01010101B10101010B11111111B1YZ11111111 10101010B10001111 11111111B11111111 10101010B01110000 00000001B0110 1111 1010 1011B285878. 將下列8421BCD碼

4、表示為十進(jìn)制數(shù)和二進(jìn)制數(shù):(1) 01111001 (2) 001010000101 (3) 011000000111 (4) 010110010000【解】(1) 79, 1001111B(2) 285, 100011101B(3) 607, 1001011111B(4) 590,1001001110B12. 微型計(jì)算機(jī)由哪幾部分組成,各部分的功能是什么?【解】微型計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部分組成。運(yùn)算器完成算術(shù)運(yùn)算和邏輯運(yùn)算;控制器分析命令并指揮協(xié)調(diào)各部件統(tǒng)一行動(dòng)完成命令規(guī)定的各種動(dòng)作或操作;存儲(chǔ)器存放原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果以及程序;輸入設(shè)備、輸出設(shè)備與

5、外界交換信息。13. CPU在內(nèi)部結(jié)構(gòu)上由哪幾部分組成,CPU應(yīng)具備什么功能?【解】微處理器(CPU)由運(yùn)算器和控制器組成。CPU應(yīng)具備的功能:對(duì)數(shù)據(jù)進(jìn)行處理并對(duì)處理過程進(jìn)行控制。17. 如果某幾種CPU的地址總線分別有8、16、20、32條,它們各自能尋址的存儲(chǔ)器的容量是多少?【解】地址總線8條: 28256B地址總線16條:21664KB地址總線20條:2201MB地址總線32條:2324GB18. 什么是硬件,什么是軟件,硬件和軟件的關(guān)系如何?【解】硬件是指組成計(jì)算機(jī)的各種電子的、機(jī)械的、光磁學(xué)的物理器件和設(shè)備,它們構(gòu)成了計(jì)算機(jī)的物理實(shí)體。軟件則是指為了運(yùn)行、管理和維護(hù)計(jì)算機(jī)而編制的各種

6、程序及其有關(guān)的文檔資料的總稱。硬件是基礎(chǔ),軟件是靈魂,兩者既相互獨(dú)立,又相互依存,缺一不可。硬件和軟件合起來才組成一個(gè)完整的計(jì)算機(jī)系統(tǒng)。19. 說明位、字節(jié)、字長(zhǎng)的概念及它們之間的關(guān)系?!窘狻?1) 位(bit)。位是計(jì)算機(jī)所能表示的最基本最小的數(shù)據(jù)單位。它只能有兩種狀態(tài)“0”和“1”,即二進(jìn)制位。(2) 字(Word)。計(jì)算機(jī)中作為一個(gè)整體參與運(yùn)算、處理和傳送的一串二進(jìn)制數(shù),是計(jì)算機(jī)中信息的基本單位。(3) 字長(zhǎng)(Word Length)。計(jì)算機(jī)中每個(gè)字所包含的二進(jìn)制位數(shù)稱為字長(zhǎng)。它們之間的關(guān)系:字由位構(gòu)成,字長(zhǎng)指每個(gè)字所包含的位的個(gè)數(shù)。1. 8086 CPU 由哪兩部分構(gòu)成,它們的主要功能

7、是什么?在執(zhí)行指令期間,EU 能直接訪問存儲(chǔ)器嗎,為什么?【解】8086CPU由執(zhí)行部件(EU)和總線接口部件(BIU)兩部分組成。執(zhí)行部件由內(nèi)部寄存器組、算術(shù)邏輯運(yùn)算單元(ALU)與標(biāo)志寄存器(FR)及內(nèi)部控制邏輯等三部分組成。寄存器用于存儲(chǔ)操作數(shù)和中間結(jié)果;算術(shù)邏輯單元完成16位或8位算術(shù)邏輯運(yùn)算,運(yùn)算結(jié)果送上ALU內(nèi)部數(shù)據(jù)總線,同時(shí)在標(biāo)志寄存器中建立相應(yīng)的標(biāo)志;內(nèi)部控制邏輯電路的主要功能是從指令隊(duì)列緩沖器中取出指令,對(duì)指令進(jìn)行譯碼,并產(chǎn)生各種控制信號(hào),控制各部件的協(xié)同工作以完成指令的執(zhí)行過程??偩€接口部件(BIU)負(fù)責(zé)CPU與存儲(chǔ)器、I/O設(shè)備之間傳送數(shù)據(jù)、地址、狀態(tài)及控制信息。每當(dāng)EU

8、部件要執(zhí)行一條指令時(shí),它就從指令隊(duì)列頭部取出指令,后續(xù)指令自動(dòng)向前推進(jìn)。EU要花幾個(gè)時(shí)鐘周期執(zhí)行指令,指令執(zhí)行中若需要訪問內(nèi)存或I/O設(shè)備,EU就向BIU申請(qǐng)總線周期,若BIU總線空閑,則立即響應(yīng),若BIU正在取一條指令,則待取指令操作完成后再響應(yīng)EU的總線請(qǐng)求。3. 8086 CPU 中有哪些寄存器,各有什么用途?【解】8086共有8個(gè)16位的內(nèi)部寄存器,分為兩組: 通用數(shù)據(jù)寄存器。四個(gè)通用數(shù)據(jù)寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。用作8位寄存器時(shí)分別記為AH、AL、BH、BL、CH、CL、DH、DL。AX(AH、AL)累加器。有些指令約定以AX(或AL)為源或

9、目的寄存器。實(shí)際上大多數(shù)情況下,8086的所有通用寄存器均可充當(dāng)累加器。BX(BH、BL)基址寄存器。BX可用作間接尋址的地址寄存器和基地址寄存器,BH、BL可用作8位通用數(shù)據(jù)寄存器。CX(CH、CL)計(jì)數(shù)寄存器。CX在循環(huán)和串操作中充當(dāng)計(jì)數(shù)器,指令執(zhí)行后CX內(nèi)容自動(dòng)修改,因此稱為計(jì)數(shù)寄存器。DX(DH、DL)數(shù)據(jù)寄存器。除用作通用寄存器外,在I/O指令中可用作端口地址寄存器,乘除指令中用作輔助累加器。 指針和變址寄存器。BP(Basic Pointer Register)基址指針寄存器。SP(Stack Pointer Register)堆棧指針寄存器。SI(Source Index Reg

10、ister)源變址寄存器。DI(Destination Index Register)目的變址寄存器。BP、SP稱為指針寄存器,用來指示相對(duì)于段起始地址的偏移量。BP和SP一般用于堆棧段。SI、DI稱為變址寄存器,可用作間接尋址、變址尋址和基址變址尋址的寄存器。SI一般用于數(shù)據(jù)段,DI一般用于數(shù)據(jù)段或附加段。標(biāo)志寄存器(FR):是一個(gè)16位寄存器,算術(shù)邏輯單元進(jìn)行算術(shù)邏輯運(yùn)算后,在標(biāo)志寄存器中建立相應(yīng)的標(biāo)志。段地址寄存器(CS、DS、SS、ES)。用于存放段地址,根據(jù)其主要用途,分為代碼段寄存器CS、數(shù)據(jù)段寄存器DS、堆棧段寄存器SS、附加段寄存器ES。代碼段寄存器CS:代碼段是存放程序代碼的

11、存儲(chǔ)區(qū)域,代碼段寄存器用來存放代碼段存儲(chǔ)區(qū)域的起始地址。數(shù)據(jù)段寄存器DS:數(shù)據(jù)段是存放程序中所使用的數(shù)據(jù)的存儲(chǔ)區(qū)域,數(shù)據(jù)段寄存器用來存放程序的數(shù)據(jù)存儲(chǔ)區(qū)的起始地址。堆棧段寄存器SS:堆棧段寄存器用來存放堆棧存儲(chǔ)區(qū)的起始地址。由堆棧段寄存器SS與堆棧指針寄存器SP來確定當(dāng)前堆棧指令的操作地址。附加段寄存器ES:附加段是為某些字符串操作指令存放目的操作數(shù)而設(shè)置的一個(gè)附加的數(shù)據(jù)段,附加段寄存器用來存放該附加數(shù)據(jù)段存儲(chǔ)區(qū)域的起始地址。指令指針寄存器(IP)。又稱程序計(jì)數(shù)器,是16位寄存器。IP中存放當(dāng)前將要執(zhí)行的指令的有效地址,每取出一條指令I(lǐng)P自動(dòng)增量,即指向了下一條指令。指令隊(duì)列緩沖器:是一個(gè)與C

12、PU速度相匹配的高速緩沖寄存器。在EU執(zhí)行指令的同時(shí),BIU可以從內(nèi)存中取出下一條或下幾條指令放到指令緩沖器中,EU執(zhí)行完一條指令后,可以立即從指令緩沖器中執(zhí)行下一條指令。4. 狀態(tài)標(biāo)志與控制標(biāo)志有何不同,程序中是怎樣利用這兩類標(biāo)志的?標(biāo)志寄存器有哪些標(biāo)志位,各在什么情況下置位?【解】狀態(tài)標(biāo)志根據(jù)算術(shù)邏輯運(yùn)算結(jié)果由硬件自動(dòng)設(shè)定,它們反映運(yùn)算結(jié)果的某些特征或狀態(tài),可作為后繼操作(如條件轉(zhuǎn)移)的判斷依據(jù)??刂茦?biāo)志由用戶通過指令來設(shè)定,它們可控制機(jī)器或程序的某些運(yùn)行過程。標(biāo)志寄存器的內(nèi)容如下:1514131211109876543210OFDFIFTFSFZF-AF-PF-CFCF(Carry Fl

13、ag)進(jìn)位標(biāo)志,反映在運(yùn)算結(jié)果的最高位有無進(jìn)位或借位。如果運(yùn)算結(jié)果的最高位產(chǎn)生了進(jìn)位(加法)或借位(減法)則CF=1,否則CF=0。PF(Parity Flag)奇偶標(biāo)志,反映運(yùn)算結(jié)果中“1”的個(gè)數(shù)的奇偶性,主要用于判斷數(shù)據(jù)傳送過程中是否出錯(cuò)。若結(jié)果的低8位中有偶數(shù)個(gè)“1”則PF=1,否則PF=0。AF(Auxiliary Carry Flag)輔助進(jìn)位標(biāo)志,又稱半進(jìn)位標(biāo)志。加減運(yùn)算時(shí),若D3向D4產(chǎn)生了進(jìn)位或借位則AF=1,否則AF=0。在BCD碼運(yùn)算時(shí),該標(biāo)志用于十進(jìn)制調(diào)整。ZF(Zero Flag)零標(biāo)志,反映運(yùn)算結(jié)果是否為0。 若結(jié)果為零則ZF=1,否則ZF=0。SF(Sign Fla

14、g)符號(hào)標(biāo)志,反映運(yùn)算結(jié)果最高位即符號(hào)位的狀態(tài)。如果運(yùn)算結(jié)果的最高位為則SF=1(對(duì)帶符號(hào)數(shù)即為負(fù)數(shù)),否則SF=0(對(duì)帶符號(hào)數(shù)即為正數(shù))。OF(Overflow Flag)溢出標(biāo)志,反映運(yùn)算結(jié)果是否超出了帶符號(hào)數(shù)的表數(shù)范圍。若超出了機(jī)器的表數(shù)的范圍,即為產(chǎn)生溢出,則OF=1,否則OF=0。DF(Direction Flag)方向標(biāo)志,用于串處理指令中控制串處理的方向。當(dāng)DF=1時(shí),每次操作后變址寄存器SI、DI自動(dòng)減量,因此處理方向是由高地址向低地址方向進(jìn)行。當(dāng)DF=0,則SI、DI自動(dòng)增量,處理方向由低地址向高地址方向進(jìn)行。該標(biāo)志由方向控制指令STD或CLD設(shè)置或清除。IF(Interru

15、pt Flag)中斷允許標(biāo)志,用于控制CPU是否允許響應(yīng)可屏蔽中斷請(qǐng)求。IF=1為允許響應(yīng)可屏蔽中斷請(qǐng)求,IF=0則禁止響應(yīng)可屏蔽中斷請(qǐng)求。該標(biāo)志可由中斷控制指令STI或CLI設(shè)置或清除。TF(Trap Flag)陷阱標(biāo)志,用于單步操作。TF=1時(shí),每執(zhí)行一條用戶程序指令后自動(dòng)產(chǎn)生陷阱,進(jìn)入系統(tǒng)的單步中斷處理程序。TF=0時(shí),用戶程序會(huì)連續(xù)不斷地執(zhí)行,不會(huì)產(chǎn)生單步中斷。5. 求出下列運(yùn)算后各個(gè)標(biāo)志的狀態(tài),并說明進(jìn)位標(biāo)志和溢出標(biāo)志的區(qū)別。 (1) 1278H + 3469H (2) 54E3H - 27A0H (3) 3881H + 3597H (4) 01E3H - 01E3H【解】CF進(jìn)位標(biāo)

16、志,反映在運(yùn)算結(jié)果的最高位有無進(jìn)位或借位。OF溢出標(biāo)志,反映運(yùn)算結(jié)果是否超出了帶符號(hào)數(shù)的表數(shù)范圍。機(jī)器實(shí)際處理時(shí)判斷是否溢出的方法是根據(jù)最高位的進(jìn)位(CF)與次高位的進(jìn)位是否相同來確定,若兩者不相同則OF=1(表示有溢出),否則OF=0(表示無溢出)。(1)0001 0010 0111 10000011 0100 0110 1001 0100 0110 1110 0001運(yùn)算后各個(gè)標(biāo)志的狀態(tài):OFDFIFTFSFZF-AF-PF-CF000110(2) 0101 0100 1110 0011 0010 0111 1010 0000 0010 1100 0100 0011運(yùn)算后各個(gè)標(biāo)志的狀態(tài):O

17、FDFIFTFSFZF-AF-PF-CF000000(3)0011 1000 1000 0001 0011 0101 1001 0111 0110 1110 0001 1000運(yùn)算后各個(gè)標(biāo)志的狀態(tài):OFDFIFTFSFZF-AF-PF-CF000010(4)0000 0001 1110 0011 0000 0001 1110 0011 0000 0000 0000 0000運(yùn)算后各個(gè)標(biāo)志的狀態(tài):OFDFIFTFSFZF-AF-PF-CF0010106. 8086 CPU 中存儲(chǔ)器的邏輯地址和物理地址之間有什么關(guān)系,各有多少值?【解】物理地址為某一個(gè)存儲(chǔ)單元的實(shí)際地址,對(duì)于8086它是一個(gè)20位

18、的地址。物理地址從00000HFFFFFH變化,對(duì)應(yīng)1MB的空間。邏輯地址,又稱偏移地址或有效地址,即對(duì)段首的偏移量。偏移地址從0000HFFFFH變化,對(duì)應(yīng)64KB的空間。物理地址的獲得方法是:將段寄存器的內(nèi)容左移4位(即×16),與邏輯地址相加,得到20位物理地址。根據(jù)尋址方式的不同,偏移地址可以來自程序計(jì)數(shù)器(IP)或其它寄存器。7. 8086CPU使用的存儲(chǔ)器為什么要分段,怎樣分段?為什么要設(shè)置段寄存器,有幾個(gè)段寄存器?各段寄存器有什么意義?【解】8086 CPU內(nèi)部數(shù)據(jù)結(jié)構(gòu)是16位的,即所有的寄存器都是16位的,而外部尋址空間為1MB,即需要20位地址線。為了能用內(nèi)部寄存器

19、中的16位地址來尋址1MB空間,8086將1MB空間以16字節(jié)為一個(gè)內(nèi)存節(jié),共分成64K個(gè)節(jié)。節(jié)的起始地址分別為00000H、00010H、00020H、FFFF0H,稱為段基址。節(jié)的起始地址的后4位二進(jìn)制數(shù)為全0,稱為節(jié)的段地址。用于存放段地址的寄存器稱為段寄存器,根據(jù)其主要用途,分為代碼段寄存器CS、數(shù)據(jù)段寄存器DS、堆棧段寄存器SS、附加段寄存器ES。代碼段寄存器CS:用來存放代碼段存儲(chǔ)區(qū)域的起始地址。數(shù)據(jù)段寄存器DS:數(shù)存放程序的數(shù)據(jù)存儲(chǔ)區(qū)的起始地址。堆棧段寄存器SS:用來存放堆棧存儲(chǔ)區(qū)的起始地址。由堆棧段寄存器SS與堆棧指針寄存器SP來確定當(dāng)前堆棧指令的操作地址。附加段寄存器ES:附

20、加段是為某些字符串操作指令存放目的操作數(shù)而設(shè)置的一個(gè)附加的數(shù)據(jù)段,附加段寄存器用來存放該附加數(shù)據(jù)段存儲(chǔ)區(qū)域的起始地址。12. 8086的I/O端口尋址范圍是多少?什么是I/O端口與內(nèi)存分別獨(dú)立編址?【解】8086的I/O端口使用16位地址A15A0,I/O端口地址范圍為0000HFFFFH,可尋址空間為64KB。I/O端口與內(nèi)存分別獨(dú)立編址時(shí),指令訪問的是I/O端口還是內(nèi)存,由地址信息無法區(qū)分,由M/信號(hào)區(qū)分是I/O端口的尋址與內(nèi)存尋址 。14. 什么是基地址和位移量,它們之間有何聯(lián)系?【解】8086 CPU內(nèi)部數(shù)據(jù)結(jié)構(gòu)是16位的,而外部尋址空間為1MB。為了能用內(nèi)部寄存器中的16位地址來尋址

21、1MB空間,8086將1MB空間以16字節(jié)為一個(gè)內(nèi)存節(jié)(Paragraph),共分成64K個(gè)節(jié)。節(jié)的起始地址稱為段基址。偏移地址是存儲(chǔ)地址對(duì)段首的偏移量。偏移地址從0000HFFFFH變化,對(duì)應(yīng)64KB的空間。它們之間有何聯(lián)系:物理地址基地址×16位移量。15. 設(shè)CS=1200H,IP=0FF00H,此時(shí)指令的物理地址是多少?指向這一物理地址的CS和IP的值是惟一的嗎?【解】指令的物理地址:12000H0FF00H21F00H指向這一物理地址的CS和IP的值不是惟一的。16. 若CS=1000H,指出當(dāng)前代碼段可尋址的存儲(chǔ)空間的大小和地址范圍?!窘狻慨?dāng)前代碼段可尋址的存儲(chǔ)空間的大小

22、:64KB當(dāng)前代碼段可尋址的存儲(chǔ)空間的地址范圍:10000H1FFFFH1. 若DS=3000H,BP=2000H,SI=1000H,32000H=00H,32001H=40H,SS=3000H,31000H=20H,31001H=60H,33000H=50H,33001H=60H,說明下列各條指令執(zhí)行后,AX中的內(nèi)容是什么?并說明各條指令中源操作數(shù)的尋址方式。(1) MOV AX,DS (2) MOVAX,2000H(3) MOV AX,SI(4) MOVAX,BP(5) MOV AX,BP+SI【解】(1) AX3000H 寄存器尋址(2) AX4000H 直接尋址(3) AX6020H

23、寄存器間接尋址(4) AX4000H 寄存器間接尋址(5) AX6020H 基址加變址尋址2. 指出下列指令中的非法指令。(1) MOVBX,AL(2) MOV CS,2000H(3) PUSH4567H(4) XCHG VAR1,VAR2(5) ADDAL,148H(6) MOV DS,2000H(7) MOVBH,SI(8) SUB 38H,AL【解】非法指令:(1) MOV BX,ALBX和AL的長(zhǎng)度不一致(2) MOV CS,2000HCS段寄存器不能作目的操作數(shù)(3) PUSH4567H只能將寄存器或存儲(chǔ)單元的內(nèi)容壓入堆棧,不能是立即數(shù)(4) XCHG VAR1,VAR2兩個(gè)存儲(chǔ)單元

24、之間不能直接交換數(shù)據(jù)(5) ADDAL,148H運(yùn)算溢出(6) MOV DS,2000H立即數(shù)不能直接傳送給DS段寄存器(7) MOV BH,SI BH和SI的長(zhǎng)度不一致(8) SUB 38H,AL目的操作數(shù)不能是立即數(shù)3. 若SP=2000H,AX=3355H,BX=4466H,試指出下列指令或程序段執(zhí)行后有關(guān)寄存器的內(nèi)容。 (1) PUSH AX 執(zhí)行后AX=?,SP=? (2) PUSH AXPUSH BXPOP DXPOP CX 執(zhí)行后AX=?,CX=?,DX=?,SP=?【解】(1) 執(zhí)行后AX=3355H,SP=1FFEH(2) 執(zhí)行后AX=3355H,CX=3355H,DX=44

25、66H,SP=2000H4. 請(qǐng)按下面的要求寫出相應(yīng)的匯編指令或指令序列。(1) 將1234H送入DS中。(2) 將5678H與AX中的數(shù)相加,結(jié)果放在AX中。(3) 將DATAX和DATAY相加,其和放在DATAY中。(4) 將AX中的高4位變?yōu)槿?。(5) 將BX中的低2位變?yōu)槿?。(6) 將CX中的D3D7位取反。【解】(1) MOV AX,1234HMOV DS,AX(2) ADD AX,5678H(3) MOV AX,DATAXADD AX,DATAYMOV DATAY,AX(4) ANDAX,0FFFH(5) ORAX,0003H(6)MOV AX,CXAND AX,07HXOR

26、CX,0FFFFHAND CX,0FFF8HADD CX,AX5. 若AL=0FFH,BL=03H,指出下列指令執(zhí)行后標(biāo)志AF、OF、ZF、SF、PF、CF的狀態(tài)。(1) ADDBL,AL(2) INC BL(3) SUBBL,AL(4) NEG BL(5) ANDBL,AL(6) MUL BL(7) CMPBL,AL(8) IMUL BL(9) OR BL,AL(10)XOR BL,BL【解】執(zhí)行后:AFOFZFSFPFCF(1) ADDBL,AL100001(2) INC BL00000不影響(3) SUBBL,AL100001(4) NEG BL100101(5) ANDBL,AL任意值

27、00010(6) MUL BL任意值1任意值任意值任意值1(7) CMPBL,AL100001(8) IMUL BL任意值1任意值任意值任意值1(9) OR BL,AL任意值00110(10) XOR BL,BL任意值001109. 執(zhí)行下列程序段,指出各相關(guān)寄存器的內(nèi)容。MOV AX,0A0BHDEC AXSUB AX,0FFHAND AX,00FFHMOV CL,3SAL AL,CLADD AL,25HXCHG AL,AHPUSH AXPOP BXINC BL【解】各相關(guān)寄存器的內(nèi)容:MOV AX,0A0BH ;AX:0A0BHDEC AX;AX:0A0AHSUB AX,0FFH;AX:0

28、90BHAND AX,00FFH;AX:000BHMOV CL,3;CL:03HSAL AL,CL;AX:0058HADD AL,25H;AX:007DHXCHG AL,AH;AX:7D00HPUSH AX;AX:7D00HPOP BX;BX:7D00HINC BL;BX:7D01H10. 用串操作指令將100H個(gè)字符從2100H處搬到1000H處,并且從中檢索與AL中所存字符相同的存儲(chǔ)單元,并將該單元的內(nèi)容替換成空格,本程序只替換檢索到的第一個(gè)相同的單元。請(qǐng)?jiān)谙铝锌崭裰刑钊牒线m的指令,使程序段完成上述功能。MOV SI,2100H (1) MOV CX,100HCLD (2) MOV DI,

29、1000HMOV CX,100H (3) JNZ K1 (4) MOV DI,20HK1: 【解】(1) MOV DI,1000H(2) REP MOVSB(3) REPNE SCASB(4) DEC DI12. 編程求出AX中存放的16位二進(jìn)制數(shù)中1的個(gè)數(shù),將其存入CL中(若AX=1001010011001011B則將8存入CL)。【解】程序段如下:MOV CX,16XOR BX,BXL1: SHL AX,1;最低位移入CFRCL BL,1;CF移入最低位ADD BH,BLXOR BL,BLLOOP L1MOV CL,BH1. 下列語句在存儲(chǔ)器中分別為變量分配多少字節(jié)?VR1DW9VR2DW

30、4 DUP(?)CONT EQU10VR3DDCONT DUP(?)VR4DB2 DUP(?,CONT DUP(0)VR5DBHOW ARE YOU?【解】VR1:2B ; VR2:8B ; CONT:1B ; VR3:40B; VR4:44B; VR5:12B7. 對(duì)下面程序進(jìn)行注釋,并說明其功能。DATASEGMENTADB123ABCDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,AMOV CX,6MOV AH,2LP:MOV AL,BXXCHG AL,DLINC BXINT 21HLOOP

31、 LPMOV AH,4CHINT 21HCODEENDSEND START【解】注釋如下:DATA SEGMENT;數(shù)據(jù)段開始ADB123ABCDATA ENDS;數(shù)據(jù)段結(jié)束CODE SEGMENT;代碼段開始ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;裝填數(shù)據(jù)段LEA BX,A;傳送變量的地址MOV CX,6MOV AH,2LP: MOV AL,BXXCHG AL,DLINC BXINT 21H ;系統(tǒng)功能調(diào)用,功能號(hào):2 ,;將字符1、2、3、“A”、“B”、“C”送屏幕顯示LOOP LP;CX6,循環(huán)6次MOV AH,4CHINT 2

32、1H;返回DOSCODE ENDS;代碼段結(jié)束END START;源程序結(jié)束程序的功能:顯示從A開始的6個(gè)字節(jié)單元中的字符。11. 分析下列程序,指出運(yùn)行結(jié)果。DATA SEGMENTSUM DW?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV CX,10MOV BX,2LP: ADD AX,BXINC BXINC BXLOOP LPMOV SUM,AXMOV AH,4CHINT 21HCODE ENDSEND START請(qǐng)問:(1) 該程序完成的功能是_。(2) 程序執(zhí)行后,S

33、UM單元的內(nèi)容是_?!窘狻?1) 該程序完成的功能是計(jì)算020的偶數(shù)和。(2) 程序執(zhí)行后,SUM單元的內(nèi)容是110。12. 從ARRAY開始的單元中存有10個(gè)16位無符號(hào)數(shù),試編一完整程序找出其中最小數(shù)并存入MIN單元?!窘狻砍绦虼a如下:DATA SEGMENT;數(shù)據(jù)段開始ARRAYDW0F454H,4540H,0D214H,8354H,8210H, 0A673H,5656H,0021H,0567H,4228HMIN DW ?DATA ENDS;數(shù)據(jù)段結(jié)束CODE SEGMENT;代碼段開始ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;裝

34、填數(shù)據(jù)段LEA BX,ARRAY;傳送變量的地址MOV AX,BXMOV CX,9LP1: INC BXINC BXCMP AX,BXJB CONT1;AX<BX,轉(zhuǎn)移MOV AX,BX ;AX>=BX,AXBXCONT1:LOOP LP1MOV MIN,AXMOV AH,4CHINT 21H;返回DOSCODE ENDS;代碼段結(jié)束END START;源程序結(jié)束13. 從DAT開始的數(shù)據(jù)區(qū)中放有100個(gè)8位的無符號(hào)數(shù),編程統(tǒng)計(jì)其中奇數(shù)的個(gè)數(shù),將結(jié)果存入RESULT單元?!窘狻砍绦虼a如下:DATA SEGMENT;數(shù)據(jù)段開始DATDB26,45,44,32,90,2,1,81,2

35、,120,5RESULT DB ?DATA ENDS;數(shù)據(jù)段結(jié)束CODE SEGMENT;代碼段開始ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;裝填數(shù)據(jù)段LEA BX,DAT;傳送變量的地址XOR AX,AXXOR DX,DXMOV DL,2MOV CX,100LP1:MOV AL,BXDIV DL;余數(shù)在AH中CMP AH,0JE CONT1INC DH;DH用作計(jì)數(shù)器CONT1:INC BX LOOP LP1MOV RESULT,DHMOV AH,4CHINT 21H;返回DOSCODE ENDS;代碼段結(jié)束END START;源程序結(jié)

36、束4. 利用若干2114芯片和2716芯片采用75LS138譯碼,構(gòu)成7K容量的存儲(chǔ)器,要求有5KRAM及2KROM,請(qǐng)?jiān)O(shè)計(jì)電路圖?!窘狻?114芯片為1K×4的存儲(chǔ)芯片,所以每?jī)善瑯?gòu)成一個(gè)1K容量的存儲(chǔ)器。5KRAM需要10個(gè)2114芯片。2KROM需要1個(gè)2716芯片。電路圖如圖6-5所示。其中ROM的地址范圍是:80000H807FFH,RAM的地址范圍是:80800H81BFFH。圖6-5 存儲(chǔ)器連接示意圖1. CPU與外設(shè)交換數(shù)據(jù)的方式有幾種,各有什么特點(diǎn)?【解】CPU與外設(shè)交換數(shù)據(jù)的方式有兩種:程序控制傳遞方式和DMA(直接存儲(chǔ)器存?。﹤鬟f方式,其中程序控制的數(shù)據(jù)傳送分為

37、無條件傳送、查詢傳送和中斷傳送三種。程序控制傳遞方式的特點(diǎn)是,以CPU為中心,數(shù)據(jù)傳送的控制來自CPU,通過預(yù)先編制好的輸入或輸出程序(傳送指令和I/O指令)實(shí)現(xiàn)數(shù)據(jù)的傳送 。這種傳送方式的數(shù)據(jù)傳送速度較低,傳送路徑經(jīng)過CPU內(nèi)部的寄存器,同時(shí)數(shù)據(jù)的輸入輸出的響應(yīng)比較慢。DMA(Direct Memory Access)傳遞方式是一種不需要CPU干預(yù)也不需要軟件介入的高速數(shù)據(jù)傳送方式。由于CPU只啟動(dòng)而不干預(yù)這一傳送過程,同時(shí)整個(gè)傳送過程只由硬件完成而不需要軟件介入,所以其數(shù)據(jù)傳送速率可以很高。4. 什么叫中斷,采用中斷技術(shù)有哪些好處?【解】中斷是外設(shè)隨機(jī)地(指主程序運(yùn)行到任何一條指令時(shí))或程

38、序預(yù)先安排產(chǎn)生中斷請(qǐng)求信號(hào),暫停CPU正在運(yùn)行的程序,轉(zhuǎn)入執(zhí)行稱為中斷服務(wù)的子程序,中斷服務(wù)完畢后,返回到主程序被中斷處繼續(xù)執(zhí)行的過程。CPU與外設(shè)采用中斷技術(shù)交換數(shù)據(jù),可以克服無條件傳遞和查詢傳送的缺點(diǎn),即CPU和外設(shè)只能串行工作。這樣可以提高系統(tǒng)的工作效率,充分發(fā)揮CPU的高速運(yùn)算的能力。5. 什么叫中斷系統(tǒng),它具備哪些功能?【解】計(jì)算機(jī)系統(tǒng)中完成中斷處理過程的軟硬件稱為中斷系統(tǒng)。中斷系統(tǒng)應(yīng)具有以下功能:(1) 能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)和中斷返回當(dāng)有中斷源發(fā)出中斷請(qǐng)求時(shí),CPU能決定是否響應(yīng)此中斷,若接受這個(gè)中斷請(qǐng)求,CPU能在保護(hù)斷點(diǎn)(現(xiàn)行CS:IP值)后,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序,中

39、斷處理完成后能恢復(fù)斷點(diǎn),繼續(xù)執(zhí)行程序。(2) 能實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì)當(dāng)兩個(gè)或多個(gè)中斷源同時(shí)提出中斷請(qǐng)求時(shí),CPU要能根據(jù)各中斷請(qǐng)求的輕重緩急程度,分別處理,即給每個(gè)中斷源一個(gè)優(yōu)先級(jí)別,保證首先處理優(yōu)先級(jí)高的中斷申請(qǐng)。(3) 能實(shí)現(xiàn)中斷嵌套若中斷處理過程中,又有新的優(yōu)先級(jí)較高的中斷請(qǐng)求,且當(dāng)中斷允許時(shí),CPU應(yīng)能暫停正在執(zhí)行的中斷服務(wù)程序,轉(zhuǎn)去響應(yīng)與處理優(yōu)先級(jí)較高的中斷申請(qǐng),待處理結(jié)束后,再返回原先較低的中斷處理過程。6. CPU在什么情況下才響應(yīng)中斷,中斷處理過程一般包括哪些步驟?【解】CPU每執(zhí)行完一條指令后,當(dāng)查詢到有中斷請(qǐng)求且此時(shí)CPU允許中斷(即中斷允許標(biāo)志位IF=1,開中斷),CPU才

40、能響應(yīng)中斷。CPU中斷處理的具體過程一般包括以下步驟:中斷請(qǐng)求、中斷判優(yōu)、中斷響應(yīng)、中斷處理及中斷返回。7. 何謂非屏蔽中斷和可屏蔽中斷?【解】何謂非屏蔽中斷和可屏蔽中斷都是硬件中斷(也稱外部中斷)。非屏蔽中斷通過CPU的NMI端引入,它不受內(nèi)部中斷允許標(biāo)志位IF的屏蔽,一般在一個(gè)系統(tǒng)中只允許有一個(gè)非屏蔽中斷??善帘沃袛嗍峭ㄟ^CPU的INTR引入 ,它受內(nèi)部中斷允許標(biāo)志IF的控制。只有在IF=1時(shí),CPU才能響應(yīng)中斷源的請(qǐng)求。當(dāng)IF=0時(shí),中斷請(qǐng)求被屏蔽。通常在一個(gè)系統(tǒng)中,通過中斷控制器(8259A)的配合,可屏蔽中斷可以有一個(gè)或多個(gè)。10. 簡(jiǎn)述8086/8088CPU的中斷結(jié)構(gòu)及中斷處理過

41、程?!窘狻?086/8088CPU可以處理256種類型的中斷源,這些中斷源可分為硬件中斷和軟件中斷兩大類。CPU響應(yīng)中斷后,把正在執(zhí)行程序的當(dāng)前地址(CSIP)壓入堆棧保存,將中斷服務(wù)程序入口地址送入CSIP,由此開始執(zhí)行中斷服務(wù)程序。在8086系統(tǒng)中,允許引入256種類型中斷源(類型碼為0255),相應(yīng)有256個(gè)中斷服務(wù)程序首址。存放中斷地址的一段內(nèi)存空間稱中斷向量表。斷類型碼與中斷向量所在位置(中斷向量地址指針)之間的對(duì)應(yīng)關(guān)系為:中斷向量地址指針=4*中斷類型碼內(nèi)部中斷的處理過程:(1)CPU取得中斷類型碼,將類型碼乘4作為向量表指針。(2)把CPU 標(biāo)志寄存器入棧,保護(hù)各個(gè)標(biāo)志,此操作類

42、似于PUSHF指令。(3)清除IF和TF標(biāo)志,屏蔽新的INTR中斷和單步中斷。(4)保存斷點(diǎn),即把斷點(diǎn)處IP和CS壓棧,先壓CS值后壓IP值。(5)從中斷向量表中取中斷服務(wù)程序入口地址分別送入IP和CS中。(6)按新的地址執(zhí)行中斷服務(wù)程序。CPU執(zhí)行中斷服務(wù)程序的最后一條中斷返回指令I(lǐng)RET后,返回到斷點(diǎn)處繼續(xù)執(zhí)行原程序。11. 8086/8088的中斷系統(tǒng)分哪幾類,其優(yōu)先順序如何?【解】8086/8088CPU可以處理256種類型的中斷源,這些中斷源可分為硬件中斷和軟件中斷兩大類。硬件中斷是由外部硬件產(chǎn)生的,它又可分為非屏蔽中斷和可屏蔽中斷。一般在一個(gè)系統(tǒng)中只允許有一個(gè)非屏蔽中斷,可屏蔽中斷

43、可以有一個(gè)或多個(gè)。軟件中斷是CPU根據(jù)軟件的某些指令或者軟件對(duì)標(biāo)志寄存器某個(gè)標(biāo)志位的設(shè)置而產(chǎn)生的。8086/8088系統(tǒng)中,中斷優(yōu)先權(quán)排隊(duì)次序從高到低為:除法出錯(cuò)、指令中斷、溢出中斷、非屏蔽中斷、可屏蔽中斷、單步中斷。12. 中斷入口地址表的功能是什么?已知中斷類型碼分別為84H和0FAH,它們的中斷入口在中斷入口地址表的什么位置上?【解】CPU響應(yīng)中斷后,把正在執(zhí)行程序的當(dāng)前地址(CS:IP)壓入堆棧保存,將中斷服務(wù)程序入口地址送入CS:IP,由此開始執(zhí)行中斷服務(wù)程序。在8086系統(tǒng)中,允許引入256種類型中斷源(類型碼為0255),相應(yīng)有256個(gè)中斷服務(wù)程序首址。這些地址就存放在中斷入口地

44、址表中。中斷類型碼分別為84H的中斷源所對(duì)應(yīng)的中斷服務(wù)程序首址存放在00000210H(4×84H210H)開始的4個(gè)單元中。中斷類型碼分別為0FAH 的中斷源所對(duì)應(yīng)的中斷服務(wù)程序首址存放在000003E8H(4×0FAH3E8H)開始的4個(gè)單元中。17. 試編寫出只有一片8259A的8086系統(tǒng)中8259A的初始化程序。8259A的地址為02C0H和02C1H,要求:(1)中斷請(qǐng)求采用電平觸發(fā)。(2)IRQ請(qǐng)求的中斷類型是16。(3)采用緩沖器方式。(4)采用普通的EOI命令?!窘狻縄CW1的內(nèi)容:1BHA0 D7 D6D5D4D3D2D1D0000011011偶地址80

45、86/8088系統(tǒng)無效,置0。識(shí)別位電平觸發(fā)調(diào)用地址間隔為8單片8086/8088系統(tǒng)必須設(shè)ICW4。ICW2的內(nèi)容:10H A0 D7 D6D5D4D3D2D1D0100010000奇地址中斷類型自動(dòng)填入ICW4的內(nèi)容:0DHA0 D7 D6D5D4D3D2D1D0100001101奇地址未定義,置0。全嵌套方式緩沖方式/主正常EOI結(jié)束工作于8086/8088系統(tǒng)根據(jù)系統(tǒng)要求初始化編程如下:MOV AL,1BH ;設(shè)置ICW1為電平觸發(fā),單片8259A,需要ICW4。MOV DX,02C0HOUT DX,ALMOV AL,10H;設(shè)置ICW2,類型碼為10H(IR0)。MOV DX,02C

46、1HOUT DX,ALMOV AL,0DH;設(shè)置ICW4,全嵌套方式,緩沖方式,正常EIOOUT DX,AL1填空題(1) 8255A內(nèi)部包括兩組控制電路,其中A組控制_的工作方式和讀寫操作,B組控制_的工作方式和讀寫操作。(2) 8255A的端口A工作于方式2時(shí),使用端口C的_位作為與CPU的外部設(shè)備的聯(lián)絡(luò)信號(hào)。(3) 當(dāng)8255A的端口A和端口B均工作于方式1輸出時(shí),端口C的PC4和PC5可以作為_使用。(4) 8255A的端口A工作于方式2時(shí),端口B可以工作于_。(5) 8255A中,可以按位進(jìn)行置位/復(fù)位的端口是_,其置位/復(fù)位操作是通過向_口地址寫入_實(shí)現(xiàn)的。(6) 8251A工作在

47、同步方式時(shí),最大波特率為_;工作在異步方式時(shí),最大波特率為_。(7) 8251A工作在異步方式時(shí),每個(gè)字符的數(shù)據(jù)位長(zhǎng)度可以是_,停止位長(zhǎng)度可以是_。(8) 8251A從串行輸入線接收到一個(gè)字符后,將信號(hào)_置為有效。(9) 8251A工作在同步方式時(shí),同步檢測(cè)引腳SYNDET可以作為輸入或者輸出信號(hào)使用。若工作在外同步方式,該引腳作為_;若工作在內(nèi)同步方式,該引腳作為_。(10) 8253工作于方式0下,控制信號(hào)GATE變成低電平后,對(duì)計(jì)數(shù)器的影響是_?!窘狻?1) 端口A、端口C高4位(PC7PC4)端口B、端口C低4位(PC3PC0)(2) PC3PC7(3) (端口A的選通輸入信號(hào))、IB

48、FA(輸入緩沖器滿信號(hào))(4) 方式0或方式1(5) 端口C;控制;控制字(6) 64 Kbit/s ;19.2 Kbit/s(7) 5、6、7、或8位 ;1個(gè)、1.5或2位(8) RXRDY(9) 輸入端;輸出端(10) 計(jì)數(shù)暫停2已知8255A的端口A、B、C和控制口地址分別為120H、122H、124H和126H,試按下列要求設(shè)計(jì)初始化程序:(1) 將端口A和端口B設(shè)置成方式0,端口A、端口C作為輸出口,端口B作為輸入口。(2) 將端口A設(shè)置成方式2,端口B設(shè)置成方式1,端口B作為輸出口。(3) 將端口A和端口B均設(shè)置成方式1的輸入狀態(tài),且PC6、PC7設(shè)置成輸出位?!窘狻?1) 方式選

49、擇控制字的內(nèi)容:82H D7 D6D5D4D3D2D1D010000010控制字標(biāo)志端口A設(shè)置成方式0端口A為輸出口端口C(74)作為輸出口端口B設(shè)置成方式0端口B為輸入口端口C(30)作為輸出口初始化程序:MOV AL,82H ;方式選擇控制字送ALOUT 126H,AL ;方式選擇控制字輸出給8255A控制端口(2) 方式選擇控制字的內(nèi)容:0C4H D7 D6D5D4D3D2D1D011×××10×控制字標(biāo)志端口A設(shè)置成方式2端口B設(shè)置成方式1端口B為輸出口初始化程序:MOV AL,0C4H ;方式選擇控制字送ALOUT 126H,AL ;方式選擇控制字輸出給8255A控制端口(3) 方式選擇控制字的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論