微機原理與接口技術(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、第一章1.1 解:五代,詳細(xì)見書1.2 解: 微型計算機:以大規(guī)模、超大規(guī)模集成電路為主要部件,以集成了計算機主要部件控制器和運算器的微處理器為核心,所構(gòu)造出的計算機系統(tǒng) 。PC機:PC(Personal Computer)機就是面向個人單獨使用的一類微機 。單片機:用于控制的微處理器芯片,內(nèi)部除CPU外還集成了計算機的其他一些主要部件,如:ROM、RAM、定時器、并行接口、串行接口,有的芯片還集成了A/D、D/A轉(zhuǎn)換電路等。 數(shù)字信號處理器DSP:主要面向大流量數(shù)字信號的實時處理,在宿主系統(tǒng)中充當(dāng)數(shù)據(jù)處理中心,在網(wǎng)絡(luò)通信、多媒體應(yīng)用等領(lǐng)域正得到越來越多的應(yīng)用1.3 解:微機主要有存儲器、I/

2、O設(shè)備和I/O接口、CPU、系統(tǒng)總線、操作系統(tǒng)和應(yīng)用軟件組成,各部分功能如下:CPU:統(tǒng)一協(xié)調(diào)和控制系統(tǒng)中的各個部件系統(tǒng)總線:傳送信息存儲器:存放程序和數(shù)據(jù)I/O設(shè)備:實現(xiàn)微機的輸入輸出功能I/O接口:I/O設(shè)備與CPU的橋梁操作系統(tǒng):管理系統(tǒng)所有的軟硬件資源1.4 解:系統(tǒng)總線:傳遞信息的一組公用導(dǎo)線,CPU通過它們與存儲器和I/O設(shè)備進(jìn)行信息交換 。好處:組態(tài)靈活、擴展方便 三組信號線:數(shù)據(jù)總線、地址總線和控制總線 。其使用特點是:在某一時刻,只能由一個總線主控設(shè)備來控制系統(tǒng)總線,只能有一個發(fā)送者向總線發(fā)送信號;但可以有多個設(shè)備從總線上同時獲得信號。1.5解:(1)用于數(shù)值計算、數(shù)據(jù)處理及

3、信息管理方向。采用通用微機,要求有較快的工作速度、較高的運算精度、較大的內(nèi)存容量和較完備的輸入輸出設(shè)備,為用戶提供方便友好的操作界面和簡便快捷的維護、擴充手段。(2)用于過程控制及嵌人應(yīng)用方向。采用控制類微機,要求能抵抗各種干擾、適應(yīng)現(xiàn)場的惡劣環(huán)境、確保長時間穩(wěn)定地工作,要求其實時性要好、強調(diào)其體積要小、便攜式應(yīng)用強調(diào)其省電。1.6 解:1.7 解: I/O通道:位于CPU和設(shè)備控制器之間,其目的是承擔(dān)一些原來由CPU處理的I/O任務(wù),從而把CPU從繁雜的I/O任務(wù)中解脫出來。由10根信號線組成(A9-A0)。1.8解: BIOS:基本輸入輸出系統(tǒng)。主要功能:用來驅(qū)動和管理諸如鍵盤、顯示器、打

4、印機、磁盤、時鐘、串行通信接口等基本的輸入輸出設(shè)備1.9 解:基本RAM區(qū):640KB保留RAM區(qū):128KB擴展ROM區(qū):128KB基本ROM區(qū):128KB1.10 解:(1)、數(shù)用來直接表征量的大小,包括:定點數(shù)、浮點數(shù)。(2)、碼用來指代某個事物或事物的某種狀態(tài)屬性,包括:二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制。區(qū)別:使用場合不同,詳見P16.1.11 解:(1)(2)(3)1.12 解:原碼 反碼 補碼+37 00100101/25H 00100101/25H 00100101/25H-37 10100101/A5H 11011010/DAH 11011011/DBH1.13 解: +37

5、-3716位 32位16位 32位00 25H00 00 00 25HFF 5BHFF FF FF 5BH1.14 解:無符號數(shù):70D補碼有符號數(shù):70DBCD碼:46DASCII:F1.15 解:1)、相加后若出現(xiàn)和大于9,則將和減去10后再向高位進(jìn)12)、若出現(xiàn)組間進(jìn)位,則將低位加61.16 解:詳見課本16頁。1.17 解:C3 40 20 001.18 解:5050H十進(jìn)制值5080二進(jìn)制十六進(jìn)制二進(jìn)制十六進(jìn)制0011 0010B32H0101 0000B50H1.19 解:D:44Hd:64HCR:0DHLF:0AH0:30HSP:20HNUL:00H1.20 解:國標(biāo)碼:36 5

6、0H機內(nèi)碼:B6 B0H第3章 3.2 解:(1)完整的匯編語言源程序由段組成(2)一個匯編語言源程序可以包含若干個代碼段、數(shù)據(jù)段、附加段或堆棧段,段與段之間的順序可隨意排列(3)需獨立運行的程序必須包含一個代碼段,并指示程序執(zhí)行的起始點,一個程序只有一個起始點(4)所有的可執(zhí)行性語句必須位于某一個代碼段內(nèi),說明性語句可根據(jù)需要位于任一段內(nèi)(5)通常,程序還需要一個堆棧段3.3 解:存儲模式特 點TINYCOM類型程序,只有一個小于64KB的邏輯段(MASM 6.x支持)SMALL小應(yīng)用程序,只有一個代碼段和一個數(shù)據(jù)段(含堆棧段),每段不大于64KBCOMPACT代碼少、數(shù)據(jù)多的程序,只有一個

7、代碼段,但有多個數(shù)據(jù)段MEDIUM代碼多、數(shù)據(jù)少的程序,可有多個代碼段,只有一個數(shù)據(jù)段LARGE大應(yīng)用程序,可有多個代碼段和多個數(shù)據(jù)段(靜態(tài)數(shù)據(jù)小于64KB)HUGE更大應(yīng)用程序,可有多個代碼段和多個數(shù)據(jù)段(對靜態(tài)數(shù)據(jù)沒有限制)FLAT32位應(yīng)用程序,運行在32位80x86CPU和Windows 9x或NT環(huán)境3.4 解:開始位置:用標(biāo)號指明返回DOS:利用DOS功能調(diào)用的4CH子功能來實現(xiàn)匯編停止:執(zhí)行到一條END偽指令時,停止匯編3.5 解:段定位、段組合和段類型。3.6 解:stack segment stackdb 1024(0)stack endsdata segment strin

8、g db 'Hello,Assembly!',0dH,0aH,$data ends code segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7 解:(1). EXE程序程序可以有多個代碼段和多個數(shù)據(jù)段,程序長度可以超過64KB通常生成EXE結(jié)構(gòu)的可執(zhí)行程序(2). COM程序只有一個邏輯段,程序長度不超過64KB需要滿足一定條件才能生成COM結(jié)構(gòu)的可執(zhí)行程序(MASM 6.x需要采用TINY模式)

9、3.8 解:符號定義偽指令有“等價EQU”和“等號”:符號名 EQU 數(shù)值表達(dá)式符號名 EQU <字符串> 符號名 數(shù)值表達(dá)式EQU用于數(shù)值等價時不能重復(fù)定義符號名,但“”允許有重復(fù)賦值。例如:X= 7;等效于:X equ 7X= X+5;“X EQU X+5”是錯誤的3.9 解:(1) al=67h(2) ax=133h,dx=4h(3) ax=0230h(4) al=41h(4) ax=7654h3.10 解:(1)41h42h43h1010h45h46h-1?444-1?444-1?444(2)10h00h0fbh0ffh?3.11 解:.data my1b db '

10、Personal Computer'my2b db 20my3b db 14hmy4b db 00010100bmy5w dw 20 dup(?)my6c = 100my7c = <'Personal Computer'>3.12 解:利用定位偽指令控制,如org,even,align3.13 解:包括邏輯地址和類型兩種屬性。3.14 解:;數(shù)據(jù)段org 100hvarwdw1234h,5678hvarbdb3,4varddd12345678hbuffdd10dup(?)messdb'Hello';代碼段movax,offsetvarb+ o

11、ffsetmessmovax,typebuff+ typemess+typevardmovax,sizeofvarw+ sizeofbuff+ sizeof messmovax,lengthofvarw+ lengthofvard3.15 解:(1) 1000超過一個字節(jié)所能表達(dá)的最大整數(shù)(2)SI應(yīng)為偶數(shù)(3)兩個內(nèi)存單元不能直接運算(4)應(yīng)改為al+1(5)條件轉(zhuǎn)移指令后面應(yīng)接標(biāo)號,而不是變量3.16 解:mov ah,1;只允許輸入小寫字母int 21hsub al,20h;轉(zhuǎn)換為大寫字母mov dl,almov ah,2int 21h;顯示3.17 解:mov bx,offset LE

12、Dtablemov al,lednumxlat3.18 解:mov ax, bufXcmp ax, bufYjae donemov ax, bufYdone:mov bufZ, ax3.19 解:.model small.stack.databufXdw -7signXdb ?.code.startupcmp bufX,0;test bufX,80hjl next;jnz nextmov signX,0jmp donenext:mov signX,-1done:.exit 0end3.20 解:mov dl,2mov ax,bufXcmp ax,bufYje next1dec dlnext1:

13、cmp ax,bufZje next2dec dlnext2:mov ah,2int 21h3.21 解:;代碼段mov al,numbermov bx,0;BX記錄為1的位數(shù)restart:cmp al,0;AL0結(jié)束jz doneagain:shr al,1;最低位右移進(jìn)入CFjc next;為1,轉(zhuǎn)移inc bx;不為1,繼續(xù)jmp againnext:push axpush bxshl bx,1;位數(shù)乘以2(偏移地址要用2個字節(jié)單元)jmp addrsbx;間接轉(zhuǎn)移:IPtableBX;以下是各個處理程序段fun0:mov dl,'0'jmp dispfun1:mov

14、dl,'1'jmp dispfun2:mov dl,'2'jmp dispfun3:mov dl,'3'jmp dispfun4:mov dl,'4'jmp dispfun5:mov dl,'5'jmp dispfun6:mov dl,'6'jmp dispfun7:mov dl,'7'jmp disp;disp:mov ah,2;顯示一個字符int 21hpop bxpop axjmp restartdone: 3.22 編制程序完成12H、45H、0F3H、6AH、20H、0FE

15、H、90H、0C8H、57H和34H等10個字節(jié)數(shù)據(jù)之和,并將結(jié)果存入字節(jié)變量SUM中(不考慮溢出和進(jìn)位)。;wjxt322.asm.model small.stack.datab_datadb 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h;原始數(shù)據(jù)numequ 10;數(shù)據(jù)個數(shù)sumdb ?;預(yù)留結(jié)果單元.code.startupxor si, si;位移量清零xor al, al;取第一個數(shù)mov cx, num;累加次數(shù)again:add al, b_datasi;累加inc si;指向下一個數(shù)loop again;如未完,繼續(xù)累加mov sum,

16、al;完了,存結(jié)果.exit 0end3.23 求主存0040h:0開始的一個64KB物理段中共有多少個空格?; wjxt323.asm.model small.codestart:mov ax,0040h;送段地址mov ds, axmov si, 0;偏移地址mov cx, si;計數(shù)(循環(huán)次數(shù))xor ax, ax;空格計數(shù)器清零again:cmp byte ptr si, 20h;與空格的ASCII碼比較jne next;不是空格,轉(zhuǎn)inc ax;是空格,空格數(shù)加1next:inc si;修改地址指針loop again;cxcx1,如cx0 退出循環(huán).exit 0end start3

17、.24 編寫計算100個16位正整數(shù)之和的程序。如果和不超過16位字的范圍(65535),則保存其和到wordsum,如超過則顯示overflow。答:;數(shù)據(jù)段countequ 100parraydw count dup(?);假設(shè)有100個數(shù)據(jù)wordsumdw 0msgdb overflow,$;代碼段mov cx,countmov ax,0mov bx,offset parrayagain:add ax,bxjnc nextmov dx,offset msgmov ah,9int 21h;顯示溢出信息jmp done;然后,跳出循環(huán)體next:add bx,2loop againmov

18、wordsum,axdone:3.25 編程把個16位無符號二進(jìn)制數(shù)轉(zhuǎn)換成為用8421BCD碼表示的5位十進(jìn)制數(shù)。轉(zhuǎn)換算法可以是:用二進(jìn)制數(shù)除以10000,商為“萬位”,再用余數(shù)除以1000,得到“千位”;依次用余數(shù)除以l00、10和l,得到“百位”、“十位”和“個位”。;wjxt325.asm .model small .stack 256 .data arraydw ?;源字?jǐn)?shù)據(jù) dbcddb 5 dup(?);五位bcd結(jié)果,高對高低對低 .code .startup mov dx, array;取源數(shù)據(jù)(余數(shù)) mov bx, 10000;除數(shù) mov cx, 10;除數(shù)系數(shù) mov

19、si, 4;目的數(shù)據(jù)高位位移量 again:mov ax, dx;dx.ax中存放被除數(shù) mov dx, 0div bx;除于bx,商ax,余數(shù)dx mov dbcdsi, al;商10,存結(jié)果 push dx;暫存余數(shù)mov ax, bx;除數(shù)除于10 mov dx,0div cx;dx.ax除于cx,商ax、余數(shù)0存在dx mov bx, ax;bx是除數(shù) pop dxdec si;目的數(shù)據(jù)位移量減1jnz againmov dbcd, dl;存?zhèn)€位數(shù)( < 10 ) .exit 0end3.26 解:(1)匯編語言中,子程序要用一對過程偽指令PROC和ENDP聲明,格式如下:過程名

20、PROC NEAR|FAR;過程體過程名ENDP(2)保護用到的寄存器內(nèi)容,以便子程序返回時進(jìn)行相應(yīng)的恢復(fù)。(3)改錯:crazyprocpishbxpushcxxorax,axxordx,dxagain:adda,bxadcdx,0incbxincbxloopagainpopcxpopbx3.27 解(不需調(diào)用HTOASC子程序):again:mov ah,1int 21hcmp al,1bh;ESC的ASCII碼是1bhje donemov dl,almov ah,2int 21h;是大寫字母則轉(zhuǎn)換為小寫字母jmp againdone:3.28 解答:asctobprocpush cxan

21、d dh,0fh;先轉(zhuǎn)換十位數(shù)shl dh,1;十位數(shù)乘以10(采用移位指令)mov ch,dhshl dh,1shl dh,1add dh,chand dl,0fh;轉(zhuǎn)換個位數(shù)add dh,dl;十位數(shù)加個位數(shù)mov al,dh;設(shè)置出口參數(shù)pop cxretasctobendp3.29 解:DIPASCproc;入口參數(shù):AL要顯示的一個16進(jìn)制數(shù)push cxpush dxpush axmov cl,4;轉(zhuǎn)換高位shr al,clcall HTOASCmov dl,al;顯示mov ah,2int 21hpop ax;轉(zhuǎn)換低位call HTOASCmov dl,al;顯示mov ah,2

22、int 21hmov dl,H;顯示一個字母“H”mov ah,2int 21hpop dxpop cxretDIPASCendpHTOASCproc;將AL低4位表達(dá)的一位16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼and al,0fhcmp al,9jbe htoasc1add al,37h;是0AH0FH,加37H轉(zhuǎn)換為ASCII碼ret;子程序返回htoasc1:add al,30h;是09,加30H轉(zhuǎn)換為ASCII碼ret;子程序返回HTOASCendp3.30 解:lucaseprocpush bxmov bx,offset stringcmp al,0je case0cmp al,1jz cas

23、e1cmp al,2jz case2jmp donecase0:cmp byte ptr bx,0je donecmp byte ptr bx,Ajb next0cmp byte ptr bx,Zja next0add byte ptr bx,20hnext0:inc bxjmp case0case1:cmp byte ptr bx,0je donecmp byte ptr bx,ajb next1cmp byte ptr bx,zja next1sub byte ptr bx,20hnext1:inc bxjmp case1case2:cmp byte ptr bx,0je donecmp

24、byte ptr bx,Ajb next2cmp byte ptr bx,Zja next20add byte ptr bx,20hjmp next2next20:cmp byte ptr bx,ajb next2cmp byte ptr bx,zja next2sub byte ptr bx,20hnext2:inc bxjmp case2done:pop bxretlucaseendp3.31 解:(1)用寄存器傳遞參數(shù):最簡單和常用的參數(shù)傳遞方法是通過寄存器,只要把參數(shù)存于約定的寄存器中就可以了由于通用寄存器個數(shù)有限,這種方法對少量數(shù)據(jù)可以直接傳遞數(shù)值,而對大量數(shù)據(jù)只能傳遞地址采用寄存器

25、傳遞參數(shù),注意帶有出口參數(shù)的寄存器不能保護和恢復(fù),帶有入口參數(shù)的寄存器可以保護、也可以不保護,但最好能夠保持一致(2)用共享變量傳遞參數(shù)子程序和主程序使用同一個變量名存取數(shù)據(jù)就是利用共享變量(全局變量)進(jìn)行參數(shù)傳遞如果變量定義和使用不在同一個源程序中,需要利用PUBLIC、EXTREN聲明如果主程序還要利用原來的變量值,則需要保護和恢復(fù)利用共享變量傳遞參數(shù),子程序的通用性較差,但特別適合在多個程序段間、尤其在不同的程序模塊間傳遞數(shù)據(jù)(3)用堆棧傳遞參數(shù)參數(shù)傳遞還可以通過堆棧這個臨時存儲區(qū)。主程序?qū)⑷肟趨?shù)壓入堆棧,子程序從堆棧中取出參數(shù);子程序?qū)⒊隹趨?shù)壓入堆棧,主程序彈出堆棧取得它們采用堆棧

26、傳遞參數(shù)是程式化的,它是編譯程序處理參數(shù)傳遞、以及匯編語言與高級語言混合編程時的常規(guī)方法3.32 解:方法:主程序?qū)⑷肟趨?shù)壓入堆棧,子程序從堆棧中取出參數(shù);子程序?qū)⒊隹趨?shù)壓入堆棧,主程序彈出堆棧取得它們注意:壓棧與彈棧必須要一一對應(yīng)。3.33 解:方法1:neg32proc;入口參數(shù):DX.AX32位有符號數(shù)neg ax;實現(xiàn)0DX.AX功能neg dx sbb dx,0;這條指令也可以用dec dx代替retneg32endp;出口參數(shù):DX.AX32位有符號數(shù)的補碼方法2:neg32proc;入口參數(shù):DX.AX32位有符號數(shù)not ax;實現(xiàn)DX.AX求反加1not dx add a

27、x,1adc dx,0retneg32endp;出口參數(shù):DX.AX32位有符號數(shù)的補碼3.34 解:;數(shù)據(jù)段arraydb 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90h;數(shù)組countequ $-array;數(shù)組元素個數(shù)resultdb ?;校驗和;代碼段mov bx,offset array;BX數(shù)組的偏移地址mov cx,count;CX數(shù)組的元素個數(shù)call checksum;調(diào)用求和過程mov result,al;處理出口參數(shù)mov ax,4c00hint 21h;計算字節(jié)校驗和的通用過程;入口參數(shù):DS:BX數(shù)組的段地址:偏移地址,CX元素個數(shù)

28、;出口參數(shù):AL校驗和;說明:除AX/BX/CX外,不影響其他寄存器checksumprocxor al,al;累加器清0sum:add al,bx;求和inc bx;指向下一個字節(jié)loop sumretchecksumendpend3.35 解:.model small.stack.datawdatadw 34abh.code.startupmov ax,wdatacall dispa.exit 0;dispaprocpush cxpush dxmov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,

29、alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop dxpop cxretdispaendp;dldispprocpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1:mov ah,2int 21hpop axretdldispendpend.model small.stack.datawdatadw 34abhwordtempdw ?.code.startupmov ax,wdatamov wordtemp,axcall dispa.exit 0;dispaprocpush cxp

30、ush dxmov cl,4mov dl,byte ptr wordtemp+1shr dl,clcall dldispmov dl,byte ptr wordtemp+1and dl,0fhcall dldispmov dl,byte ptr wordtempshr dl,clcall dldispmov dl,byte ptr wordtempand dl,0fhcall dldisppop dxpop cxretdispaendp;dldispprocpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1:mov ah,2int 21hp

31、op axretdldispendpend.model small.stack.datawdatadw 34abh.code.startuppush wdatacall dispapop ax;add sp,2.exit 0;dispaprocpush bpmov bp,sppush axpush cxpush dxmov ax,bp+4mov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop

32、dxpop cxpop axpop bpretdispaendp;dldispprocpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1:mov ah,2int 21hpop axretdldispendpend3.36 解: 如果利用共享變量傳遞函數(shù),且變量定義和使用不在同一個源程序中,需要利用PUBLIC、EXTERN聲明。3.37 解: (1)宏定義由一對宏匯編偽指令MACRO和ENDM來完成,格式如下:宏名MACRO 形參表;宏定義體ENDM宏定義之后就可以使用它,即宏調(diào)用:宏名 實參表 (2)宏調(diào)用的格式同一般指令一樣:在使用宏指

33、令的位置寫下宏名,后跟實體參數(shù);如果有多個參數(shù),應(yīng)按形參順序填入實參,也用逗號分隔 (3)宏展開:在匯編時,宏指令被匯編程序用對應(yīng)的代碼序列替代,這就是宏展開 宏展開的具體過程是:當(dāng)匯編程序掃描源程序遇到已有定義的宏調(diào)用時,即用相應(yīng)的宏定義體完全替代源程序的宏指令,同時用位置匹配的實參對形參進(jìn)行取代3.38 解: 宏調(diào)用的參數(shù)通過形參、實參結(jié)合實現(xiàn)傳遞,簡捷直觀、靈活多變。宏匯編的一大特色是它的參數(shù)。宏定義時既可以無參數(shù),也可以有一個或多個參數(shù);宏調(diào)用時實參的形式也非常靈活,可以是常數(shù)、變量、存儲單元、指令(操作碼)或它們的一部分,也可以是表達(dá)式;只要宏展開后符合匯編語言的語法規(guī)則即可。3.3

34、9 解: 宏:僅是源程序級的簡化:宏調(diào)用在匯編時進(jìn)行程序語句的展開,不需要返回;不減小目標(biāo)程序,執(zhí)行速度沒有改變通過形參、實參結(jié)合實現(xiàn)參數(shù)傳遞,簡捷直觀、靈活多變 子程序:還是目標(biāo)程序級的簡化:子程序調(diào)用在執(zhí)行時由CALL指令轉(zhuǎn)向、RET指令返回;形成的目標(biāo)代碼較短,執(zhí)行速度減慢需要利用寄存器、存儲單元或堆棧等傳遞參數(shù) 選擇:宏與子程序具有各自的特點,程序員應(yīng)該根據(jù)具體問題選擇使用那種方法。通常,當(dāng)程序段較短或要求較快執(zhí)行時,應(yīng)選用宏;當(dāng)程序段較長或為減小目標(biāo)代碼時,要選用子程序3.40 編寫一個宏指令move doprnd,soprnd,它實現(xiàn)任意尋址方式的字量源操作數(shù)soprnd送到目的操

35、作數(shù)doprnd,包括存儲單元到存儲單元的傳送功能。答:movemacro doprnd,soprndmov ax,soprndmov doprnd,axendm3.41 定義一個宏logical,用它代表4條邏輯運算指令:and/or/xor/test。注意需要利用3個形式參數(shù),并給出一個宏調(diào)用以及對應(yīng)宏展開的例子。答:logicalmacro lcode,dopd,sopdlcode dopd,sopdendm例如,如果使用“and ax,bx”指令,可以利用該宏定義,寫出宏指令如下:logical and,ax,bx3.42 解:utolmacrolocal nextcmp al,A;小

36、于“A”不轉(zhuǎn)換jb nextcmp al,Z;大于“A”不轉(zhuǎn)換ja nextadd al,20h;是大寫字母則轉(zhuǎn)換為小寫字母next:endm3.43 定義一個宏movestr strn,dstr,sstr,它將strn個字符從一個字符區(qū)sstr傳送到另一個字符區(qū)dstr解:(假設(shè)它們都在數(shù)據(jù)段)movestrmacro strn,dstr,sstrmov cx,dsmov es,cxmov cx,strnmov di,offset dstrmov si,offset sstrcldrep movsb;重復(fù)傳送ES:DIDS:SIendm第五章5.1 解:主存的作用:保存正在使用的、處于活動狀

37、態(tài)的程序和數(shù)據(jù)。輔存的作用:長期保存程序文件和數(shù)據(jù)文件,在需要時將這些文件調(diào)入RAM內(nèi)存并激活使用。cache的作用:提高對存儲器的訪問速度。虛擬存儲:由容量較小的主存和容量較大的輔存構(gòu)成,其目標(biāo)是擴大程序員眼中的主存容量。區(qū)別:通過存儲器訪問指令用戶可對主存進(jìn)行隨機訪問;用戶利用操作系統(tǒng)提供的用戶命令和功能調(diào)用對輔存進(jìn)行訪問。5.2 在半導(dǎo)體存儲器中,RAM指的是 隨機存取存儲器 ,他可讀可寫,但斷電后信息一般會 丟失 ;而ROM指的是 只讀存儲器 ,正常工作時只能從中 讀取 信息,但斷電后信息 不會丟失 。以EPROM芯片2764為例,其存儲容量為8K×8位,共有 8 條數(shù)據(jù)線和

38、 13 條地址線。用它組成64KB的ROM存儲區(qū)共需 8 片2764芯片。5.3 解:雙譯碼方式使得地址譯碼器的輸出線的數(shù)目大為減少,使得芯片設(shè)計得時候復(fù)雜度就低了。地址線A9A04根數(shù)據(jù)線I/O4I/O1片選CS*讀寫WE*5.4 解:假想的RAM有12根地址線、4根數(shù)據(jù)線片選端CS*或CE*:有效時,可以對該芯片進(jìn)行讀寫操作,通過對系統(tǒng)高位地址線的譯碼來選中各個存儲芯片 輸出OE*:控制讀操作。有效時,芯片內(nèi)數(shù)據(jù)輸出,該控制端對應(yīng)系統(tǒng)的讀控制線MEMR*(MRDC*) 寫WE*:控制寫操作。有效時,數(shù)據(jù)進(jìn)入芯片中,該控制端對應(yīng)系統(tǒng)的寫控制線MEMW*(MWTC*) 5.5 解:位片結(jié)構(gòu):每

39、個存儲單元具有一個唯一的地址,可存儲1位。(4116)字片結(jié)構(gòu):每個存儲單元具有一個唯一的地址,可存儲多位。(2114)5.6 解:組成單元速度集成度應(yīng)用SRAM觸發(fā)器快低小容量系統(tǒng)DRAM極間電容慢高大容量系統(tǒng)NVRAM帶微型電池慢低小容量非易失掩膜ROM:信息制作在芯片中,不可更改PROM:允許一次編程,此后不可更改EPROM:用紫外光擦除,擦除后可編程;并允許用戶多次擦除和編程EEPROM(E2PROM):采用加電方法在線進(jìn)行擦除和編程,也可多次擦寫Flash Memory(閃存):能夠快速擦寫的EEPROM,但只能按塊(Block)擦除5.7解:位擴充存儲器芯片數(shù)據(jù)位數(shù)小于主機數(shù)據(jù)線數(shù)

40、時,利用多個存儲器芯片在數(shù)據(jù)“位”方向的擴充;地址擴充(字?jǐn)U充)當(dāng)一個存儲器芯片不能滿足系統(tǒng)存儲容量時,利用多個存儲器芯片在“地址”方向的擴充 組成32KB存儲空間,用SRAM 2114(1K×4)需要64個芯片; 組成32KB存儲空間,用DRAM 4116(16K×1)需要16個芯片; 它們都需要進(jìn)行位擴充和地址擴充5.8解: 片選信號說明該存儲器芯片是否被選中正常工作,設(shè)置它可以比較方便地實現(xiàn)多個存儲器芯片組成大容量的存儲空間 存儲器片選信號通常與CPU地址總線的高位地址線相關(guān)聯(lián),可以采用“全譯碼”、“部分譯碼”、“線選譯碼”方式 采用全譯碼方式可以避免地址重復(fù) 采用部

41、分或線選譯碼可以節(jié)省譯碼硬件5.9解: 24165.10 解:5.11解:5.12 解:5.13解:5.14 解:動態(tài)隨機存取存儲器 (DRAM) 的存儲單元電路 動態(tài)存儲單元是由 MOS 管的柵極電容 C 和門控管組成的。數(shù)據(jù)以電荷的形式存儲在柵極電容上,電容 上的電壓高表示存儲數(shù)據(jù) 1 ;電容沒有儲存電荷,電壓為 0 ,表明存儲數(shù)據(jù) 0 。因存在漏電,使電容 存儲的信息不能長久保持,為防止信息丟失,就必須定時地給電容補充電荷,這種操作稱為 “ 刷新 ” 由于要不斷地刷新,所以稱為動態(tài)存儲。方法:采用“僅行地址有效”方法刷新;刷新周期:15µs刷新次數(shù):1285.15 解:4256

42、KBA19-A1645.16 解:訪問的局部性原理:在一個較短的時間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲器邏輯地址空間的很小范圍內(nèi)。指令地址的分布本來就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次。因此,對這些地址的訪問就自然地具有時間上集中分布的傾向。數(shù)據(jù)分布的這種集中傾向不如指令明顯,但對數(shù)組的存儲和訪問以及工作單元的選擇都可以使存儲器地址相對集中。這種對局部范圍的存儲器地址頻繁訪問,而對此范圍以外的地址則訪問甚少的現(xiàn)象,就稱為程序訪問的局部性。cache的作用:提高對存儲器的訪問速度。虛擬存儲:其目標(biāo)是擴大程序員眼中的主存容量。第七章7.1 解:總線:指可以由多個信息處理單元所共

43、享的信息通道。使用特點: 在某一時刻,只能由一個主設(shè)備控制總線,其他主設(shè)備此時可作為從設(shè)備出現(xiàn) 在某一時刻,只能有一個設(shè)備向總線上發(fā)送數(shù)據(jù),但可以有多個設(shè)備從總線上接收數(shù)據(jù)7.2在各種微機總線中,根據(jù)總線連接對象的不同可將它們分為以下幾類,它們是: 片內(nèi)總線、 芯片總線、 板級總線、 設(shè)備總線和互連總線_。例如,ISA總線屬于板級總線,USB總線屬于設(shè)備總線,I2C總線屬于芯片總線??偩€中除電源和地線外的信號線,也可按傳輸信息的不同分為以下3類,即:數(shù)據(jù)總線 、 地址總線 、 控制總線 。7.3 解: 分時復(fù)用就是一個引腳在不同的時刻具有兩個甚至多個作用 總線復(fù)用的目的是為了減少對外引腳個數(shù)

44、在訪問存儲器或外設(shè)的總線操作周期中,這些引腳在第一個時鐘周期輸出存儲器或I/O端口的低8位地址A7 A0,其他時間用于傳送8位數(shù)據(jù)D7 D07.4 解:并行總線:多維數(shù)據(jù)通過多根信號線同時進(jìn)行傳遞。并行同步傳輸、并行異步傳輸見P174。7.5 解:見P174.7.6 解:總線的性能指標(biāo)包括:總線寬度、標(biāo)準(zhǔn)傳輸、時鐘同步/異步、總線復(fù)用、信號線數(shù)、總線控制方式總線寬度:它是指數(shù)據(jù)總線的根數(shù), 用bit(位)表示,如8位、16位、32位、64位。7.9解: D0D7:8位雙向數(shù)據(jù)總線 A0A19:20位輸出地址總線 ALE:地址鎖存允許,每個CPU 總線周期有效 IOR*:I/O讀,輸出 IOW*

45、:I/O寫,輸出 IO CH RDY:I/O通道準(zhǔn)備好,輸入第九章9.1 解:軟件延時、不可編程的硬件定時、可編程的硬件定時9.2解:CLK時鐘輸入信號在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)值減1 GATE門控輸入信號控制計數(shù)器工作,可分成電平控制和上升沿控制兩種類型 OUT計數(shù)器輸出信號當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為0),OUT引腳上將產(chǎn)生一個輸出信號9.3解:8253每個通道有 6 種工作方式可供選擇。若設(shè)定某通道為方式0后,其輸出引腳為 低 電平;當(dāng) 寫入計數(shù)初值(并進(jìn)入減1計數(shù)器) 后通道開始計數(shù), CLK 信號端每來一個脈沖 減1計數(shù)器 就減1;當(dāng) 計數(shù)器減為0 ,則輸出引腳輸出 高 電平,表示計數(shù)結(jié)束。8253的CLK0接1.5MHz的時鐘,欲使OUT0產(chǎn)生頻率為300KHz的方波信號,則8253的計數(shù)值應(yīng)為 5(1.5MHz÷300KHz) ,應(yīng)選用的工作方式是 39.4解:(1) mov al,50h mov dx,207h out dx,al mov al,128

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論