歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《計(jì)算機(jī)原理》8套習(xí)題及答案自學(xué).doc

  • 資源ID:13265538       資源大小:1.06MB        全文頁數(shù):45頁
  • 資源格式: DOC        下載積分:5積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要5積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

《計(jì)算機(jī)原理》8套習(xí)題及答案自學(xué).doc

習(xí)題1:1. 微機(jī)基本結(jié)構(gòu)是什么?微處理器、微型計(jì)算機(jī)、微型計(jì)算機(jī)系統(tǒng)有何區(qū)別?2. 用二進(jìn)制補(bǔ)碼表示-41、+74、112?3. 數(shù)值轉(zhuǎn)換:114.175= ( ) 2=( )16 11001.101B= ( )16= ( )104. 計(jì)算機(jī)內(nèi)有一個(gè)字節(jié)代碼10110110B(1) 若把它作為無符號(hào)數(shù),則與之對(duì)應(yīng)的十進(jìn)制是( );(2) 若把它作為有符號(hào)補(bǔ)碼,則與之對(duì)應(yīng)的十進(jìn)制是( );(3) 若把它作為ASCII碼,而且最高位為奇偶校驗(yàn)位,則采用的是奇校驗(yàn)還是偶校驗(yàn)?該值是什么字符的ASCII碼?ASCII碼主要用于做什么?(4) 若把它作為非壓縮BCD碼,則對(duì)應(yīng)的十進(jìn)制數(shù)為( )?注:奇、偶校驗(yàn)的概念l 校驗(yàn)位與數(shù)值位中1的個(gè)數(shù)為偶數(shù),則是偶校驗(yàn)l 校驗(yàn)位與數(shù)值位中1的個(gè)數(shù)為奇數(shù),則是奇校驗(yàn)(5) 8086中PF標(biāo)志對(duì)運(yùn)算結(jié)果的低8位進(jìn)行校驗(yàn),請(qǐng)問采用的是奇校驗(yàn)還是偶校驗(yàn)?5. 在計(jì)算機(jī)中有符號(hào)字節(jié)數(shù)X=20H, Y=90H,請(qǐng)問X+Y=?結(jié)果是否有溢出;XY=?結(jié)果是否有溢出。6. 計(jì)算機(jī)中有符號(hào)數(shù)如何表示,一個(gè)字的有符號(hào)數(shù)范圍是多少?7. 什么是總線,微機(jī)中按什么原則來使用總線?8. 總線按照功能分為那幾類總線?按照在計(jì)算機(jī)中所處的位置又分為那幾類總線?ISA、EISA、PCI三種局部總線有何特點(diǎn)?9. 計(jì)算機(jī)總線連接時(shí)為什么需要使用三態(tài)電路和鎖存器?選作題:10. CISC架構(gòu)的計(jì)算機(jī)與RISC架構(gòu)的計(jì)算機(jī)有何區(qū)別?11. 浮點(diǎn)數(shù)在計(jì)算機(jī)中以何種格式進(jìn)行存儲(chǔ)?請(qǐng)舉例說明習(xí)題1答案:1. 微機(jī)的基本結(jié)構(gòu)包括主機(jī)和外設(shè),主機(jī)又包括CPU、存儲(chǔ)器、I/O接口和總線,外設(shè)包括輸入設(shè)備和輸出設(shè)備;微處理器主要指CPU;微型計(jì)算機(jī)包括主機(jī)和外設(shè),其中主機(jī)包括微處理器,主要針對(duì)硬件部分;微型計(jì)算機(jī)系統(tǒng)包括微型計(jì)算機(jī)和軟件系統(tǒng),能夠獨(dú)立運(yùn)行。2. -41 = (11010111)2 +74 = (01001010)2 -112 = ( 10010000 )23. 數(shù)值轉(zhuǎn)換:114.175= ( 0111 0010. 0011 ) 2=( 72.3 )16 (近似值) 11001.101B= ( 19.A )16= ( 25.625 )104. 182;-74;奇校驗(yàn),6,ASCII用于計(jì)算機(jī)與外部交換信息;6;奇校驗(yàn)5 . X + Y 00100000 + 10010000 = 10110000 結(jié)果不溢出X Y00100000 - 10010000 = 10010000 結(jié)果溢出6計(jì)算機(jī)中有符號(hào)數(shù)用補(bǔ)碼表示,一個(gè)字的范圍是-32768 327677. 總線是用于傳輸信息的一組通信線;微機(jī)中按照分時(shí)復(fù)用原則使用總線; 8. 按照功能分為:地址總線、數(shù)據(jù)總線和控制總線;按照位置分為:CPU總線、局部總線、系統(tǒng)總線和外部總線ISA總線 寬度為16位,頻率為8MHz,傳輸率為16MB/SEISA總線是ISA總線的增強(qiáng),寬度32位,頻率8MHz,傳輸率為32MB/sPCI總線總線寬度32位,可擴(kuò)展到64位,總線頻率33MHz,也可提高到66MHz,傳輸率為132MB/s,可擴(kuò)展到528MB/s,支持即插即用9. 使用三態(tài)門可以增加驅(qū)動(dòng),用作數(shù)據(jù)輸入到總線時(shí)的緩沖,當(dāng)需要總線時(shí),打開三態(tài)門,傳送數(shù)據(jù);不需要總線時(shí),關(guān)閉三態(tài)門,輸出為高阻狀態(tài),以便別的器件可以使用總線,因此多個(gè)器件接入總線時(shí),一定要使用三態(tài)電路;使用D觸發(fā)器可以進(jìn)行信號(hào)保持,用作信息輸出時(shí)的鎖存習(xí)題2:1. 在8086微處理器中執(zhí)行如下指令后,標(biāo)志寄存器中狀態(tài)標(biāo)志為何值?MOV DX, 6E07HSUB DX, 800AH2. 8086管理的最大存儲(chǔ)器空間和I/O端口空間是多少,寫出地址范圍?為什么8086對(duì)存儲(chǔ)器要采用分段管理?3. 若程序執(zhí)行之前,CSE000H和IPFE60H,則該程序入口物理地址是多少?指向這個(gè)入口地址的CS和IP的值是唯一的嗎?4. 請(qǐng)畫出8088最小模式下的總線連接電路?要求包含8282 、8284 、8286。(注意8086與8088處理器的三點(diǎn)區(qū)別)5. 8086的RESET引腳是什么信號(hào)有效? 8086復(fù)位后各寄存器的值是多少?指令隊(duì)列的狀態(tài)是什么?CPU執(zhí)行的第一條指令物理地址是多少?6. 8086/8088可以響應(yīng)可屏蔽中斷和非可屏蔽中斷,可屏蔽中斷由_引腳的_電平使申請(qǐng)有效,F(xiàn)LAG中的_標(biāo)志可以控制CPU是否響應(yīng)這種中斷,可屏蔽中斷響應(yīng)時(shí),CPU使_引腳為_電平表明響應(yīng)中斷;非屏蔽中斷申請(qǐng)輸入端為_引腳,該引腳是_信號(hào)有效。7. 8086 CPU在最小模式下M/IO高電平且RD低電平的可能操作為_(多選)(A) 取指令操作 (B) 從外設(shè)輸入數(shù)據(jù)(C) 向存儲(chǔ)器寫數(shù)據(jù) (D) 從存儲(chǔ)器讀數(shù)據(jù)8. 8086微處理器中,數(shù)據(jù)段由段寄存器_指示,堆棧段由段寄存器_指示,寄存器CS:IP總是指示_地址,一般情況下,取出一個(gè)字節(jié)指令后,寄存器_會(huì)自動(dòng)加1。在硬件上可以用_和_來改變IP的內(nèi)容,在軟件上可以通過_和_來改變IP的內(nèi)容。9. 如圖所示,8086工作在最小模式,且AL = 80H,執(zhí)行MOV 1000H, AL指令過程中(假設(shè)DS = 0000H),請(qǐng)問1000H和80H兩個(gè)數(shù)分別在什么時(shí)候,出現(xiàn)在8086 CPU的那些引腳上?CLKM/IOA19A16BHEALEWRDT/RDENT1T2T3T4地址地址數(shù)據(jù)AD15AD0S3 S6選作題:1. 80386內(nèi)部包括那6個(gè)功能部件?80386有那三種工作方式?2. 80386如何在8086的基礎(chǔ)上擴(kuò)展了數(shù)據(jù)寄存器和地址指針寄存器?3. 80386有多少根地址線和數(shù)據(jù)線?其最大尋址范圍是多少?80386對(duì)存儲(chǔ)器如何采用分段和分頁管理?4. 80386的虛擬存儲(chǔ)機(jī)制是什么樣的?1. 8086微處理器內(nèi)部包括執(zhí)行單元EU和總線接口單元BIU,請(qǐng)簡要說明兩個(gè)部分主要功能是什么?請(qǐng)指出下列哪些部分屬于EU,哪些部分屬于BIU?(8分)1)段寄存器CS、DS、ES、SS2)預(yù)取指令緩沖隊(duì)列3)地址指針寄存器SP、BP、SI、DI4)指令譯碼及控制5)數(shù)據(jù)寄存器AX、BX、CX、DX6)指令指針寄存器IP7)20位物理地址加法器8)總線接口控制電路9)算術(shù)邏輯單元ALU10)標(biāo)志寄存器FLAG 屬于EU的有 _、_、_、_、_屬于BIU的有_、_、_、_、_2. 按照?qǐng)D4-1連接,8088從存儲(chǔ)器讀取數(shù)據(jù),若DS=B000H,則執(zhí)行指令MOV AL, E000H時(shí),8088需要執(zhí)行以下一系列處理,請(qǐng)標(biāo)明處理的先后順序。(6分)A. CPU發(fā)讀命令;B. BIU形成20位物理地址;C. BIU將系統(tǒng)數(shù)據(jù)總線上的數(shù)據(jù)送到CPU內(nèi)部總線,EU從內(nèi)部總線獲得數(shù)據(jù);D. EU計(jì)算得到有效地址,并傳送給BIU;E. 存儲(chǔ)器將被選中單元的內(nèi)容送系統(tǒng)數(shù)據(jù)總線;F. CPU輸出物理地址,經(jīng)鎖存后傳送到地址譯碼器,選擇相應(yīng)存儲(chǔ)器;先后順序?yàn)椋篲、_、_、_、_、_。5.習(xí)題3:1、8086系統(tǒng)中,請(qǐng)說明下列指令的源操作數(shù)的尋址方式是什么?1)MOV AX, 1234H2)MOV AX, 1234H3)MOV AX, BX4)MOV AX, 1234HBX + SI5)MOVSB6)IN AL, DX2、請(qǐng)?jiān)谙卤碇挟嫵鱿铝袛?shù)據(jù)段以十六進(jìn)制表示的各單元值(表格中每個(gè)單元表示一個(gè)字節(jié)),并寫出變量var1, var2, var3的偏移地址和cnt的值。0030H低地址高地址data SEGMENT para ORG 30Hvar1 DB -2, A, 2 dup(23)var2 DW -1cnt EQU $-var1var3 DW var2data ENDS3、以下程序?qū)崿F(xiàn)將變量var進(jìn)行var*10+600的操作,并將計(jì)算結(jié)果保存在變量result中,當(dāng)程序執(zhí)行到地址M5的時(shí)候,請(qǐng)?jiān)谝韵卤砀裰挟嫵霎?dāng)前堆棧指針的位置和堆棧里的內(nèi)容(程序斷點(diǎn)可以用標(biāo)號(hào),在堆棧中可用寄存器名代表保存的內(nèi)容,SS的內(nèi)容不用指定,表格的每個(gè)單元表示一個(gè)字)。(6分)高地址低地址data segment var dw 1000result dd ?data endssseg segment stackdb 100 dup(?)sseg endscode segment assume cs:code, ds:data, ss:ss_segmain proc farpush dsmov ax, 0push axmov ax, datamov ds, axmov ax, varM1:call CaculateM2:dw 10M3:dw 600M4:lea bx, resultmov bx, axmov bx+2, dxretmain endpCaculate proc pushbpmovbp, sppushsipushbxmovbx, bp+2movsi, cs:bxmulsiM5:addax, cs:2bxadcdx, 0addbx, 4movbp+2, bxpopbxpopsipopbpretCaculate endpcode endsend main4、問答題1)若AL = 81H,則執(zhí)行指令CBW后AH的內(nèi)容為多少?2)若BL = BEH,執(zhí)行下列指令序列,則每執(zhí)行一步,BL和CF的值為多少?SHL BL, 1 ;BL = _, CF = _MOV CL, 2SHR BL, CL ; BL = _, CF = _OR BL, 80SAR BL, 1 ; BL = _, CF = _ROR BL,CL ; BL = _, CF = _INC CLRCL BL, CL BL = _, CF = _3)什么是短跳轉(zhuǎn)、近跳轉(zhuǎn)、遠(yuǎn)跳轉(zhuǎn)?4)若當(dāng)前SP = 1000H,CS = B000H ,IP = 0100H,且當(dāng)前FLAG = 2345H,則執(zhí)行指令I(lǐng)NT 21H以后,SP的值變?yōu)槎嗌??堆棧段?個(gè)存儲(chǔ)單元0FFFH、0FFEH、0FFDH、0FFCH、0FFBH、0FFAH的值分別是多少?5、請(qǐng)寫出程序段實(shí)現(xiàn)下列功能例如:從160H端口讀取1個(gè)字節(jié) MOV DX, 160H IN AL, DX1) 將一個(gè)8位數(shù)20H寫入到地址為20H的端口;2) 若AL = 56H, BL = 57H,將這兩個(gè)壓縮格式BCD碼相加并將結(jié)果保存到存儲(chǔ)單元2000H中;3) 將2個(gè)32位無符號(hào)數(shù)DAT1和DAT2相乘,結(jié)果保存在64位無符號(hào)數(shù)中,請(qǐng)編寫程序段。4) 求數(shù)據(jù)段偏移地址為1000H開始的一個(gè)字符串的長度,字符串以ASCII碼0為結(jié)束符,長度要求包括結(jié)束符;(提示:初始化AL = 0 CX = 0FFFFH,然后使用REPNZ SCASB命令,最后根據(jù)CX的值計(jì)算字符串長度)習(xí)題3:1、8086系統(tǒng)中,請(qǐng)說明下列指令的源操作數(shù)的尋址方式是什么?1)MOV AX, 1234H立即數(shù)尋址2)MOV AX, 1234H直接尋址3)MOV AX, BX寄存器間接尋址4)MOV AX, 1234HBX + SI相對(duì)基址變址尋址5)MOVSB數(shù)據(jù)串尋址6)IN AL, DXI/O端口間接尋址2、請(qǐng)?jiān)谙卤碇挟嫵鱿铝袛?shù)據(jù)段以十六進(jìn)制表示的各單元值(表格中每個(gè)單元表示一個(gè)字節(jié)),并寫出變量var1, var2, var3的偏移地址和cnt的值。FEH0030H低地址高地址data SEGMENT para41H ORG 30H32Hvar1 DB -2, A, 2 dup(23)32H33Hvar2 DW -1FFH33Hcnt EQU $-var1FFHvar3 DW var200H36Hdata ENDSvar1: 0030Hvar2:0036Hvar3:0038Hcnt = 83、以下程序?qū)崿F(xiàn)將變量var進(jìn)行var*10+600的操作,并將計(jì)算結(jié)果保存在變量result中,當(dāng)程序執(zhí)行到地址M5的時(shí)候,請(qǐng)?jiān)谝韵卤砀裰挟嫵霎?dāng)前堆棧指針的位置和堆棧里的內(nèi)容(程序斷點(diǎn)可以用標(biāo)號(hào),在堆棧中可用寄存器名代表保存的內(nèi)容,SS的內(nèi)容不用指定,表格的每個(gè)單元表示一個(gè)字)。(6分)DS高地址低地址data segment M20var dw 1000BPresult dd ?BXSIdata endssseg segment stackdb 100 dup(?)sseg endscode segment assume cs:code, ds:data, ss:ss_segmain proc farpush dsmov ax, 0push axmov ax, datamov ds, axmov ax, varM1:call CaculateM2:dw 10M3:dw 600M4:lea bx, resultmov bx, axmov bx+2, dxretmain endpCaculate proc pushbpmovbp, sppushsipushbxmovbx, bp+2movsi, cs:bxmulsiM5:addax, cs:2bxadcdx, 0addbx, 4movbp+2, bxpopbxpopsipopbpretCaculate endpcode endsend main4、問答題1)若AL = 81H,則執(zhí)行指令CBW后AH的內(nèi)容為多少?AH = 0FFH2)若BL = BEH,執(zhí)行下列指令序列,則每執(zhí)行一步,BL和CF的值為多少?SHL BL, 1 ;BL = _7CH_, CF = _1_MOV CL, 2SHR BL, CL ; BL = _1FH_, CF = _0_OR BL, 80SAR BL, 1 ; BL = _CFH_, CF = _1_ROR BL,CL ; BL = _F3H_, CF = _1_INC CLRCL BL, CL BL = _BFH_, CF = _1_3)什么是短跳轉(zhuǎn)、近跳轉(zhuǎn)、遠(yuǎn)跳轉(zhuǎn)?短跳轉(zhuǎn):段內(nèi)直接跳轉(zhuǎn),偏移量為-128127近跳轉(zhuǎn):段內(nèi)直接跳轉(zhuǎn),偏移量為-3276832767 遠(yuǎn)跳轉(zhuǎn):段間直接跳轉(zhuǎn)4)若當(dāng)前SP = 1000H,CS = B000H ,IP = 0100H,且當(dāng)前FLAG = 2345H,則執(zhí)行指令I(lǐng)NT 21H以后,SP的值變?yōu)槎嗌??堆棧段?個(gè)存儲(chǔ)單元0FFFH、0FFEH、0FFDH、0FFCH、0FFBH、0FFAH的值分別是多少?SP = 0FFAH,(0FFFH) = 23H(0FFEH) = 45H(0FFDH) = B0H(0FFCH) = 00H(0FFBH) = 01H(0FFAH) = 00H5、請(qǐng)寫出程序段實(shí)現(xiàn)下列功能例如:從160H端口讀取1個(gè)字節(jié) MOV DX, 160H IN AL, DX5) 將一個(gè)8位數(shù)20H寫入到地址為20H的端口;MOVAL, 20HOUT20H, AL6) 若AL = 56H, BL = 57H,將這兩個(gè)壓縮格式BCD碼相加并將結(jié)果保存到存儲(chǔ)單元2000H中;ADDAL, BLDAAMOV2000H, AL7) 將2個(gè)32位無符號(hào)數(shù)DAT1和DAT2相乘,結(jié)果保存在64位無符號(hào)數(shù)中,請(qǐng)編寫程序段。DAT1DD12345678HDAT2DD9ABCDEFHRESULTDQ0MOVAX, word ptr DAT2;(DAT1)L * (DAT2)LMULword ptr DAT1MOVword ptr RESULT, AXMOVword ptr RESULT, DX;保存結(jié)果MOVAX, word ptr DAT2MULword ptr DAT1 + 2;(DAT1)H * (DAT2)LADDword ptr RESULT + 2, AXADCword ptr RESULT + 4, 0MOVAX, word ptr DAT2 + 2;(DAT1)L * (DAT2)HMULword ptr DAT1ADDword ptr RESULT + 2, AXADCword ptr RESULT + 4, DXADCword ptr RESULT + 6, 0MOVAX, word ptr DAT2 + 2;(DAT1)H * (DAT2)HMULword ptr DAT1 + 2ADDword ptr RESULT + 4, AXADCword ptr RESULT + 6, DX8) 求數(shù)據(jù)段偏移地址為1000H開始的一個(gè)字符串的長度,字符串以ASCII碼0為結(jié)束符,長度要求包括結(jié)束符;(提示:初始化AL = 0 CX = 0FFFFH,然后使用REPNZ SCASB命令,最后根據(jù)CX的值計(jì)算字符串長度)MOVAX, DSMOVES, AXMOVDI, 1000HMOVAL, 0MOVCX, 0FFFFHCLDREPNZSCASBNOTCX;或者M(jìn)OVAX, 0FFFFH;SUBAX, CX;MOVCX, AX;此時(shí)CX中存放的就是字符串的長度9)習(xí)題3:1. 從屏幕上輸入小寫字母,轉(zhuǎn)換為大寫字母并輸出要求:程序具有可讀性、容錯(cuò)性2. 編寫一子程序asc2bin,將ASCII轉(zhuǎn)換為二進(jìn)制數(shù)要求:輸入?yún)?shù):AL中存放需要轉(zhuǎn)換的ASCII輸出參數(shù):AL中存放轉(zhuǎn)換后的二進(jìn)制數(shù)并返回3. 內(nèi)存中存放8個(gè)16位有符號(hào)數(shù),求8個(gè)數(shù)值之和,并將結(jié)果存放在內(nèi)存變量SUM中注:程序中應(yīng)用到字?jǐn)U展為雙字的指令CWD4. 內(nèi)存中存放8個(gè)8位有符號(hào)數(shù),請(qǐng)按從大到小順序排列5. 內(nèi)存中有8個(gè)16位數(shù),請(qǐng)編寫程序?qū)?個(gè)數(shù)倒序排放例:定義內(nèi)存中8個(gè)數(shù)bufdw100, 3, 1, 20, 40, -2, 7, 10程序運(yùn)行后,buf開始應(yīng)為:buf dw 10, 7, -2, 40, 20, 1, 3, 1006. 從鍵盤輸入4位十進(jìn)制數(shù),然后以16進(jìn)制形式顯示在屏幕上.例:鍵盤輸入:1024屏幕上應(yīng)顯示:0400H要求:鍵盤輸入和顯示結(jié)果時(shí)均應(yīng)有提示7. 數(shù)據(jù)段從100H開始存放字符串str1,從200H開始存放str2,二者均以NULL字符為結(jié)束符,編寫程序?qū)tr2拷貝到str1末尾,形成一個(gè)完整字符串例:ORG 100Hstr1db0dh, 0ah, Hello , 0ORG200Hstr2dbAutomation!, 0程序運(yùn)行后結(jié)果應(yīng)為:str1db0dh, 0ah, Hello Automation!, 08. 以10進(jìn)制形式顯示內(nèi)存中一有符號(hào)字節(jié)數(shù)據(jù)例:vardb0ffH屏幕應(yīng)顯示:The result is: -19. 將一個(gè)16位的無符號(hào)數(shù)var, 轉(zhuǎn)換為非壓縮格式BCD碼,存放在內(nèi)存中buf開始的單元中。(按高位在前、低位在后的順序存放)選作題:10. 內(nèi)存中從str開始存放一字符串,結(jié)束符為NULL字符,請(qǐng)編寫程序統(tǒng)計(jì)該字符串中單詞的個(gè)數(shù)例:str1db0dh, 0ah, Hello world, welcome to DUT. CPU is central processing unit!, 0h統(tǒng)計(jì).中的單詞個(gè)數(shù),結(jié)果為1011 編寫程序用鍵盤17鍵,模擬7個(gè)音符,進(jìn)行鍵盤演奏!注:需要對(duì)8253的定時(shí)器2和8255的PB口進(jìn)行初始化習(xí)題4答案:1. 從屏幕上輸入小寫字母,轉(zhuǎn)換為大寫字母并輸出要求:程序具有可讀性、容錯(cuò)性data segment parastr1db0dh, 0ah, Please input(a-z): $str2db0dh, 0ah, The input is error!$str3db0dh, 0ah, The result is: $data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ss:ss_seg, ds:datamain proc farmovax, datamovds, axmain1:leadx, str1;顯示提示信息movah, 9int21hmovah, 1;輸入小寫字母int21hcmpal, a;判斷輸入字符是否為azjberrorcmpal, zjaerrorjmpnexterror:leadx, str2;顯示錯(cuò)誤提示信息movah, 9int21hjmpmain1;跳轉(zhuǎn),重新輸入next:subal, 20hpushaxleadx, str3;顯示輸出提示信息movah, 9int21hpopaxmovdl, al;顯示轉(zhuǎn)換后的大寫字母movah, 2int21hmovax, 4c00h;返回操作系統(tǒng)int21hmain endpcode endsend main2. 編寫一子程序asc2bin,將ASCII轉(zhuǎn)換為二進(jìn)制數(shù)要求:輸入?yún)?shù):AL中存放需要轉(zhuǎn)換的ASCII輸出參數(shù):AL中存放轉(zhuǎn)換后的二進(jìn)制數(shù)并返回;功能:將ASCII轉(zhuǎn)換為二進(jìn)制數(shù);輸入?yún)?shù):AL中存放需要轉(zhuǎn)換的ASCII;輸出參數(shù):AL中存放轉(zhuǎn)換后得到的二進(jìn)制數(shù)asc2binprocsubal, 30hcmpal, 9jbeasc2bin_1subal, 7asc2bin_1: retasc2binendp3. 內(nèi)存中存放8個(gè)16位有符號(hào)數(shù),求8個(gè)數(shù)值之和,并將結(jié)果存放在內(nèi)存變量SUM中注:程序中應(yīng)用到字?jǐn)U展為雙字的指令CWDdata segment parabufdw-1, 30000, 35000, 36000, 37000, 20000, 10000, -2sumdd0data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axleabx, buf;bx指向buf首地址movcx, 8main1:movax, bxcwd;有符號(hào)數(shù)字?jǐn)U展為雙字addword ptr sum, ax;32位數(shù)相加adcword ptr sum + 2, dxincbxincbxloopmain1;循環(huán)8次movax, 4c00hint21hmain endpcode endsend main4. 內(nèi)存中存放8個(gè)8位有符號(hào)數(shù),請(qǐng)按從大到小順序排列data segment parabufdb-1, 30, 35, 36, 37, 20, 100, -2data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axmovcx, 8main1:movbx, 0;外循環(huán)movdi, 0pushcxmain2:moval, bufbx;內(nèi)循環(huán)cmpal, bufbx+1jgenextxchgal, bufbx+1;不符合規(guī)則, 則交換數(shù)據(jù)movbufbx, almovdi, 1next:incbxloopmain2popcxcmpdi, 0;判斷內(nèi)循環(huán)是否發(fā)生數(shù)據(jù)交換jzexitloopmain1 exit:movax, 4c00hint21hmain endpcode endsend main5. 內(nèi)存中有8個(gè)16位數(shù),請(qǐng)編寫程序?qū)?個(gè)數(shù)倒序排放例:定義內(nèi)存中8個(gè)數(shù)bufdw100, 3, 1, 20, 40, -2, 7, 10程序運(yùn)行后,buf開始應(yīng)為:buf dw 10, 7, -2, 40, 20, 1, 3, 100data segment parabufdw-1, 30000, 35000, 36000, 37000, 20000, 10000, -2data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axmovbx, 0movcx, 8main1:pushbufbxincbxincbxloopmain1;8個(gè)數(shù)依次入堆棧leabx, bufmovcx, 8main2:popbufbxincbxincbxloopmain2;8個(gè)數(shù)依次出棧movax, 4c00hint21hmain endpcode endsend main6. 從鍵盤輸入4位十進(jìn)制數(shù),然后以16進(jìn)制形式顯示在屏幕上.例:鍵盤輸入:1024屏幕上應(yīng)顯示:0400H要求:鍵盤輸入和顯示結(jié)果時(shí)均應(yīng)有提示data segment parabufdb4 dup(0)vardw0str1db0dh, 0ah, Please input four numbers(0-9): $str2db0dh, 0ah, The input is error, please try again. $str2db0dh, 0ah, The hex result is: $data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axmain1:leadx, str1;顯示數(shù)據(jù)輸入提示信息movah, 9int21hmovbx, 0movcx, 4;循環(huán)輸入4個(gè)數(shù)main2:movah, 1;DOS功能調(diào)用,輸入數(shù)據(jù)int21hcmpal, 0;判斷輸入字符是否為0-9jberrorcmpal, 9jaerror;若不為0-9,則進(jìn)行錯(cuò)誤處理subal, 30h;ASCII轉(zhuǎn)換為二進(jìn)制,得到0-9moval, bufbx;存入buf開始的緩沖區(qū)incbxloopmain2jmpnext;數(shù)據(jù)輸入正確后,跳轉(zhuǎn)到后續(xù)處理error:leadx, str2;顯示錯(cuò)誤提示信息movah, 9int21hjmpmain1;跳轉(zhuǎn)到重新輸入next:movax, 0;(0*10+B3)*10+B2)*10+B1)*10+B0movdx, 0;得到輸入的4位十進(jìn)制數(shù)movsi, 10movbx, 0movcx, 4main3:mul10;相乘后dx仍然保持0addal, bufbxadcah, 0incbxloopmain3;循環(huán)4次乘10movvar, ax;得到的4位十進(jìn)制數(shù)存放到var中l(wèi)eadx, str3movah, 9int21h;顯示輸出提示符movch, 4;以16進(jìn)制顯示輸入的數(shù)據(jù), 循環(huán)4次movcl, 4main4:rolvar, cl; 循環(huán)左移4位movax, varandax, 000fhcallbin2asc;二進(jìn)制轉(zhuǎn)換為ASCIIcallpchar;顯示16進(jìn)制decchjnzmain4moval, Hcallpcharmovax, 4c00hint21hmain endp;功能:將一個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為ASCII;輸入?yún)?shù):AL中存放要轉(zhuǎn)換的二進(jìn)制數(shù);輸出參數(shù):AL中存放轉(zhuǎn)換后的ASCIIbin2ascprocandal, 0fhaddal, 30hcmpal, 39hjbebin2asc_1addal, 07hbin2asc_1:retbin2ascendp;功能:顯示字符;輸入?yún)?shù):AL中存放要顯示字符的ASCII;輸出參數(shù):無pcharprocmovdl, almovah, 2int21hretpcharendpcode endsend main7. 數(shù)據(jù)段從100H開始存放字符串str1,從200H開始存放str2,二者均以NULL字符為結(jié)束符,編寫程序?qū)tr2拷貝到str1末尾,形成一個(gè)完整字符串例:ORG 100Hstr1db0dh, 0ah, Hello , 0ORG200Hstr2dbAutomation!, 0程序運(yùn)行后結(jié)果應(yīng)為:str1db0dh, 0ah, Hello Automation!, 0data segment paraORG100Hstr1db0dh, 0ah, Hello , 0ORG200Hstr2dbAutomation!, 0data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axmoves, axleadi, str1;es:di指向str1首地址moval, 0repnzscasb;查找str1結(jié)束符NULLdecdi;找到str1結(jié)束符,并讓es:di指向該位置leasi, str2;ds:si指向str2首地址cld;DF = 0main1:lodsb;AL (ds:si), si = si + 1stosb;(es:di) AL, di = di + 1cmpal, 0;判斷是否到str2的結(jié)束符jnzmain1leasi, str1;ds:si指向拷貝后的str1首地址main2:lodsb;顯示拷貝后的str1字符串cmpal, 0jzexitcallpcharjmpmain2exit:movax, 4c00hint21hmain endp;功能:顯示字符;輸入?yún)?shù):AL中存放要顯示字符的ASCII;輸出參數(shù):無pcharprocmovdl, almovah, 2int21hretpcharendpcode endsend main8. 以10進(jìn)制形式顯示內(nèi)存中一有符號(hào)字節(jié)數(shù)據(jù)例:vardb0ffH屏幕應(yīng)顯示:The result is: -1data segment paravardb7fhstr1db0dh, 0ah, The result is: bufdb4 dup( )db$data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axmovbuf, +cmpvar, 0;判斷var是正數(shù),還是負(fù)數(shù)jgenextmovbuf, -negvar;若var為負(fù),則得到其相反數(shù)next:moval, varmovcx, 3movdl, 10leabx, buf+3main1:movah, 0divdl; (AX / 10)商 aladdah, 30h; (AX / 10)余數(shù) ahmovbx, ahdecbxloopmain1;循環(huán)3次,分別得到百、十、個(gè)位leadx, str1;顯示10進(jìn)制數(shù)movah, 9int21hexit:movax, 4c00hint21hmain endpcode endsend main9. 將一個(gè)16位的無符號(hào)數(shù)var, 轉(zhuǎn)換為非壓縮格式BCD碼,存放在內(nèi)存中buf開始的單元中。(按高位在前、低位在后的順序存放)data segment paravardw800Hbufdb5 dup(0)data endsss_seg segment stackdw100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmovax, datamovds, axmovcx, 16;(0*2 + B15)*2 + B14)*2 + + )*2 + B0main1:shlvar, 1;得到var的Bi位leabx, 4pushcxmovcx, 5main2:moval, bufbx;執(zhí)行buf*2 + Bi操作adcal, alAAA非壓縮格式BCD碼調(diào)整movbufbx, aldecbxloopmain2;內(nèi)循環(huán)為5次popcxloopmain1;外循環(huán)為16次exit:movax, 4c00hint21hmain endpcode endsend main選作題:10. 內(nèi)存中從str開始存放一字符串,結(jié)束符為NULL字符,請(qǐng)編寫程序統(tǒng)計(jì)該字符串中單詞的個(gè)數(shù)例:str1db0dh, 0ah, Hello world, welcome to DUT. CPU is central processing unit!, 0h統(tǒng)計(jì).中的單詞個(gè)數(shù),結(jié)果為1011 編寫程序用鍵盤17鍵,模擬7個(gè)音符,進(jìn)行鍵盤演奏!注:需要對(duì)8253的定時(shí)器2和8255的PB口進(jìn)行初始化習(xí)題5:1. 如圖4-1所示,8088 CPU工作在最小模式,通過3片8282與系統(tǒng)地址總線相連,通過1片8286與系統(tǒng)數(shù)據(jù)總線相連,外擴(kuò)1片27256(32K8 EPROM)和1片62256(32K8 RAM),要求EPROM起始地址為B0000H,RAM地址范圍緊隨其后,使用74LS138,采用全地址譯碼方式。(14分)1)寫出27256與62256的地址覆蓋范圍;(2分)2) 請(qǐng)完成8088最小模式下總線連接圖,并畫出系統(tǒng)總線與存儲(chǔ)器連接圖,其中存儲(chǔ)器讀/MEMR信號(hào)和存儲(chǔ)器寫/MEMW信號(hào),需要由8088 CPU的M/IO、/RD、/WR信號(hào)產(chǎn)生,連接時(shí)門電路自選。(12分)圖4-1 存儲(chǔ)器連接G174LS138G2AG2BCBAY0Y1Y2Y3Y4Y5Y6Y7GNDGNDGND+5VWE62256OED7D0D1D2D3D4D5D6CSA6A0A1A2A3A4A5A14A7A8A9A10A11A12A1327256OED7D0D1D2D3D4D5D6CSA6A0A1A2A3A4A5A14A7A8A9A10A11A12A13A7A0DIRB7B0OE8286D7D6D5D4D3D2D1D0A0A1A2A3A4A5A6A78282OEQ7Q0STBD7D0D7D0STBQ7Q0OE8282A15A14A13A12A11A10A9A8D7D0STBQ7Q0OE8282A19A18A17A168088MN/MXWRRDM/IODENDT/RAD7AD0A15A8ALEA19A16BHE習(xí)題5及答案:(存儲(chǔ)器擴(kuò)展)1. 如圖4-1所示,8088 CPU工作在最小模式,通過3片8282與系統(tǒng)地址總線相連,通過1片8286與系統(tǒng)數(shù)據(jù)總線相連,外擴(kuò)1片27256(32K8 EPROM)和1片62256(32K8 RAM),要求EPROM起始地址為B0000H,RAM地址范圍緊隨其后,使用74LS138,采用全地址譯碼方式。(14分)1)寫出27256與62256的地址覆蓋范圍;(2分)BHEA19A16ALEA15A8AD7AD0DT/RDENM/IORDWRMN/MX8088D7D0STBQ7Q0OE8282A19A18A17A16D7D0STBQ7Q0OE8282A15A14A13A12A11A10A9A8D7D0STBQ7Q0OE8282A7A6A5A4A3A2A1A0A7A0DIRB7B0OE8286D7D6D5D4D3D2D1D0A13A12A11A10A9A8A7A14A5A4A3A2A1A0A6CSD6D5D4D3D2D1D0D7OE27256A13A12A11A10A9A8A7A14A5A4A3A2A1A0A6CSD6D5D4D3D2D1D0D7OE62256WE+5VGNDGNDGNDG174LS138G2AG2BCBAY0Y1Y2Y3Y4Y5Y6Y7圖4-1 存儲(chǔ)器連接2) 請(qǐng)完成8088最小模式下總線連接圖,并畫出系統(tǒng)總線與存儲(chǔ)器連接圖,其中存儲(chǔ)器讀/MEMR信號(hào)和存儲(chǔ)器寫/MEMW信號(hào),需要由8088 CPU的M/IO、/RD、/WR信號(hào)產(chǎn)生,連接時(shí)門電路自選。(12分)1) 27256地址覆蓋范圍B0000HB7FFFH;62256地址覆蓋范圍B8000HBFFFFH連接圖文字說明如下:2) 總線連接l 8088 MN/MX引腳接+5V;A19A16引腳接第一片8282的D7D0;A15A8引腳連接第二片8282的D7D0;AD7AD0引腳同時(shí)連接到第三片8282的D7D0,也連接到8286的A7A0;DT/R引腳連接8286的DIR引腳,/DEN引腳連

注意事項(xiàng)

本文(《計(jì)算機(jī)原理》8套習(xí)題及答案自學(xué).doc)為本站會(huì)員(小**)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!