微型計(jì)算機(jī)原理與接口技術(shù)周荷琴著課后答案_第1頁
微型計(jì)算機(jī)原理與接口技術(shù)周荷琴著課后答案_第2頁
微型計(jì)算機(jī)原理與接口技術(shù)周荷琴著課后答案_第3頁
微型計(jì)算機(jī)原理與接口技術(shù)周荷琴著課后答案_第4頁
微型計(jì)算機(jī)原理與接口技術(shù)周荷琴著課后答案_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

什么是馮·

·1945年提出了存儲(chǔ)程序的概念和二進(jìn)制原理,利用這種概念和原理設(shè)計(jì)的電子計(jì)算機(jī)系統(tǒng)統(tǒng)稱為馮·諾依曼機(jī)。早期的馮· I/O之間傳送數(shù)微型計(jì)算機(jī)由微處理器、存儲(chǔ)器、輸入/以微型計(jì)算機(jī)為主體,配上外部輸入/輸出設(shè)備及系統(tǒng)軟件就構(gòu)成了微型計(jì)算機(jī)系統(tǒng)。ALU、累加器和寄存器組、指令指針寄存IP、段寄存器、標(biāo)志寄存器、時(shí)序和控制邏輯部件、內(nèi)部總線等組成。算術(shù)邏輯部件 主要完成算術(shù)運(yùn)算及邏輯運(yùn)算IP存放要執(zhí)行的下一條指令的偏移地址,順序執(zhí)行指令時(shí),每取一條 標(biāo)志寄存器flags存放算術(shù)與邏輯運(yùn)算結(jié)果的狀態(tài)。分析,發(fā)出相應(yīng)的控制信號(hào)和時(shí)序,將控制信號(hào)和時(shí)序送到微型計(jì)算機(jī)的相應(yīng)部件, 答:計(jì)算機(jī)系統(tǒng)由硬件(Hardware)和軟件(Software)制的各種程序,一般稱為計(jì)算機(jī)的軟件系統(tǒng) 運(yùn)算

外部設(shè) 輸入設(shè)

軟件系 服務(wù)性程答:(1)面向系統(tǒng)的單總線結(jié)構(gòu)(2)CPU的雙總線結(jié)構(gòu)8086PentiumII808620220=1MB什么是PCI總線?什么是PCI總線是微處理機(jī)機(jī)箱內(nèi)的底板總線即系統(tǒng)總線的一種,是用來連接構(gòu)成微處理機(jī)的PCI全稱為PeripheralComponentInterconnect,即外設(shè)互連局部總線,是的32/64位標(biāo)準(zhǔn)總線。數(shù)據(jù)傳輸速率為 132MB/s,適用于Pentium微型機(jī)。

IntelPCIPCIUSB總線,通用串行總線(UniversalSerialBus),屬于外部總線的一種,用作微處理機(jī)USB1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出的,不過直到近期,才得到廣泛應(yīng)用,已成為目前電腦USB接口支持設(shè)備的即插即用和熱插拔功能,具有傳輸速度快,使用方便,連接靈活,獨(dú)(1)DB(2)DQ (3)DW(4)DD答:(1)在匯編語言中定義字節(jié)數(shù)據(jù)。在匯編語言中定義4將下列二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。1)1101.01B(2)(3)101011.0101B(4)111.0001B答:(1)13.25 AC.DCH(4)FAB.3H(3)172.859375( 答:(

將下列十進(jìn)制數(shù)轉(zhuǎn)換為8(1)+32 (3)+100 答:(1)[+32]原=[+32]反=[+32補(bǔ)=00100000B(2)[-12]原=10001100B12]反=11110011B12]補(bǔ)(3)[+100]原=[+100]反=[+100](4)[-92]原=11011100B92]反=10100011B92]補(bǔ)BCD碼。()102(2)44(3)301答:(1)[102]壓縮BCD=00000001[102]BCD=0000000100000000(2)[44][44]非壓縮BCD=00000100(3)[301]BCD=00000011[301]BCD=0000001100000000(4)[1000]BCD=00010000[1000]非壓縮BCD=000000010000000000000000(1)10000000B(2)00110011B(3)10010010B答:(1)看作原碼時(shí)真值為-0,看作反碼時(shí)真值為-127,看作補(bǔ)碼時(shí)真值為--18-109--9-118-0尾數(shù)100000000000000001111111100000000000000(2)-10.625=-1010.101B=-1.01010123127+3=130=10000010B01010100000000011000001001010100000000127+6=133=10000101B100100010000000010000101100100010000000(4)-1200=-10010110000B=-1.0010110000210×,符號(hào) 127+10=137=10001001B001011000000000110001001001011000000000(1)010000000110000000000000(2)101111111000000000000000(3)010000000100100000000000答:(1)1.11(2)-1.0×20=-1B=-(3)1.10018086CPU答:8086CPU內(nèi)部由執(zhí)行單元EU和總線接口單 BIU組成主要功能為:執(zhí)行單元EU負(fù)責(zé)執(zhí)行指令。它由算術(shù)邏輯單元 16位標(biāo)志寄存器(FLAGS)、EU控制電路等組成。EU在工作時(shí)直接從指令流隊(duì)列中取指令代碼,對(duì)其譯碼后產(chǎn)生完成指令所需要的控制信息。數(shù)據(jù)在ALU中進(jìn)行運(yùn)算,運(yùn)算結(jié)果的特征保留在標(biāo)志寄存器FLAGS中。BIUCPUI/O8086CPU8086CPU416位寄存器,分別是通用寄存器組、指針和變址寄存器、段寄存416位通用寄存器AXBXCX、DX,用以存放普通CXDX用于乘除法指令等。指針和變址寄存BPSP、SIDI器CS、DS、SS、ES指令指針寄存器IP標(biāo)志寄存 用來存放運(yùn)算結(jié)果的特征8086CPU8088CPU8088CPU8086CPU:(1)8088指令隊(duì)列長(zhǎng)度 4個(gè)字節(jié),8086是6個(gè)字節(jié)(2)8088BIU8EU1616位數(shù)的存//8086BIUEU內(nèi)數(shù)據(jù)總線寬度都是16(3)80888AD7~AD0168808816(4)8088IO/MM/IO(5)80888BHESS0DTRIO/M一起決 SF、ZF、OFAFPFCFIFDFTF,對(duì)可屏蔽中斷、字符串操作指針變換方向和單步運(yùn)行起控制物理地址:指存儲(chǔ)器中存儲(chǔ)單元的實(shí)際地址編碼,是一種絕對(duì)地址, CPU訪問存器的實(shí)際尋址地址,對(duì) 8086系統(tǒng),地址范圍 16位二進(jìn)制數(shù),程序設(shè)計(jì)時(shí)采用 =段基址×16+偏移地址。 0和1組成的一串代系統(tǒng)總線:微處理機(jī)機(jī)箱內(nèi)的底板總線,用來連接構(gòu)成微處理機(jī)的各個(gè)插件板, EISAPCI要完成下述運(yùn)算或控制,用什么標(biāo)志位判別?其值是什么1)(2) (4)采用偶校驗(yàn)方式,判定是否要補(bǔ) SF,SF=1OF,OF=1CF,CF=1為溢出PF,PF=1對(duì)有符號(hào)數(shù):無溢出時(shí)(OF=0)ZF=1ZF=0SF=0,則被減數(shù)大;如ZF=0且SF=1,則減數(shù)大;有溢出時(shí)(OF=1),如SF=1,則被減數(shù)大;如SF=0ZF=1CF=0CF=1,則減808680861MB的存儲(chǔ)空間分成兩個(gè)存儲(chǔ)體:偶地址存儲(chǔ)體和512KB。使用

BHE

A0=0時(shí),選中偶地址存儲(chǔ)體,與數(shù)據(jù)總線 當(dāng)BHE=0時(shí),選中奇地址存儲(chǔ)體,與數(shù)據(jù)總線高 8位相連,從高8位數(shù)據(jù)總線讀/寫當(dāng)A0=0BHE=0時(shí),同時(shí)選中兩個(gè)存儲(chǔ)體,讀/用偽指令DB在存儲(chǔ)器中存儲(chǔ)ASCII碼字符串“Whattimeisit?”。并畫出內(nèi)存分布圖。答:STR DB‘Whattimeisit?,’’$’ ‘‘‘‘t‘t‘i‘‘‘i‘‘i‘t’‘‘16(1)1234H(2)A122H(3)B100H答:NUMDW1234H,A122HB100H (1)1000H(2)1234H(3)2300H(4)E000H(5)AB00H(根據(jù)下列CS:IP(1)CS:IP=1000H:2000H(2)CS:IP=2000H:(3)CS:IP=1A00H:B000H(4)CS:IP=3456H:AB09H答:(1)12000H(2)21000H (4)3F069H(1)DS=1000H,DI=2000H(3)DS=A000H,BX=1000H答:(1)12000H 若當(dāng)前SS=3500H,SP=0800H,說明堆棧段在存儲(chǔ)器中的物理地址,若此時(shí)入棧 10個(gè)字節(jié),SP內(nèi)容是什么?若再出棧 6個(gè)字節(jié),SP為什么值?答:物理地址:35000H~35800H。入棧10個(gè)字節(jié)后SP為7F6H。再出 6個(gè)字節(jié)后1EE5H2A8CHDS=7850H,數(shù)據(jù)存放的偏移地3121H285AH。試畫圖說明它們?cè)诖鎯?chǔ)器中的存放情況。若要讀取這兩個(gè)字,需1EE5H=78500H+3121H=7B621H,為奇數(shù),故若要讀取這個(gè)字,需要2A8CH=78500H+285AH=7AD5AH,為偶數(shù),故若要讀取這個(gè)字,只MMMM64Kdebugr-AX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPONC寫出狀態(tài)標(biāo)志OF、SFZFCF答:(1)31FF0H21F00H說明80868086芯片中設(shè)計(jì)了兩種工作模式,即最小模式和最大最小模式用于單機(jī)系統(tǒng),系統(tǒng)中所需要的控制信號(hào)全部 8086直接提供;最大模式于多處理機(jī)系統(tǒng),系統(tǒng)中所需要的控制信號(hào)由總線控制 8288提供8086系統(tǒng)中為什么要用地址鎖存器?8282地址鎖存器與CPU8086CPU的地址引腳和數(shù)據(jù)引腳分時(shí)復(fù)用,為了保證在總線操

208282的DI0~DI7分別

8282,其中OE的 相連,第三

CPU8282

ALE與CPUAD16~AD19DI4CPUBHE哪個(gè)標(biāo)志位控制CPUINTRIF,中斷允許標(biāo)志,IF=1時(shí),允許可屏蔽中斷,IF=0什么叫總線周期?在CPU/答:CPU完成一次存儲(chǔ)器訪問 I/O端口操作所需要的時(shí)間稱為一個(gè)總線周期,由幾 狀態(tài)組成。在讀/寫總線周期中,數(shù)據(jù) 8284答:OSC:振蕩器輸出信號(hào),是內(nèi)部振蕩電路的 在PC/XT中,其頻率為14.318MHzCLKOSC4.77MHz1/38086CPUPCLKCLK2.38636MHz,TTL1/2,PC/XT機(jī)的外設(shè)使用。8086CPU 8086CPU80868086CPUI/O182843828228286(1)MOVAX (2)MOVCL, (3)MOVBXMOV5[BX], (5)MOV[BP+100H],AX(6)MOV[BX+DI]MOVDX,ES:[BX+SI](8)MOVVAL[BP+DI],(9)INAL (10)MOVDS,答:(1)立即數(shù),寄存器(2)立即數(shù),寄存 (7)(8) 已知:DS=1000H,BX=0200H,SI=02H,內(nèi)存10200H~10205H單元的內(nèi)容分別 2AH,3CH,46H,59H,6BH。下列每條指令執(zhí)行完后AX(1)MOVAX (2)MOVAX (3)MOVAX(4)MOVAX (5)MOVAX, (6)MOVAX,答:(1)0200H(2)2A10H(4)5946H DS=1000H,ES=2000H,SS=3500H,SI=00A0HDI=0024H,BX=0100HVAL0030H,試說明下列源操作數(shù)字段的尋址方式是什么?(1)MOVAX (2)MOVAX,VAL(3)MOVAX(4)MOVAX,ES:[BX](5)MOVAX, (6)MOVAX(7)MOVAX,[BP](8)MOVAX(9)MOVAX (10)MOVAX答:(1)10100H(2)10030H(3)(4)20100H(5),100A0H(6)(7)35200H(8)(9)10154H(10)(1)MOVAL,CL(2)MOVDX,CX(3)MOV[BX+100H],3150H:(1)10001010(2)10001011(3)1100011110000111000000000000000101010000DATASEGMENTADB$,10HBDB‘COMPUTER’CDW1234H,0FFHDDB5DUP(?)EDD MOVAL,AMOVDX,XCHGDL, BX,OFFSETB CX,3[BX] BX, SI, DI,答:MOVAL,A MOVDX,C XCHGDL,A DL=24H,A=34H BX,OFFSETB CX, BX, SI, DS=1200H, DI, ES=1200H,指出下列指令中哪些 的,在什么地方(1)MOVDL (2)MOV8650H (3)MOVDS(4)MOV[BX],[1200H](5)MOVIP,0FFH(6)MOV[BX+SI+3](7)MOVAX,[BX][BP](8)MOVAL,ES:[BP](9)MOVDL(10)MOVAX,OFFSET0A20H(11)MOVAL,OFFSET(12)XCHGAL,50H(13)INBL,05H(14)OUTAL答:(1)(2)段寄存器不能用立即 (4)兩個(gè)內(nèi)存元不能直接送數(shù)(5)IP不能用指令直接修 與SI/DI搭(8)正確 與BX/BP搭配(10)OFFSET 16位, 度(12)立即數(shù)不能用 不(13)IN必用AL/AX(14)操作數(shù)序反向;地 8已知當(dāng)前數(shù)據(jù)段中有一個(gè)十制數(shù) 0~9的7段代表,其數(shù)依 ,30H,19H,12H,02H,78H,00H,18H。要求用 指令將十制 成相7段代 BX寄存器中,寫出相的程序段。答:DATASEGMENTTABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18HDATAENDSMOVAL,MOVBX,OFFSETTABLEXLATTABLEMOVCL,ALMOVAL,7XLATTABLEMOVBL,ALMOVBH,已知當(dāng)前SS=1050H,SP=0100H,AX=4860H,BX=1287H,用示意表示行下列指令程中,堆中的內(nèi)容和堆指SP是怎 PUSHAXPUSHBXPOPBXPOP答:(1)

(2)行PUSHAXSP-SP-(3)行PUSHBX(4)行POPBXSP-SP-(5)行POPAXSP-(1)ADDAL, (2)ADCBX

(3)SUBAX(4)DEC (5)NEG (6)INC(7)MUL (8)DIV答:(1)AL+DH→AL(2)BX+CX+CF→BX(3)AX-2710HBX-1→ (5)0-CX (6)BL+1(7)AX*BX→DX,AX( ALAX=2508H,BX=0F36H,CX=0004H,DX=1864HCF等于什么?(1)ANDAH (2)ORBL, (3)NOT(4)XORCX,0FFF0H(5)TESTDH,0FH(6)CMPCX(7)SHRDX,CL(8)SARAL,1(9)SHLBH,CL(10)SALAX,1(11)RCLBX,1(12)RORDX,CL答:(1)AX=0408H,CF=0(2)BX=0F36H(3)AX=0DAF7H,CF不(4)變(5)DX=01864H,CF=0(6)(7)DX=0186H,CF=0(8)AX=2504H(9)BX=0F036H,CF=0(10)AX=4A10H(11)BX=1E6C/1E6DH,CF=0(12)DX=4186HDATASTRINGDB‘ThePersonalComputer& DATAGET_CHAR’TheComputer相’AL1,否則置0BL寄存器中。檢查該字符串是否有’&,’ CAPS開始的單元中,其余字符傳到 開始的單元中。然后將數(shù)據(jù)段中存儲(chǔ)上述字符串的單元 LEASI,STRINGLEADI,GET_CHARMOVCX,26REPSTRING1DB‘ThecomputerMOVAL,1LEALEADI,STRING1MOVCX,12REPZCMPSBJZSKIPMOVAL,0SKIP:MOVSUBMOVAX,DATAMOVES,AXMOVAL,'&'LEADI,STRINGMOVCX,26NEXT:REPNEJZFINDJMPEXIT MOVBYTEPTR[DI-1],''JCXZEXITJMPLEALEADI,CAPSLEABX,CHARTMOVCX,26 MOVAL,CMPAL,’A’JBOTHERCMPAL,’Z’JAOTHERMOVES:[DI],ALINCDIJMPSKIPOTHER:MOVES:[BX],ALINC MOVBYTEINCSILOOPNEXTAXDXAX中的內(nèi)容不被破壞,DX‘1’的個(gè)數(shù)是多少。答::MOVPUSHAXMOVDX,0MOVCX,16NEXT:SHLJNCSKIPINCBLSKIP:RCRLOOPNEXTSTOP:POPAX(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N0278H,PROG_F3400H:0ABCH(1)JMP(2)JMP(3)JMP(4)JMPFAR(5)JMPDWORDPTR如將上述指令中的操作JMP改成CALL,每條指令行完后,程序向何 行?并畫 中的內(nèi)容和堆指如何化。答:(將操 JMP改成 指令度 3,IP=0100H+3=0103H,入 指令度 2,IP=0100H+2=0102H,入5000H:0000H 指令度 2,IP=0100H+2=0102H,入 指令度 5,IP=0100H+5=0105H,入 指令 2,IP=0100H+2=0102H,LOOPNEXT(2)LOOPENEXT(3)LOOPNEAXBX,CX,DXSTART:MOVMOVBX,02HMOVDX,03HMOVNEXT:INCADDBX,AXSHRDX,1(答:(1)AX=05HBX=10H AX=02HBX=04HCX=03HAX=03HBX=07HCX=02H某班有7個(gè)同學(xué)英成低于80分,分?jǐn)?shù)存在ARRAY數(shù)中, 程完成以下工作:(1)每人加5分,果存到NEW數(shù)中(2)把分存到SUM單元中 DATASEGMENT DB7 DW0DATAENDSMOVAX,DATAMOVDS,AXLEALEADI,NEWMOVCX,7LEASI,MOVCX,7NEXT1:MOVAL,[SI]MOVAH,ADCSUM,AXINCSILOOP3答:中斷向量表用來存放中斷服務(wù)程序的入口地址 8086的256類中斷的入口地址要占1K字節(jié),位于內(nèi) 00000H~003FFH的區(qū)域內(nèi)。中斷向量表 0000CH~0000FH用于類320485:0016H00008H 0040H240BH,0042HD169H,試問:()?答:(80860~4執(zhí)行除法指令時(shí),若除數(shù) 0或所得商超過寄存器能容納的范圍,則自動(dòng)產(chǎn)生類 類型1若CPU的單步標(biāo)志 1中斷。類型2:不可屏蔽中斷NMI當(dāng)8086的NMI 2中斷。類型3:斷點(diǎn)中斷 3中斷。類型4:溢出中斷若溢出標(biāo)志OF=1,則可由溢出中斷指令I(lǐng)NTO產(chǎn)生類型4A1DW23HA2DB3DUP(?),0AH,0DH,‘$’A3DD5DUP(1234H,567890H)A4DB4DUP(3DUP(1, ’ABC’A14A26個(gè)字節(jié)A340個(gè)字節(jié)A460個(gè)字節(jié)MOVAX,00FFHAND1122H+3344HMOVAL,15GE1111BMOVAX,00FFHLE255+6/5ANDAL,50MOD4 AX,0F00FHAND1234OR答:(1)將0066H將0FFH傳送給將0FFFFH傳送給ANDAL AX,BUFDB ’ABUFDB EQUABUF-求L的值為多少?L=6 DW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PLENTHPAR0PLENTH$=2+16+4=22$-PAR=22PLENTH的22。PLENTH$$PLENTH所在行的PLENTHPAR之間定義的變量所占的字節(jié)個(gè)數(shù)。對(duì)于下面的數(shù)據(jù)定義,各條MOVDA1DBDA2DW10DUP(?)DA3DB‘MOVAX,TYPEMOVBX,SIZEMOVCX,LENGTHAH AL,5FHTESTAL,80H MOVAH,0 MOVAH, 答:討論從端口5FH輸入的數(shù)據(jù)最高位的情況。若最高位為 1,則AH=0;若最高位為0,則AH=0FFH。利用中斷調(diào)用產(chǎn)生5利用中斷調(diào)用,在屏幕上顯示1~9答:(1)可以利用中斷類型1CH來處理,因?yàn)樵谙到y(tǒng)時(shí)鐘的中斷處理程序中,時(shí)鐘中斷一次要調(diào)用一次INT1CH,即每隔55ms,產(chǎn)生一次1CH 中斷,要產(chǎn)生5秒延時(shí),只要中斷5s/55ms=91次即可。又因 1CH中斷處理程序中只有一條IRET指令,故可將用戶的程序代替原有的INT1CHDATACOUNTDW ;MESSDB‘5sdelayed! ’,0AH,0DH,’$’DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATA,ES:DATASTART:PUSHDSMOVPUSHAXMOVAX,DATAMOVDS,AXMOV ;MOVAH,35HINT21HPUSH ;PUSHBXPUSHMOVDX,OFFSETDELAY MOVAX,SEGDELAYMOVDS,AXMOV MOVAH,25HINT21HPOPDS ANDAL,0FEHOUT21H,ALMOV MOV DECSIJNZA2DECDIJNZA1POPDXPOPMOVAL,1CHMOVAH,25HINT21H DELAYPROCNEARPUSHDSPUSHAXPUSHCXPUSHDXMOVAX,DATAMOVDS,AXDECJNZMOVDX,OFFSETMOVAH,09HINT21HMOV POPDXPOPCXPOPAXPOPDSDELAYENDPCODEENDSEND

;5;5(2)可以利用INT1AH,讀取當(dāng)前時(shí)間的1/100CODESEGMENTASSUMESTART:MOVINT1AH ;讀取當(dāng)前時(shí)間CH:CL=時(shí):分MOVAL,DL ;DH:DL=秒:1/100秒MOVAH,0MOVBL,9DIVBLINCAHMOVDL,AHADDDL,30HMOVAH,2INT21HMOVAH,4CHINT21HCODEENDAXBCDBCD碼轉(zhuǎn)換成二進(jìn)答:(1)將AX中的二進(jìn)制數(shù)先后除以1000,100和10,每次除法所得的商,即是 BCD數(shù)AX=輸出參數(shù):CF=0,則AX=4 位壓縮型BCD碼。CF=1,則要轉(zhuǎn)換的數(shù)大于 9999,AX不CXDXB2TOBCDPROCCMPAX,9999 ;AX>9999,則CF1JBETRANJMPEXITTRAN:PUSHCXPUSHSUB;DXMOVDIVXCHG;商在 中,余數(shù)在中MOVSHLMOV;DX左移4DIVADDMOVCL,4SHL;百位數(shù)加 DL中,左移4XCHG;余數(shù)保留 ALSUBMOV DIVADD ;十位數(shù)加到DLDX左移4MOVCL,4SHLADD MOV ;結(jié)果送到AXPOPDXPOPB2TOBCD(2)AX4BCD1000,100,101,然后求和即得。子程序BCDTOB2AX=4位壓縮BCDAX=BXCXDXBCDTOB2PROCPUSHBXPUSHCXPUSHDXMOVBX,AXMOVCL,4ROLAX,CLANDMOVCX,1000 1000MULCXMOVDX,AXMOVAX,BXMOVCL,8ROLAX,CLANDMOVCL,100 100MULCLADDDX,AXMOVAX,BXMOVCL,4SHRAX,CLANDAX,000FHMOV ;乘以MULCLADDDX,AXANDBX,000FHADDDX,BXMOVAX,DXPOPDXPOPCXPOPBXBCDTOB2ASCIIASCII字符顯示輸出答:(1)將AX中兩位ASCII碼先轉(zhuǎn)化成數(shù)字,然后 子程序名:ASCIITOB2AX=2ASCII碼AX=轉(zhuǎn)換后二進(jìn)制數(shù)BX,CX,DXASCIITOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXSUBAH,30HMOVAL,AHMOV ;乘以MULCLMOVDX,AXMOVAX,BXSUBAL,30HMOVAH,0ADDAX,DXPOPDXPOPCXPOPBXASCIITOB2(2)2DOS功能調(diào)用顯示AX=2ASCII碼BXDISPLAYPROCPUSHBXPUSHDXMOVBX,AXMOVDL,AHMOVAH,2INT21HMOVAX,BXMOVDL,ALMOVAH,2INT21HPOPDXPOPBXDISPLAYASCIIASCIIAX4輸出參數(shù):DX,AX:4位ASCII碼,DX高2位,AX 低2位使用寄存器:BX,CX,DXHEXTOASCPROCPUSHBXPUSHCXPUSHDXMOVBX,AXMOV ;轉(zhuǎn)換AH高 SHRAX,CLANDAX,0F00HADDAH,30HCMPAH,3AHJBA1ADD MOVMOV ;轉(zhuǎn)換AH低 ANDAX,0F00HADDAH,30HCMPAH,3AHJBA2ADD MOVMOV ;轉(zhuǎn)換AL高 MOVCL,4SHRBL,CLADDBL,30HCMPBL,3AHJBA3ADD MOVAND ;轉(zhuǎn)換AL低 ADDBH,30HCMPBH,3AHJBA4ADD MOVAL,BHPOPDXPOPCXPOPBXHEXTOASCDX,AX:4ASCII碼DISPLAYASCPROCPUSHBXPUSHCXMOVBX,DXMOVCX,AXMOVDL,BHMOVAH,02HINT21HMOVDL,BLINT21HMOVDL,CHINT21HMOVDL,CLINT21HMOVDL,’H’INT21HPOPCXPOPBXDISPLAYASC某程序可從鍵盤接收命令(0~5),6P0~P5,答:DATATABLE 6DATAENDSCODESEGMENTASSUMESTART:MOVMOVDS,AXLEASI,TABLEMOVWORDPTR[SI],OFFSETP0MOVWORDPTR[SI+2],OFFSETP1MOVWORDPTR[SI+4],OFFSET

MOVWORDPTR[SI+6],OFFSETP3MOVWORDPTR[SI+8],OFFSETP4MOVWORDPTR[SI+10],OFFSETP5MOVAH,1INT21HSUBAL,30HSHLAL,1MOVAH,0MOVSI,AXJMPMOVAH,4CHINT21HCODEENDSENDSTART在首地址為TABLE的數(shù)組中按遞增次序存放著10016 AX和BL中。 DATASEGMENTTABLEDW100DUP DW?COUNTDW0DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:PUSHDS;設(shè)置返回DOSSUBAX,PUSHMOVAX,MOVDS, ; DS賦BEGIN:MOVCX MOVSI,0NEXT:MOVDX,MOVAX,COMPCMPTABLE[SI], JNEADDRINCDXADDSI,2LOOPADDR:CMPDX JLEMOVCOUNTDXMOVNUMAXDONELOOP MOVCX, ;出現(xiàn)最多的次數(shù)存 MOVAX,NUM (AX)MAINCODEENDSENDDATASEGMENTSTRINGDB'INPUT4HEXNUM:',0AH,0DH,'$' DB10DUP(?)DATACODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVMOVAH,9INT21HMOVBP,4MOVDX,0CONT:CL,4SHL MOVINT21HCMPAL,'0'JBD1CMPAL,'F'JAD1CMPAL,'A'JBA1SUBAL,7 SUBAL,30HMOVAH,0ADDDX,AXDECBPJNZCONTMOVSI,0MOVAX,DXMOVDX,0

;輸入4位十六進(jìn)制 ;將DX轉(zhuǎn)換成十進(jìn)制數(shù),再轉(zhuǎn)換 ASCII碼—MOV DIVADDDL,30HMOVNUM[SI],DLINCSICMPJZEXITMOVDX,0JMPD2EXIT:MOVMOVAH,2INT21HMOVDL,0DHINT21H DECMOVMOVAH,2INT21HJNZD3MOVAH,4CHINT21HCODEENDSENDSTART

AXASCII字符串表示的十進(jìn)制數(shù)。答:13題輸入過程和輸出過程去掉即得。DATA DB10DUP(?) ;轉(zhuǎn)換后ASCII碼按倒序存放于NUMDATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVMOVAX,MOVSI,0 AX轉(zhuǎn)換成十進(jìn)制數(shù),再轉(zhuǎn)換成 ASCII碼—>NUMMOVDX,0MOV DIVADDDL,30HMOVNUM[SI],DLINCSICMPAX,0JZEXITMOVDX,0JMPD2EXIT:MOVINT21HCODEENDSEND從鍵盤輸入20DATANUMDW20DUP(?)ASCDB10DUP(?)DATAENDSCODESTART:MOVAX,DATAMOVDS,AXMOVCX,20MOVBX,10MOVSI,0MOVBP,0BEGIN:MOV MOVAH,1INT21HCMPAL,''JZA2CMPAL,0DHJZA2CMPAL,'-'JZA3JMPA4 MOVJMPA1 PUSHAXMOVAX,DXMULBXMOVDX,AXPOPAXSUBAL,30HMOVAH,0ADDDX,AXJMPA1 CMPBP,1JNZA5NEGDX MOVBP,0ADDSI,2

;存放20;輸出時(shí)暫時(shí)保存每一個(gè)數(shù) ASCII20個(gè)有符號(hào)數(shù)(十進(jìn)制),NUM-LOOPMOV MOVAH,2INT21HMOVDL,0AHINT21HMOV ; 20個(gè)有符號(hào)數(shù)按由小到大順序排MOV ;采用冒泡法,排序后依然存放 NUM數(shù) MOV MOVAX,NUM[BX]CMPAX,NUM[BX+2]JLECONT1XCHGAX,NUM[BX+2]MOVNUM[BX],AXCONT1:ADDLOOPL2MOVCX,DXMOVBX,0LOOPL1

MOV ; 20個(gè)有符號(hào)數(shù)(二進(jìn)制)轉(zhuǎn)換為十進(jìn)制MOV ;再轉(zhuǎn)換為ASCIIMOVAX,NUM[SI]ADDSI,2TESTJZD4PUSHAXMOVDL,'-'MOVAH,2INT21HPOPAXNEGAXMOVDI,0MOVDX,0MOVBX,10DIVBXADDDL,30HMOVASC[DI],DLINCDICMPJZD3MOVDX,0JMP MOVDL,ASC[DI-1]MOVAH,2INTDECDIJNZD3MOVDL,''MOVAH,2INT21HLOOPD1MOV ;返回INT21HCODEENDSENDSTARTDATASTRING1DB'INPUTFIRSTNUM(HEX):',0DH,0AH,'$'STRING2DB'INPUTSECONDNUM(HEX):',0DH,0AH,'$'NUM1DW ;存放加數(shù)NUM2DW0,0 ;存放加數(shù)2RESULTDB0,0,0,0 ;存放結(jié)果DATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVLEA ;輸入第一個(gè)加數(shù)(4位十六進(jìn)制數(shù)MOVAH,9INT21HMOVSI,2MOVCONT:PUSHCMPCX,4JNZB1SUBSI,2 MOVSHLNUM1[SI],CL MOVAH,1INTCMPAL,'0'JBC1CMPAL,'F'

JAC1CMPAL,'A'JBA1SUBSUBAL,30HMOVAH,0ADDPOPCXLOOPCONTMOVDL,0DHMOVAH,2INT21HMOVDL,0AHINT21H

LEADX,STRING2MOVAH,9INTMOVSI,2MOVCONT1:PUSHCMPCX,4JNZB2SUBSI,2 MOVSHLNUM2[SI],CL MOVAH,1INT21HCMPAL,'0'JBC2CMPAL,'F'JAC2CMPAL,'A'JBA2SUB SUBMOVADDPOPCXLOOPCONT1MOVDL,0DHMOVAH,2INT21H

(;

MOVDL,0AHINT21HLEA LEABX,NUM2LEADI,RESULTMOVCX,4AD:MOVADCAL,[BX]MOV[DI],ALINCSIINCBXINCDILOOPAD

LEADX,STRING3;顯示結(jié)果( MOVAH,9INT21HMOVCX,4MOVDI,3PUSHCXMOVDL,RESULT[DI]MOVCL,4SHRDL,CLADDDL,30HCMPDL,3AHJBD1ADDDL,7MOVAH,2INT21HMOVDL,RESULT[DI]ANDDL,0FHADDCMPDL,3AHJBD2ADDDL,7MOVAH,2INT21HDECDIPOPCXLOOPTTMOV ;返回INT21HCODEENDSENDSTART2BCDDATASEGMENTDA1DB09H,09HDA2DB09H,08HRESULTDB4DUP(0)DATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVMOV MOVBL,10MULBLMOVBL,DA2MOVBH,0ADDAX,BXMOVCX,AXCONTMOV MOVAL,RESULTADDAL,DA1MOVRESULT,ALMOVAL,RESULT+1ADDAL,AHMOVADDAL,DA1+1MOVMOVAL,RESULT+2ADDAL,AHMOVAH,0MOVMOVAL,RESULT+3ADDAL,AHMOVMOVRESULT+3,ALLOOPCONTMOV ;返 INT21HCODEENDSEND編寫完整的程序求N!,求N大于6時(shí)的運(yùn)算結(jié)果,并在屏幕上顯示結(jié)果。DATASEGMENTNDB ;8DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,NMOVAH,0CALL NAX=N,BX=NCALLB2TODEC;調(diào)用過程將結(jié)果轉(zhuǎn)換為十進(jìn)制,然后屏幕顯MOVAH,4CHINTFACTCMPAL,0JNZCHNMOVBX,1CHN:PUSHDECCALL ;遞歸調(diào)用N!=N*(N-POPAXMULBXMOVBX,AXFACTB2TODECMOVCX,10000CALLBINMOVCX,1000CALLBINMOVCX,100CALLBINMOVCX,10CALLBINMOVCX,1CALLBINB2TODECBINMOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDL,ALADDDL,30HMOVAH,2INT21HBINCODEENDSENDSTART在附加段有一個(gè)數(shù)組,首地址為BUFF程序在數(shù)組中查找00DATA EQU0DATAENDSMOVES,AXMOVDS,MOVAL, ;關(guān)鍵字M存入MOVDI,OFFSETMOVCL,;數(shù)組長(zhǎng)度存入MOVCH, ;REPNE;;JNZ;未找到,轉(zhuǎn)STOPJCXZ;最后一個(gè)數(shù)是M,轉(zhuǎn)PUSH;PUSH;MOVBL,;前移,末尾補(bǔ)MOV[DI-1],BLINCDILOOPMOVBYTEPTR[DI-1],POPCX 恢復(fù)CX,DIPOPDIDECDI 由于REPNESCASB已自動(dòng)加1JMPL1 MOVAH,INT21H ENDDATASEGMENTSTRING1DB'THISISTHEFIRSTDB100;DW1STRING2DB'thesecondDW?DW;字符串MOVDS,AXMOVLEA ;求字符串1的長(zhǎng)度存入MOVAL,'$'MOVNUM1,0 JZINCNUM1JMPD1 LEA ;求字符串2的長(zhǎng)度存入MOVAL,'$'MOVNUM2,0 JZINCNUM2JMPD3 LEA ;將字符串1ADDSI,NUM1 MOVDI,SIADDDI,NUM2MOVCX,NUM1SUBCX,POSINCCXREPLEASI,STRING2;將字符串2插入到字符 1指定位LEADI,STRING1ADDDI,POSMOVREPLEADX,STRING1MOVAH,9INT21HMOVAH,4CHINT21HCODEEND將學(xué)生的班級(jí)、姓名、學(xué)號(hào)、課程名、成績(jī)定義為一個(gè)結(jié)構(gòu),用結(jié)構(gòu)預(yù)置語句,產(chǎn) 60分的學(xué)生姓名、成績(jī)顯示出來。答:STUDENTSTRUCCLASSDB DB DB COURSEDB SCOREDB STUDENTENDSDATADATAENDSCODESEGMENTASSUMECS:CODE,ds:DATASTART:MOVAX,DATAMOVMOV MOVCONT CMPAL,60JAE ;小于60LEADX,STUDENT1.NAM[SI]MOVAH,9INTMOVDL,''MOVINT ;成績(jī)轉(zhuǎn)換為ASCIIMOVAH,0MOVBL,10DIVBLPUSHAXMOVDL,ALADDDL,30HMOVAH,2INT21HPOPAXMOVDL,AHADDDL,30HMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HMOVDL,0AHINT21HD1:ADDLOOPCONTMOVAH,4CHINT21HCODEENDSENDSTART 學(xué)生的數(shù)學(xué)成,分 90分~99分,80分~89分,70分~79分,60分~69分及60分以下,并將各段的人數(shù)送入內(nèi)存元中。答:學(xué)生人數(shù)字, DATASEGMENT ANUMEQU$-BUFFSNUMDB5DUP(0)BUFF1DBANUMDUP(0)BUFF2DBANUMDUP(0)BUFF3DBANUMDUP(0)BUFF4DBANUMDUP(0)BUFF5DBANUMDUP(0)DATAENDSCODE

;存放各 ;存放60;存放60分~69;存放70分~79;存放80分~89;存放90ASSUMECS:CODE,DS:DATA,ES:START:MOVAX,MOVDS,AXMOVMOV MOVMOVMOVSI,OFFSETBUFFMOVDI,OFFSET MOVCMPAL,60HJAENEXT1MOVBL,[DI]MOVBUFF1[BX],ALINCBYTEPTR[DI]JMPNEXT5NEXT1:CMPJANEXT2MOVBL,[DI+1]MOVINCBYTEPTR[DI+1]JMPNEXT5NEXT2:CMPJANEXT3MOVBL,[DI+2]MOVBUFF2[BX],ALINCBYTEPTR[DI+2]JMPNEXT5NEXT3:CMPJANEXT4MOVBL,[DI+3]MOVBUFF3[BX],ALINCBYTEPTR[DI+3]JMPNEXT5NEXT4:MOVMOVBUFF4[BX],ALINCBYTEPTR[DI+4]NEXT5:INCLOOPD1MOVAH,4CHINT21HCODEENDSENDSTART編制宏定義,將存儲(chǔ)器區(qū)中一個(gè)用’$SENDMACROSCHARS,DCHARSLOCALNEXT,EXIT ;LOCAL用于解決宏定義內(nèi)的標(biāo)號(hào)問題PUSHAX ;SCHARS源串地址,DCHARS目的串地址PUSHSI ;FLAG串結(jié)尾符號(hào)MOVSI,

MOVAL,SCHARS[SI]MOVDCHARS[SI],ALCMPAL,FLAGJZINCSIJMPNEXTPOPSIPOPAXFINSUMXYX>YX+2*YX≤Y2*X+YSUM。FINSUMMACROX,Y,SUMIFXGTYMOVAX,YSHLAX,1ADDAX,XMOVSUM,AXMOVAX,XSHLAX,1ADDAX,YMOVSUM,AXDOSAHDOSDISPDISP‘。DOSMACROMOVAH,NUMINT21HDISPMACROZIFUMOVDL,ZIFUDOS02HDISP‘*MOVDL‘*MOVAH,02HINT21H11|55|66|5-|44|33|255|44|33|2-|55|44|311|55|66|5-|44|33|2DATAFREQUECYDW ;各音階頻率,65535對(duì)應(yīng)0, DW523,578,659,698,784,880,988TABLEDW

DW12,12,11,11,10,10,9,012,12,11,11,10,10,9,0FREQUECYDW8,8,12,12,13,13,12,0,11,11,10,10,9,9,8,0DATAENDSCODESEGMENTASSUMESTART:MOVMOVMOV ;CILEASI,TABLE MOVBX,[SI]INCSIINCSISHLBX,1MOVDI,[FREQUECY+BX]CALLPLAYDECBPJNZCONT MOVINT21H MOVAL,10110110BOUT43H,ALMOVMOVAX,34DEHDIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,03HOUT61H,ALMOVDELAY:MOVDX,1700HGOON:DECDXJNZGOONLOOPDELAYINAL,61HMOVAH,ALANDAL,0FCHOUT61H,ALMOVCX,0FFFFHDELAY1:MOVDX,100HGOON1:DECDXJNZLOOPDELAY1 END靜態(tài) 與動(dòng)態(tài) 有何區(qū)別答:(1)靜態(tài)RAM內(nèi)存儲(chǔ)的信息只要電源存在就能一直保持,而動(dòng)態(tài) RAM的信息需要定靜態(tài)RAM的集成度比較低,運(yùn)行速度快,而動(dòng) 的集成度高,運(yùn)行相對(duì)慢靜態(tài)RAM造價(jià)成本高,動(dòng) 價(jià)格便ROM、PROM、EPROMEEPROM答:ROM是只讀存儲(chǔ)器,根據(jù)寫入方式的不同可以分為四類:掩膜 ROM、PROM、和EEPROMROM中信息是廠家根據(jù)用戶給定的程序或數(shù)據(jù),對(duì)芯片圖形掩膜進(jìn)行兩次光刻而寫入的,用戶對(duì)這類芯片無法進(jìn)行任何修改。PROM出廠時(shí),里面沒有信息,用戶采用一些PROM,一旦寫入,就不能再改變了,即只允許編程一次。EPROMEEPROMDRAMCASRAS答:CAS為列地址選通信號(hào),用于指示地址總線上的有效數(shù)據(jù)為列地址; RAS為行地址選什么是Cache答:Cache也稱為高速緩存,是介于主存 為了減少CPU與內(nèi)存之間的速度差異,提高系統(tǒng)性能,在慢速的 SRAM,起到緩沖作用,使CPU既可以以較快速度存取SRAM中的數(shù)據(jù),又不使系統(tǒng)成本上升過高,這就是 Cache的作用。Cache直接映像Cache和成組相聯(lián)Cache答:直接映象Cache是將主存儲(chǔ)器中每一頁大小分成和 Cache存儲(chǔ)器大小一致,Cache中成組相聯(lián)Cache內(nèi)部有多組直接映象 為什么要保持Cache內(nèi)容與主存儲(chǔ)器內(nèi)容的一致性?為了保持 Cache與主存儲(chǔ)器內(nèi)容的答:由于Cache的內(nèi)容只是主存部分內(nèi)容的拷貝,故應(yīng)當(dāng)與主存內(nèi)容保持一致。數(shù)據(jù)不一致問題通常是由于更新了Cache的數(shù)據(jù)而沒有更新與其關(guān)聯(lián)的存儲(chǔ)器的數(shù)據(jù),或更新了存儲(chǔ)器Cache的內(nèi)容所引起的。為了保持Cache在此方法中,當(dāng)CPU寫入數(shù)據(jù)到CacheCache就立即將其寫入主存中,使主存CacheCache的修改同時(shí)要寫入主存儲(chǔ)器,總線操作頻繁,影響系統(tǒng)性能。(2)回寫法此方法中,Cache的作用好像緩沖區(qū)一樣,當(dāng) CPU寫入數(shù)據(jù)到Cache中后,Cache并不 Cache中的內(nèi)容回寫到主存中,此CPUCache控制器用1024×1位的RAM芯片組成16K×8位的存儲(chǔ)器,需要多少芯片?在地址線中有多少 16位)答:由于所用的芯片為1024×1位,構(gòu)成1024×8位(即1K×8位)的存儲(chǔ)器需要8片,因此組成16K×8位的存儲(chǔ)器需要16×8=128片。片內(nèi)有1024個(gè)單元,需 10根地址線16組(每組8片)存儲(chǔ)器需 16根片選信號(hào),至少需 512×44KB的存儲(chǔ)器,需要多少這樣的芯片?4K×85124=165129121024×8RAM4K×8A15~A12地址線用線性選擇答:組成4K×8的存儲(chǔ)器,那么需要4片這樣的芯片:將 A15取反后分配芯片 1的CS;將A14取反后分配給芯片 2的CS;將A13取反后分配芯片 3的CS;將A12取反后分配給4CS1的地址范圍8000H~83FFH8400H~87FFH、8800H~8BFFH、8C00H~8FFFH2的地址范圍4000H~43FFH4400H~47FFH、4800H~4BFFH、4C00H~4FFFH3的地址范圍2000H~23FFH2400H~27FFH、2800H~2BFFH、2C00H~2FFFH4的地址范圍1000H~13FFH1400H~17FFH、1800H~1BFFH、1C00H~1FFFH平信號(hào)。(8086工作在最小模式答:8086發(fā)出20位地址信息 BHE=1,通過地址鎖存信號(hào)鎖存 8282,然后發(fā)出M/IO和RD=0等控制信號(hào),20位地址信號(hào) BHE=1送給存儲(chǔ)器,經(jīng)過譯碼,選中偶地址單一字節(jié),將其數(shù)據(jù)讀出,送至數(shù)據(jù)總線,經(jīng)過 DEN=0和DT/R=0控制的數(shù)據(jù)收發(fā) 傳送至CPU效邏輯電平信號(hào)。(8086工作在最小模式288第一個(gè)寫周期中,BHE=0,第二個(gè)寫周期中, BHE=1。其余信號(hào)M/IO=1,WR=0,DEN=0,DT/R=164K×874LS138EPROM2764答:因?yàn)镋PROM2764是8K×8的ROM,所以要構(gòu)成64K×8的存儲(chǔ)器系統(tǒng),需要8片EPROM2764。其中CPU的A12~A0直接與 8片EPROM的A12~A0相連(沒有考慮驅(qū)動(dòng)能問題),A15、A14A13138A、B、C三個(gè)端口相連,其他地址線(A19~A16)組合連到G1、G2A和G2B上,確保A19=0、A18=1、A17=0A16=0用 位的EPROM2764、8K×8位的RAM6264和譯碼器74LS138構(gòu)成一 16KROM、16K字RAM的存儲(chǔ)器子系統(tǒng)。8086工作在最小模式,系統(tǒng)帶有地址鎖存器 數(shù)據(jù)收發(fā)器8286。畫出存儲(chǔ)器系統(tǒng)與CPU的連接圖,寫出各塊芯片的地址分配。D15~DD15~DA13~AA12~AA13~AA 1#2# A D15~D8 BAA13~A A12~A A13~A 3# 4#WE Y2A0CE1CE2CE2Y3CE1CE2100000Y0有效100001 有效100010 有效100011 有效74LS138Y2ROMRAMCBA100010有效100011有效100100有效100101有效CPUI/OI/OCPU和外設(shè)之間的信息交換存在以下一些問題:速度不匹配;信號(hào)電平不匹配;信號(hào)I/OCPU與外設(shè)之間的不匹配、不能協(xié)調(diào)工作而設(shè)置的,處于總A/D變換成數(shù)字量后,才能送到計(jì)算機(jī)去處理,而D/A變成模擬信號(hào)后,才能驅(qū)動(dòng)某些外設(shè)工作。什么叫I/O端口?一般的接口電路中可以設(shè)置哪些端口?計(jì)算機(jī)對(duì) I/O端口編址時(shí)采用哪兩種方法?在8086/8088CPU中一般采用哪些編址方法?答:在CPU電路中,這些信息分別進(jìn)入不同的寄存器,通常將這些寄存器和它們的控制邏輯統(tǒng)稱 計(jì)算機(jī)對(duì)I/O端口編址時(shí)采用兩種方法:存儲(chǔ)器映像尋址方式、 在8086/8088CPU中一般采用I/O單獨(dú)編址方式。CPUCPU與外設(shè)間的數(shù)據(jù)傳送方式主要有:程序控制方式、中斷方式、DMA方式。CPU與外設(shè)之間的數(shù)據(jù)傳送是在程序控制下完成的。⑴無條件傳已知的場(chǎng)合。⑵條件傳送:也稱為查詢式傳送方式,在開始傳送前,必須先查詢外設(shè)已處CPU CPU發(fā)中斷請(qǐng)求。CPU響應(yīng)中斷后,暫停執(zhí)行當(dāng)前的程 CPU和 CPU又回去執(zhí)行原來的程序。DMA總線是由CPU管理的,但當(dāng)外設(shè)需要利用DMA方式進(jìn)行數(shù)據(jù)傳送時(shí),接口電路可以向 提出請(qǐng)求,要求CPU讓出對(duì)總線的控制權(quán),用DMA 應(yīng)的讀/寫控制信號(hào)。在DMA傳送結(jié)束后,它能釋放總線,把對(duì)總線的控制權(quán)又交還 答:查詢式傳送方式也稱為條件傳送方式。一般情況下, CPU用輸入或輸出指令與外CPU要先執(zhí)行一條輸入指令,從外設(shè)的狀態(tài)口讀取它的當(dāng)前狀態(tài)。如CPU便可執(zhí)行輸入指令,從外設(shè)讀入數(shù)據(jù)。當(dāng)輸入設(shè)備準(zhǔn)備好數(shù)據(jù)后,就 I/O接口電路發(fā)一個(gè)選通信號(hào)。此信號(hào)有兩個(gè)作用: D觸發(fā)器的Q端置l。CPU首先執(zhí)行 IN指令讀取狀態(tài)口的信息,這時(shí) M/IO和RD信號(hào)均變低, M/IO為低,使I/O譯碼器輸出低電平的狀態(tài)口片選信號(hào) CS1。CS1和RD經(jīng)門1相與后的低電乎輸出,使三態(tài)緩沖器開啟,于是Q端的高電平經(jīng)緩沖器(1位)傳送到數(shù)據(jù)線上 READY(D0)位,被讀入累加器。程序檢測(cè) 位 1后,便執(zhí)行IN指令讀數(shù)據(jù)口。這 M/IO和 CS2,CS2和RD經(jīng)門2輸出低電平。它一方面開 8位數(shù)據(jù)緩沖器送到數(shù)據(jù)總線上后進(jìn)入累加D0,一次數(shù)據(jù)傳送完畢。接著就可以開始下一個(gè)數(shù)據(jù)的傳送。當(dāng)規(guī)CPU準(zhǔn)備向外設(shè)輸出數(shù)據(jù)時(shí),它先執(zhí)行IN指令讀取狀態(tài)口的信息。這時(shí),低電平的M/IO和有效的端口地址信號(hào)使I/O譯碼器的狀態(tài)口片選信號(hào)CS1CS1再和有效的RD信號(hào)經(jīng)門l相與后輸出低電平,它使?fàn)顟B(tài)口的三態(tài)門開啟,從數(shù)據(jù)總線的D1位讀入BUSY狀態(tài)。若BUSY=l,表示外設(shè)處在接收上一個(gè)數(shù)據(jù)的忙碌狀態(tài)。只有在 BUSY=0時(shí),CPU才能向外設(shè)輸出新的數(shù)據(jù)。當(dāng) CPU檢查到BUSY=0時(shí),便執(zhí)行OUT指令將數(shù)據(jù)送向 M/IO使I/O譯碼器的狀態(tài)口片選信號(hào) CS2變低,CS2再和WR信號(hào)經(jīng)門2相與后輸出低電平的選通信號(hào),它用來選通數(shù)據(jù)鎖存器,將數(shù)據(jù)送向外設(shè)。同時(shí),選通信號(hào)的后沿還 D觸發(fā)器翻轉(zhuǎn), Q為高電平,即把狀態(tài)口 BUSY位置成表示忙碌。當(dāng)輸出設(shè)備從接口中取走數(shù)據(jù)后,就送回一個(gè)應(yīng)答信 ACK,它將D觸發(fā)器0,即置BUSY=0,允許CPUDMA控制器從外設(shè)提出請(qǐng)求到外設(shè)直接將數(shù)據(jù)傳送到存儲(chǔ)器的工作DMA當(dāng)一個(gè)接口中有數(shù)據(jù)要輸入時(shí),就向DMA控制器發(fā)送DMA請(qǐng)求;DMA控制器接收到請(qǐng)求后,便往控制總線上發(fā)一個(gè)總線請(qǐng)求;如果CPU允許讓出總線,則發(fā)一個(gè)總線允許DMA控制器接到此信號(hào)后,就將地址寄存器的內(nèi)容送到地址總線上,同時(shí)往接口發(fā)一個(gè)DMA 回答信號(hào),并發(fā)一個(gè)1/O讀信號(hào)和一個(gè)內(nèi)存寫信號(hào);接口接到 DMA回答信號(hào) DMA請(qǐng)求信號(hào);內(nèi)存在接收到數(shù)據(jù)以后,一般往 DMA控制器的地址寄存器內(nèi)容加 1或減1,計(jì)數(shù)器的值減1,而且撤除總線請(qǐng)求信號(hào),這樣,就完成了對(duì)一個(gè)數(shù)據(jù)的DMA 輸入傳輸。DMA CPU交回總線控制權(quán)。其狀態(tài)寄存器的傳輸結(jié)束標(biāo)1CPU在主程序中通過查詢狀態(tài)寄存器的傳輸結(jié)束標(biāo)志,決定是否進(jìn)行某一個(gè)微機(jī)系統(tǒng)中,有8I/O接口芯片,每個(gè)芯片占有8300H,874LS138做譯碼器,試畫出端口譯碼電路,并說明每塊PCISA總線各用于何種類型的微型計(jì)算機(jī)中?它們的數(shù)據(jù)總線各有多少根?IBMPC/XTPC8條數(shù)據(jù)線。ISA總線又稱AT總線,是以80286CPUPC/AT16PCIPCIPCI。PCIPCI總線傳輸數(shù)據(jù)的位數(shù)為32位,也可擴(kuò)展到6432PCI總線在讀寫傳送中,以33MHz的頻率進(jìn)行,傳輸速率為132MB/s,當(dāng)數(shù)據(jù)寬度為64位時(shí),以66MHz的頻率運(yùn)行,傳輸速率高達(dá)528MB/s。PCI總線支持突發(fā)傳送方式(BurstTransfer)PCI總線支持即插即用(PlugandPlay,PnP)(4)PCI總線與微處理器之間不直接相連,而是通過與 CPU結(jié)構(gòu)無關(guān)的中間部件橋接器PCIPCI突發(fā)讀交易以周期幀信號(hào) FRAME#有效后開始進(jìn)行PCI交易,交易的第一個(gè)時(shí)鐘 PCI命令確定交易類型。因PCI的地址線/數(shù)據(jù)線(AD)和命令信號(hào)(C/BE#)都是分時(shí)復(fù)用的,所以每個(gè) PCI目標(biāo)本次尋找的目標(biāo)和將要交易的類型是什么 PCI目標(biāo)確定自己是交易的目標(biāo)后,則將設(shè)備擇信號(hào)DEVSEL#置為有效狀態(tài),向交易的啟動(dòng)方聲明本次交易有效。在主設(shè)備 IRDY#目標(biāo)設(shè)備的TRDY#答:當(dāng)CPU正常運(yùn)行程序時(shí),由于微處理器內(nèi)部事件或外設(shè)請(qǐng)求,引起 CPU中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行請(qǐng)求中斷的外設(shè)(或內(nèi)部事件)的中斷服務(wù)子程序,中斷服務(wù)程序執(zhí)行完畢,INTRINTR信號(hào)的高電平必須維持CPU響應(yīng)中斷才結(jié)束??梢酝ㄟ^軟件設(shè)置來屏蔽外部中斷,即使外部設(shè)備有中斷請(qǐng)求,CPU可以不予響應(yīng)。當(dāng)外設(shè)有中斷申請(qǐng)時(shí),在當(dāng)前指令執(zhí)行完后 CPU首先查詢IF位若IF=0CPUIF=1,CPU就允許響應(yīng)外設(shè)的中斷請(qǐng)求。不NMI引入,邊沿觸發(fā),上升沿之后維持兩個(gè)時(shí)鐘周期高電平有效。不能用軟件來屏蔽的,一旦有不可屏蔽中斷請(qǐng)求,如電源掉電等緊急情況 CPU必須予INTR:可屏蔽中斷請(qǐng)求輸入引腳。NMIINTA:可屏蔽中斷響應(yīng)引腳INTn:軟件中斷指令,其 n為中斷類型INTOCLI:中斷標(biāo)志位IF0STI:置位中斷標(biāo)志位為18086/8088系統(tǒng)中可以引入哪些中斷?答:(1)外部中斷兩種外部中斷:不可屏蔽中斷NMI和可屏蔽中斷①INTn②CPU③由調(diào)試程序debugCPU響應(yīng)中斷的條件是什么?簡(jiǎn)述中斷處理過程。CPU響應(yīng)中斷要有三個(gè)條件:CPU⑵將標(biāo)志寄存 PSW的值入錢⑶將PSW中的中斷允許標(biāo)志 IF和單步標(biāo)志TF清0,以屏蔽外部其它中斷請(qǐng)求,避免CPU以單步方式執(zhí)行中斷處理子程字。⑷保護(hù)斷點(diǎn),將當(dāng)前指令下面一條指令的段地 CS和指令指針I(yè)P的值入棧,中⑹中斷處理程序結(jié)束以后,從堆棧中依次彈 IP、CS和PSW,然后返回主程序斷STISTI指令答:由于響應(yīng)中斷時(shí)CPU自動(dòng)關(guān)閉中斷(IF=0),故在中斷服務(wù)子程序中STI指令后方可中斷結(jié)束命令EOIEOI后,清除中斷服務(wù)寄存器中的標(biāo)志位,即允許響應(yīng)同級(jí)或低級(jí)中斷,為EOI置于中斷服務(wù)子程序結(jié)束前。將每個(gè)設(shè)備的中斷服務(wù)程序入口地址()集中,依次放在中斷向量表中。當(dāng)CPU轉(zhuǎn)入中斷服務(wù)子程序,這樣可大大加快中斷處8086/8088系統(tǒng)允許處理256種類型的中斷,對(duì)應(yīng)類型號(hào) 00000H~003FFH,占1K字節(jié)空間,用作存放中斷向量。每個(gè)類型號(hào)占 4個(gè)字節(jié),高2個(gè)字 2個(gè)字節(jié)存放段內(nèi)偏移地址。15ROUT15。PUSH AX,0 DI, AX,OFFSETROUT15;中斷處理程序的偏移→AX AX,SEGROUT15 AXPOP8086/8088CPU如何獲得中斷類型號(hào)?①INTn:n 0,INTO溢出中斷自動(dòng)獲得中斷類型 ③單步中斷自動(dòng)獲得類型號(hào)1,斷點(diǎn)中斷自動(dòng)獲得類型號(hào)3。NMI:自動(dòng)獲得中斷類型號(hào)INTR ,中斷接口電收到第二個(gè)INTA以后,通過數(shù)據(jù)線向CPU給定SP=0100H,SS=0500H,PSW=0240H,在存儲(chǔ)單元中已有內(nèi)容為(00026H)=1000H,在段地址為0800H及偏移地址為00A0H的單元中有一條中斷指 INT9試問執(zhí)行INT 答:執(zhí)行INT 指令,標(biāo)志寄存 PSW、下一條指令的段地址CS和指令指針I(yè)P的值分入棧,PSW中的中斷允許標(biāo)志 IF和單步標(biāo)志 TF清0,中斷向量表的中斷入口地址送CS和 SP=00FAH,SS=0500H,CS=1000H,IP=0060H,PSW=0040H。棧頂?shù)娜齻€(gè)字是: (0500H:00FAH)=00A2H、(0500H:00FCH)=0800H、

X X執(zhí)行INT 前 執(zhí)行INT9 后0000 8259A優(yōu)先權(quán)管理方式有哪幾種?中斷結(jié)束方式又有哪幾種?8259A4種:0~7IR0IR7優(yōu)先級(jí)最低。)8259A級(jí)聯(lián)情況。此方式與全嵌套工作方式基本相同,區(qū)別在于當(dāng)8259A中斷結(jié)束方式有如 3種普通EOI在全嵌套工作方式下,任何一級(jí)中斷,處理結(jié)束返回上一級(jí)程序前 CPU向8259A送EOI8259AEOIISR10特殊EOI此時(shí)要采用特殊SEOICPU8259A發(fā)特殊EOI結(jié)束命令字,命令字中將當(dāng)前要清除的中斷級(jí)別也傳給8259A8259ISR0。(3)自EOIAEOIISR1CPU進(jìn)入中斷響INTAISR0。8259A在全嵌套中斷工作方式下,要寫哪些初始化命令字及操作命令字?ICW1ICW2ICW4。OCW1中斷屏蔽操作命令字(根據(jù)需要,若不需要可不寫 的中斷服程序。系中有3個(gè)中斷源,從8259A的IR0、IR2、IR4端引入中斷,以沿觸,中斷型號(hào) 5020H、6100H、3250H,段地址1000H使用完全嵌套方式,普通EOI 寫初始化程序,使CPU能正確響任何一中斷;并寫一段中斷服子程序,保中斷嵌套的 答:;初始化程序設(shè)8259A的端口地 20H和; AX,1000H DS, DX,5020H;偏移地址 AL,50H ;中斷型號(hào) AH,25H ;寫50H DX6100H AL, ; ;52H DX3250H AL, ; ;54H;8259A AL, ;定ICW1 20H, AL,50H ;定ICW2,中斷號(hào)50H~57H 21H,AL AL,01H ;定ICW4,完全嵌套,非沖,普通EOI 21H,AL AL,0EAH ;定OCW1,屏蔽IR1,3,5,6,7 21H,AL; AL, ;定OCW2,普通 束命 POP 如外設(shè)A1、A2、A3、A4、A5按完全嵌套優(yōu)先級(jí)排列規(guī)則,外設(shè)A1的優(yōu)先級(jí)最高,A5最低。若中斷請(qǐng)求的次序如下所示,試給出各外設(shè)的中斷處理程序的(次序。 STI指令)外設(shè)A3和A4在外設(shè)A3的中斷處理中,外設(shè)A1A1EOIA5發(fā)出中斷請(qǐng)求答:外A3→A1A3→A4→A5某系統(tǒng)中有38259A1片為8259A2片為8259A8259A主片的IR2和IR5端,并且當(dāng)前8259A主片的IR3及兩片8259A從片的IR4各接80H,90H,A0H2000H1800H2800H,3800H8259AF8HFAH8259AEOI結(jié)束。(1)畫出硬件連接圖A11A11D77~~D00INTARDWRDCSA00D77~~D00INTARDWRCAS00CAS001從8259ACASCAS 12從8259ACASCAS SP/ENIR4(1)中斷向量表形成MOVAXMOVDS,AX;DSMOVDX,1800H;DX中為偏移地址MOVAL,83H ;中斷類型號(hào)為83HMOVAH,25HINT ;設(shè)置類型號(hào)83H DX,2800H AL,94HINT ;設(shè)置類型號(hào)94H AL,0A4HINT ;設(shè)置類型號(hào) 的中斷向主片8259A初始化編程:端口地址 F8H和 AL,00011001B(19H);定義ICW1 ;發(fā)ICW1 AL,80H ;IR0的中斷類型號(hào)為80H 0FAH,AL ;發(fā)ICW2命令 AL,00100100B(24H);定義ICW3,IR2IR5 0FAH AL,00000001B(01H);定義ICW4 0FAH ;非自動(dòng)EOI AL,11010011B(0D3H);定義OCW1,允許IR2、 0FAH IR51#從片8259A初始化編程:端口地址為FCH AL,00011001B(19H);定義ICW1 ;發(fā)ICW1 AL IR0的中斷類型號(hào)為

;發(fā)ICW2 AL,00000010B(02H);定義ICW3,1#從片接主片的IR2 0FEH,AL AL,00000001B(01H);定義ICW4 ;非自動(dòng)EOI AL,11101111B(0EFH);定義OCW1,允許IR4 2#從片8259A初始化編程:端口地址為FEECH AL,00011001B(19H);定義ICW1 DX DX ;發(fā)ICW1 AL,0A0H ;IR0的中斷類型號(hào)為A0H DX,0FEEEH DX ;發(fā)ICW2 AL,00000101B(05H);定義ICW3,2#從片接主片的IR5 DX,AL AL,00000001B(01H);定義ICW4 DX ;非自動(dòng)EOI AL,11101111B(0EFH);定義OCW1,允許IR4 D

溫馨提示

  • 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. 人人文庫(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)論