




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z第1章進制及碼元1、進制轉換129= 81H= 10000001B=201Q298= 12AH= 100101010B=452Q1000= 3E8H= 1111101000B= 1750Q5DH= 1011101 B= 135 Q= 93 D3E8H= 1111101000 B= 1750Q= 1000 D;357Q=11101111 B= 0EF H= 239 D2、進制計算 100101102FE3F7,-119FFF7,-32759473、數據表示圍:一個字節的無符號數表示圍為0255,有符號數補碼表示圍為-l28+127。兩個字節的無符號數表示圍為065535,有符號數補碼表示
2、圍為32768+32767。N位二進制數的無符號數表示圍為0(2N-1),有符號數(補碼)表示圍為-2N-1(2N-1-1).4、35H代表的ASCII字符為5,代表十六進制數時等價的十進制值為53 ,代表壓縮8421BCD碼等價的十進制值為35 ,代表非壓縮8421BCD碼等價的十進制值為5。5、FFH代表無符號數時等價的十進制值為255 ,代表補碼有符號數時等價的十進制值為一1 ,代表反碼有符號數時等價的十進制值為一0 ,代表原碼有符號數時等價的十進制值為一l27。6、20的8位二進制補碼為 ECH ,原碼為 94H ,反碼為 EBH 。158的16位二進制補碼為009EH,原碼為009E
3、H ,反碼為 009EH 。7、英文字符一般在計算機占用1個字節,每個字節的最高位一定為 0 ,全角英文字符在計算機占用 2個字節,一個漢字在計算機占用 2 個字節,每個字節最高位為 1 。8、設階碼用8位補碼表示,尾數局部用16位補碼表示,則1/32+1/128+1/512的尾數局部及階碼分別為多少?第2章微機硬件根底1、請畫出計算機系統硬件圖。2、8086/88CPU為什么要分為BIU和EU兩大模塊?答:為了使取指和分析、執行指令可并行處理,提高CPU的執行效率。8086/88CPU有兩大模塊總線接口單元BIU和執行單元EU組成。3、簡述8086/88 CPU的兩大模塊BIU和EU的主要功
4、能及組成。答:如以下圖所示:4、簡述8086/88 CPU的14個存放器的英文名、中文名及主要作用。答:A*(Accumulator)(AH、AL)累加器,它是匯編編程中最常用的一個存放器,主要用于乘除運算、BCD運算、換碼、IO操作、串操作、中斷調用等。 B*(Base)(BH、BL)基址存放器,主要用于存放地址、基址(默認相對于DS段)等。 C*(Counter)(CH、CL)計數器,主要用于循環計數、串操作計數、移位計數(CL)等。D*(Data)(DH、DL)數據存放器,主要用于l6位乘除、問接IO、中斷調用等。 BP(Base Pointer)基址指針,主要用于存放地址、基址(默認相
5、對于SS段)等。 SP(Stack Pointer)堆棧指針(棧頂指針),主要用于存放棧頂地址。 SI(Source Inde*)源變址存放器,用于存放地址、變址、串操作源變址。 DI(Destination Inde*)目的變址存放器,用于存放地址、變址、串操作目的變址。 CS(Code Segment)代碼段存放器(代碼段),用于存放正在或正待執行的程序段的起始地址的高l6位二進制數據,即程序段的段地址。, DS(Data Segment)數據段存放器(數據段),用于存放正在或正待處理的一般數據段的起始地址的高l6位二進制數據,即一般數據段的段地址。 ES(E*tra Segment)附加
6、數據段存放器(附加段),用于存放正在或正待處理的附加數據段的起始地址的高l6位二進制數據,即附加數據段的段地址。 SS(Stack Segment)堆棧數據段存放器(堆棧段),用于存放正在或正待處理的堆棧數據段的起始地址的高l6位二進制數據,即堆棧數據段的段地址。 IP(Instruction pointer)指令指針,它的容始終是下一條待執行指令的起始偏移地址,與CS一起形成下一條待執行指令的起始物理地址。CS:IP的作用是控制程序的執行流程。IP一般會自動加l(邏輯加1、實際隨指令長度變化)移向下一條指令實現順序執行;假設通過指令修改CS或IP的值,則可實現程序的轉移執行。 PSW(Pro
7、gram Status word)程序狀態字,它其中有三個控制標志(IF、DF、TF)和6個狀態標志(SF、PF、ZF、OF、CF、AF)??刂茦酥臼怯糜诳刂艭PU*方面操作的標志,狀態標志是局部指令執行結果的標志。5、請畫出8086/88 CPU的部構造圖。答:如以下圖所示:6、請說明8086/88 CPU的標志位的英文名、中文名及填充方法。答:IF(Interrupt Enable Flag)中斷允許標志,用于控制CPU能否響應可屏蔽中斷請求,IF=1能夠響應,IF=0不能響應。 DF(Direction Flag)方向標志,用于指示串操作時源串的源變址和目的串的目的變址變化方向,DF-1
8、向減的方向變化,DF=0向加的方向變化。 TF(TrapFlag)陷阱標志(單步中斷標志),TF=1程序執行當前指令后暫停,TF=0程序執行當前指令后不會暫停。 SF(Sign Flag)符號標志,指令執行結果的最高二進制位是0還是l,為0,則SF=0,代表正數;為l,則SF=1,代表負數。我們一般是用十六進制數表示,則可以根據十六進制的最高位是落在O7還是落在8F之間,假設落在07之間則SF=0否則SF=1。 PF(Parity ChECk Flag)奇偶校驗標志,指令執行結果的低8位中1的個數是奇數個還是偶數個,假設為奇數個則PF=0,假設為偶數個則PF=1。 ZF(Zero Flag)零
9、標志,指令執行結果是不是為0,假設為0則ZF=1,否則ZF=0。 OF(Overflow Flag)有符號數的溢出標志,指令執行結果是否超出有符號數的表示圍,假設超過則0F=1,否則OF=0。我們可以通過判斷是否出現以下四種情況之一:正加正得負,正減負得負,負加負得正,負減正得正。假設出現則0F=1否則OF=0 CF(Carry Flag)進位借位標志無符號數的溢出標志),指令執行結果的最高位是否有向更高位進位或借位,假設有則CF=1,同時也代表無符號數溢出;假設無則CF=0,也代表無符號數未溢出。 AF(Au*iliary Carry Flag)輔助進位借位標志,低4位二進制是不是有向高位進
10、位或借位,假設有則AF=1,否則AF=0,其主要用于BCD修正運算。7、存分段組織的優缺點是什么?答:優點如下:(1)80868088 CPU中的存放器只有16位,如果采用它們直接尋址,則尋址能力勢必限制在64 KB圍,而采用分段組織可以較好地實現擴展CPU的尋址能力。每段的大小可達64 KB,不同段的組合則可尋址更大的圍。 (2)使程序與數據相對獨立,不同存取方式的數據也相對獨立。程序:存放于代碼段CS中堆棧方式:存放于堆棧段SS中數據:隨機方式:存放于數據段DS及附加段ES中 (3)便于程序和數據的動態裝配,從一個地方挪到另外一個地方只要更改一下段存放器的值即可,段偏移可以不用改變。缺點:
11、存地址采用分段組織增加地址計算的復雜度,降低了CPU的執行效率。8、1MB存最多可以有64K個不同的段地址,假設不允許重疊的話最多可有16個不同的段地址。不同的段間可以重疊。9、設DS=26FCH,B*=108H,SI=9A8H,試求出使DS:B*與ES:Sl指向同一物理地址的ES值。答:即DS:B*=ES:SI DS:B*=DS l6+B*=26FCH16+108H=270C8H ES:SI=ES16+SI=ES16+9A8HES=(270C8H一9A8H)l6=2672H10、接口、端口以及端口地址之間的對應關系如何?答:一個計算機系統有很多接口,一個接口一般有多個端口,一個端口可以有多個
12、端口地址與其對應(這叫重疊地址),一個端口地址可以對應多個端口(但需要繼續區分才能,如讀寫順序、讀寫信號、數據位、索引區分)。所以通過端口傳輸信息首先需要區分端口,區分端口可通過端口地址不同來區分。11、端口有哪些方法?答:1用I/O指令實現信息傳輸;2通過BIOS中斷調用實現信息傳輸;3通過DOS中斷調用實現信息傳輸。12、請根據圖2.3說明ADD A*, B*指令的取指及執行過程。自己看書13、8086/88 的20位物理地址是怎樣形成的?當CS=2000H, IP=0100H, 下一條待執行指令的物理地址等于多少?答:20位物理地址由段地址左移4位加偏移地址形成,下一條待執行指令等于CS
13、*10H+IP得到20100H。14、當前數據段位于存儲器的B1000H到BF0FFH圍,請指出DS段存放器的取值圍。答:DS段存放器的取值圍:AF10HB100H第3章尋址方式及指令系統1、指令是CPU可以理解并執行的操作命令,指令由操作碼和操作數兩局部組成,指令有兩個級別,即機器級和匯編級。2、請畫出程序執行流程示意圖。3、指令主要有哪些分類方式及其主要類別是什么答:指令分類有不同的方式。按操作數的個數將指令分為零地址指令(無操作數)、一地址指令(只有一個操作數)、二地址指令(有兩個操作數)、多地址指令(多于兩個操作數);按指令級別分為機器指令和匯編指令:按是否轉移分為轉移指令和順序指令;
14、按功能分為七大類:傳送類、算術運算類、位操作類、IO類、串操作類、CPU控制類、轉移類;按指令長度(即指令占用的字節數)分為l字節指令、2字節指令等,80868088指令長度是不同的,叫變字長,不同的指令有不同的指令長度,從16字節均有;按指令執行期間取操作數是否需要與總線打交道分為部指令(不需)和外部指令(需要),類似功能的指令部指令比外部指令執行速度快,所以在編程時盡量采用部指令即多用存放器優化程序。4、操作數的尋址方式有哪些并舉例說明其主要特點。答:操作數尋址方式主要有立即尋址方式、存放器尋地址、存儲器尋址方式、端口尋址方式4類。(1)立即尋址方式:操作對象是這個操作數本身,MOV AL
15、,5(2)存放器尋地址:操作對象是存放器中的容MOV A*,B*(3)存儲器尋址方式:操作對象是存地址所對應的存儲單元中的容,MOV A* 2000H (4)端口尋址方式:操作數是指明端口的地址、端口地址所對應的端口中的容是操作對象IN A*,46直接尋址。5、存尋址中段存放器與段偏移地址對應關系如何?6、設CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,B*=300H,BP=400H,SI=500H,則下一條待執行指令的物理地址為多少當前棧頂的物理地址為多少B*代表的存儲單元的物理地址為多少BP代表的存儲單元的物理地址為多少ES:B*+
16、SI代表的存儲單元的物理地址為多少答:下一條待執行指令的物理地址=CS16+IP=1000H16+IOOH=10100H。當前棧頂的物理地址=SS16+SP=4000H16+200H=40200H。B*代表的存儲單元物理地址=DS16+B*=2000H * l6+300H=20300H。BP代表的存儲單元物理地址=SS * l6+BP=4000H16+400H-40400H。ES:B*+SI代表的存儲單元物理地址=ES16+B*+SI=3000H16+300H+500H=30800H 7、試根據以下要求,分別寫出相應的匯編語言指令。(1)以存放器B*和DI作為基址變址尋址方式把存儲器中的一個字
17、送到D*存放器。答:MOV D*,B*+DI(2)以存放器B*和偏移量VALUE作為存放器相對尋址方式把存儲器中的一個字和A*相加,把結果送回到那個字單元。答:ADD VALUEB*,A*(3)將1字節的立即數0B6H與以SI作為存放器間接尋址方式的字節單元相比擬。答:CMP BYTE PTRSI,0B6H(4)將BH的高4位與低4位互換。答:MOV CL,4 ROR BH,CL;或者ROL BH,CL (5)測試B*的第3、7、9、12、13位是否同時為0。答:TEST B*,3288H; (6)將存放了09數值的DL存放器中的容轉化為相應的09的字符。答:ADD DL,30H;或者OR D
18、L,30H (7)將存放了AF字符的AL存放器中的容轉化為相應的數值。答:SUB AL,37H8、寫出去除A*存放器的多種方法并比擬要求單指令實現。答:1ANDA*,0;可以對A*清零,還可以去除進位位和影響到SF、ZF、PF標志位。2MOVA*,0;此條指令占用3個字節。3SUB A*,A* ;減法指令,該條指令只占用2個字節。4*OR A*,A*9、分別用存儲器的5種尋址方式實現將以A為首址的第5個字注意:從第0個算起送A*的指令序列。10、指出以下指令錯誤的原因。答:(1)MOV CL,300 ;300超過字節數據表示圍 (2)MOV CS,A* ;CS不能作為目的操作數 (3)MOV
19、B*,DL ;數據類型不匹配 (4)MOV ES,1000H :立即數不能送給段存放器 (5)INC B* ;數據類型不明確 (6)ADD A*,DS :段存放器不能參加運算 (7)TEST B*,C* ;存儲器間接尋址只能使用B*、Sl、Dl、BP四個之一 (8)SUB B*,BP+SI ;加減兩個操作數不能同時為存儲操作數 (9)JC SI ;條件轉移只有短轉移尋址方式(10)SHL B* ;少給一個說明移位次數的操作數,l或CL11、1CS=(1000)IP=(0155)2CS=(1000)IP=(176F)3CS=(1000)IP=(17C6)4CS=(2000)IP=(0146)5C
20、S=(1000)IP=(1770)6CS=(2000)IP=(0146)12、分別說明以下各組指令中的兩條指令的區別。答:(1)MOV A*,TABLELEA A*,TABLE假設TABLE為字變量名,則:左為將TABLE單元的容送A*,右為將TABLE單元的偏移地址送A*。假設TABLE為字節變量名,則:左為錯誤指令,右為將TABLE單元的偏移地址送A*假設TABLE為常量名,則:左為將TABLE的容送A*,右為錯誤指令(2)AND BL,0FHOR BL,0FH左為將BL的高4位清0,右為將BL的低4位置1(3)JMP SHORT Ll JMP NEA RPTR Ll左為短轉移,2字節的指
21、令,轉移圍為一l28+127右為近轉移,l字節的指令,轉移圍為-32 768+32 767(4)MOV A*,B*MOV A*,B*左為將B*的值送A*右為將B*的值作為相對DS段的存單元偏移地址,取出字單元值送A*(5)SUB D*,C*CMP D*,C*左為減法,并將D*-C*的值存入D*中右為比擬,做減法,但不會將D*-C*的值存入D*中(6)MOV BPSI,CL MOV DS:BPIESI,CL左邊第操作數默認為相對于SS段偏移的存儲器操作數右邊第一操作數采用段超越,指定為相對于DS段偏移的存儲器操作數13、寫出判斷AL為正為負的程序段(請至少用三種方法)。答:方法一:CMP AL,
22、80H ;而后用JAE代表負數轉移,代表正數轉移方法二:CMP AL,00H ;而后用JGE代表正數轉移,JL代表負數轉移方法三:TEST AL,80H ;而后用JNZ代表負數轉移,JZ代表正數轉移方法四:OR AL,AL ;而后用JNS代表負數轉移,JS代表正數轉移方法五:AND AL,AL ;而后用JNS代表負數轉移,JS代表正數轉移方法六:SUB AL,00H ;而后用JGE代表正數轉移,JL代表負數轉移方法七:TEST AL,80H :而后用JNS代表正數轉移,JS代表負數轉移14、思考題:試比擬以下幾條指令的功能。答:MOV B*,SI ;將SI的值送給B*MOV B*,SI ;將S
23、I的值作為偏移地址找到對應的存單元中的值送給B*MOV B*,OFFSETSI ;將Sl的值作為偏移地址找到對應存單元的偏移地址送給B*,即SI的值送給B* LEA B*,SI ;將Sl的值作為偏移地址找到對應存單元的偏移地址送給B*,即Sl的值送給B* LDS B*,SI ;將Sl值作為偏移地址找到對應存單元中的第一個字值送給B*,第二個字值送DS LES B*,SI :將SI值作為偏移地址找到對應存單元中的第一個字值送給B*,第二個字值送ES15、設B、D為字節變量,A、C為字變量,且A除B可能會溢出,試編寫無符號數或有符號數AB商送C,余數送D。答:可能會溢出則要考慮擴展數據表示能力。;
24、無符號數除法;有符號數除法MOV AL,B MOV AL,B*OR AH,AH CBWMOV B*,A* MOV B*,A*MOV A*,A MOV A*,A*OR D*,D* ;無符號擴展 CWD ;有符號擴展DIV B* IDIV B*MOV C,A* MOV C,A*MOV D,DL MOV D,DL16、編寫程序段實現D*、A*中32位二進制數*l0 (設不溢出)。答:;*10=*8+*2,用移位指令實現SHL A*,1RCL D*,1 :D*,A*=D*,A*2MOV B*,D*MOV BP,A* ;B*,BP轉存2倍值SHL A*,lRCL D*,l ;再乘2SHL A*,lRCL
25、 D*,1 :再乘2ADD A*,BPADC D*,B* ;8倍+2倍=10倍17、請編寫程序段實現如圖3.33所示功能。MOV SI,B*LDSB*,SI18、設已有定義STRDBSdfikjwsmfw893040pYUIUKLHGUkjdshf8NEQU$ - STR1試編寫實現在STR中查找是否存在非A的功能程序段。即表示STR串局部是A,假設其中存在不是A的字符則查找成功,假設STR全部為A則不成功。19、程序理解執行。(1) MOV AH,一l ;AH=FFH MOV AL,180 ;AL=B4H MOV BL,15 ;BL=0FH ID BL ;A*/BL即:-7615,商-5,余
26、數-l程序段執行后,A*=0FFFBH。說明:關鍵是要知道誰除以誰,特別注意是有符號除還是無符號除。(2) MOV AL,0CH ;AL=0CH OR AL,AL ;AL=0CH,CF=0 SBB AL,0F0H ;AL=lCH NEG AL ;AL=E4H,CF=1 ADC AL,0D4H ;AL=B9H TEST AL,35H ;AL=B9H,CF=0程序段執行后,CF= 0 ,AL=B9H。說明:第(1)、(2)小題只要理解每條指令功能及對標志位的影響,逐步進展即可完成。(3) MOV AL,08H MOV AH,一l ;A*=FF08H MOV B*,0F8H ;B*=00F8H CM
27、P A*,B*程序段執行后SFOF=1 ,CF= 0 。(4) MOV A*,中 ;A*的二進制高位為1,即落在負數圍 MOV B*,AB ;B*的二進制高位為0,即落在正數圍 CMP A*,B* 程序段執行后SFOF=1 ,CF= 0 。說明:第(3)(4)小題實質是考察有符號數和無符號數大小的比擬。(5) MOV A*,58 ;A*=3538H AND A*,0F0FH ;A*=0508H AAD ;A*=58=003AH程序段執行后A*= 003A H,即58。程序段的功能是:將兩位非壓縮BCD碼轉化為其對應的十六進制數。說明:可用AAD指令實現將十位和個位數值拼裝復原為099的十六進制
28、數。反之將099的數值別離成十位和個位可用AAM指令實現,教材匯編語言、微機原理及接口技術(第2版)例510和例513中均有應用。20、程序語句填空。(1)以下是完成120之間的奇數累加和存于AL中的程序段: *OR AL,ALMOV C*,10;循環次數 MOV BL,1AGAIN:ADD ALBLADD BL,2;步長,參數改變 LOOP AGAIN(2)以下是在串長為N的串STR中查找是否有M字符的程序段:MOV DI,SEG STR MOV ES,DI LEA Dl,STR CLD MOV C*,N MOV AL,7M7REPNE SCASB ;串查找核心指令 JZ FOUND ;轉到
29、找到分支(3) 以下是完成1位十六進制數*顯示的程序段: MOV DL,* AND DL,0FH ADD DL,30H ;或OR DL,30H CMP AL,9 E NE*TADD DL,7NE*T:MOV AH,02H INT 21H(4) 將DH中的二進制數看成壓縮BCD碼并送出顯示的程序段如下: MOV DL,DHMOV CL,4 ;獲取十位 SHR DL,CL ADD DL,30HMOV AH,2;2號功能調用顯示十位 INT 21H MOV DL,DHAND DL,0FH ;獲取個位 OR DL,30H INT 21H21、圖略22、假定A*和B*中的容為帶符號數,C*和D*的容為無
30、符號數,請用比擬指令和轉移指令實現以下條件轉移:(1)假設D*的容超過C*的容,則轉到Ll。答:CMP D*,C* JA Ll(2)假設B*的容大于A*的容,則轉到L2。答:CMP B*,A* JG L2(3)假設D*的容未超過C*的容,則轉到L3。答:CMP D*,C* JNA L3(4)判斷B*與A*相比擬是否產生溢出,假設溢出則轉到L4。答:CMP B*,A* JO L4(5)假設B*的容小于等于A*的容,則轉到L5。答:CMP B*,A* JLE L5(6)假設D*的容小于等于C*的容,則轉到L6。答:CMP D*,C* E L623、假設B*=0A69H,VALUE變量中存放的容為1
31、927H,寫出以下各條指令執行后的B*的存放器中和CF、ZF、SF與OF的值:(1) *OR B*,VALUE(2) AND B*,VALUE(3) OR B*,VALUE(4) SUB B*,VALUE(5) CMP B*,VALUE(6) TEST B*,VALUE答: B* CF ZF SF OF(1) 134EH 0 0 0 0(2) 0821H 0 0 0 0(3) 186FH 0 0 0 0(4) Fl42H 1 0 1 0(5) 0A69H 1 0 1 0(6) 0A69H 0 0 0 0第4章 MASM匯編語言1、名詞解釋指令偽指令宏指令匯編語句匯編語言匯編源程序匯編程序匯編連
32、接程序連接答:指令:是CPU可以理解并執行的操作命令。偽指令:是用于為匯編程序編譯時理解程序框架、分配空間數據定義等的匯編語句。宏指令:實質上就是有多條指令打包而成的一組指令的集合。匯編指令:一行只能寫一條匯編語句,一條匯編只能寫在一行。匯編語言:語句中的表達式是在匯編過程中完成計算的,即翻譯之后的機器語言程序中是不包含表達式的。匯編源程序:主要有四步,錄入源程序、匯編、連接、運行、調試運行。不準確匯編程序:編寫匯編程序實質上就是在記住程序框架的根底上填寫兩空,即數據定義部分和功能程序局部。匯編:格式:MASM 盤符路徑程序根本名.ASM 建議程序根本名不要省略.連接程序: 編譯器和匯編程序都
33、經常依賴于連接程序,它將分別在不同的目標文件中編譯或匯編的代碼收集到一個可直接執行的文件中。連接程序還連接目標程序和用于標準庫函數的代碼,以及連接目標程序和由計算機的操作系統提供的資源連接:LINK 盤符路徑程序根本名.OBJ建議程序根本名不要省略。2、寫出三種匯編語句的根本格式并進展說明。教材P503、由用戶取名的名字項有哪些?名字項的取名規則如何?教材P504、請計算以下表達式的值。答(1) 3+63*4 mod 3 ;注意運算優先級,值為5(2) (M GT N) AND N OR M LE N AND M ;M,N中的較小值(3) 5 GT 3 (作為8位和16位二進制數各為多少) ;
34、0FFH和0FFFFH(4) 20 AND 77(作為8位和16位二進制數各為多少) ;04H和0004H(5) 5 AND-1 :5(6) 5 OR-1 ;-l(7) NOT 5 (作為8位和16位二進制數各為多少) ;0FAH和0FFFAH,均為-6(8) 設有定義如下: A DB 2,4,6,8 B DW 2,4,6,8 C DW 5 DUP(2,4,6,8)則TYPE A、TYPE B和TYPE C分別為多少 ;1,2,2 LENGTH A、LENGTH B和LENGTH C分別為多少 ;1,1,5 SIZE A、SIZE B和SIZE C分別為多少 ;1,2,105、匯編語言中的數據
35、類型與其他高級語言的數據類型相比擬有哪些特點6、設有如下定義:A DB 1101B,34,56Q,78H,4 DUP (),ABCD請畫出存分配示意圖并將其改成存中存放次序一樣的DW及DD的等價定義語句。答:圖自己畫。A DW 220DH,782EH,2 DUP(),4241H,4443HB DD,782E220DH,44434241H7、一個匯編源程序最多可以定義多少個段?段存放器與所定義的段之間的對應關系是怎樣實現的?答:最多4個段,通過段對應偽指令ASSUME 段存放器名:段名來實現的對應。8、設置一個數據段DATA,其中連續存放6個變量,用段定義語句和數據定義語句寫出數據段:(1)A1
36、為字符串變量:E*ample。(2)A2為數值字節變量:l00,127,-l,80H,35Q,1101110B。(3)A3為4個0的字變量。(4)A4為A3的元素個數。(5)A5為A3占用的字節數。(6)A6為Al,A2,A3,A4,A5占用的總字節數。答:DATA SEGMENT A1 DB E*ample A2 DB l00,127,一l,80H,35Q,ll0111013 A3 DW 4 DUP(0) A4 DW LENGTH A3 A5 DW A4一A3 ;或SIZE A3 A6 DW $一AlDATA ENDS9、指出以下每一小題中的偽指令表達的操作哪些是錯誤的?錯誤在哪里?自己做。
37、10、指令OR A*, 0FC8H OR 563FH中,問兩個OR操作分別在什么時候進展?有什么區別?用立即數寫出此等價指令。答:第一個OR是CPU執行指令時完成的操作,第二個OR是匯編程序匯編時完成的操作。用立即數寫出的等價指令是OR A*, 5FFFH。11、指出以下每一對偽指令語句的區別自己做。12、請進展宏與子程序的比擬。教材P6013、請用流程圖表示完整匯編程序的上機過程。教材P6114、請默寫兩段程序的根本框架。教材P6015、請寫出兩字節數據相乘保存于字中的宏定義。答:參考代碼如下:ABMMACRO OPR1,OPR2,OPR3 ;宏定義,三個形參PUSH A*PUSH B* M
38、OV AL,OPR1MOV BL,OPR2MUL BLMOV OPR3,A*POP B*POP A*ENDM ;宏定義完畢第5章匯編程序設計1、程序的三種根本構造是什么?請分別畫出各自核心局部的流程圖。P662、請畫出將1字節二進制數據轉化成十六進制數顯示的流程圖。自己畫3、編程實現兩個字節變量相乘送字變量的程序。答:DATA SEGMENT A DB l2H B DB 34H C DW DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV A*,DATA MOV DS,A* MOV AL,A MUL B MOV C,A* :C=AB MO
39、V AH,4CH ;返回DOS INT 21HCODE ENDS END START4、編程實現從鍵盤接收2個一位十進制數并計算和顯示它們的積。(如輸入7和9則顯示為:7*9=63)答:CODE SEGMENT ASSUME CS:CODEAGAINl:MOV AH,1 ;錄入第一位 INT 2lH CMP AL,0 AGAINl CMP AL,9 JA AGAINl MOV DH,AL SUB DH,30H MOV DL,* ;顯示* MOV AH,2 INT 21HAGAIN2:M0V AH,1 ;錄入第二位 INT 21H CMP AL,0 AGAIN2 CMP AL,9 JA AGAI
40、N2 SUB AL,30H MUL DH ;相乘 AAM ;別離十位和個位 MOV DH,AL ;暫存個位 MOV DL,AH :顯示十位 ADD DL,30H MOV AH,2 INT 21H MOV DL,DH ;顯示個位 ADD DL,30H INT 21H MOV AH,4CH INT 21HCODE ENDS END AGAINl5、編程實現從鍵盤接收兩位十六進制數并將其轉化為等值的十進制數顯示出來如輸入7CH=124,要求至少設計一個子程序自己寫6、編程實現三個變量值的排序(分別用無符號數和有符號數處理)。答:實現A、B、C三個變量從小到大排序的程序如下。DATA SEGMENTA
41、 DB l2HB DB 34HC DB 23HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV A*,DATA MOV DS,A* MOV AL,A CMP AL,B E NE*Tl ;無符號,有符號用JLE *CHG AL,B MOV A,ALNE*Tl:CMP AL,C E NE*T2 :無符號,有符號用JLE *CHG AL,C MOV A,ALNE*T2:MOV AL,B CMP AL,C E NE*T3 ;無符號,有符號用JIE *CHG AL,C MOV B,ALNE*T3:MOV AH,4CH ;返回DOS INT 21H
42、CODE ENDS END START7、編程實現任意個有符號字節數據之和(和要求用字變量存放)。答:DATA SEGMENT A DB ;任意個字節數據 N EQU $-A ;元素個數 SUM DW DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTAR:MOV A*,DATA MOV DS,A* LEA SI,A *OR D*,D* MOV C*,NAGAIN:MOV AL,SI】 CBW ADC D*,A* LOOP AGAIN MOV SUM,D* MOV AH,4CH :返回DOS INT 21HCODE ENDS END START8、編
43、寫一個菜單項選擇擇處理程序。自己寫9、編寫一子程序實現從*字數組中選出最大值。答:求數組元素最大值過程名MA*,數組首址為Sl,元素個數為C*,最大值由A*帶出。MA* PROC NEAR PUSH SI PUSH C* MOV A*,S1AGAIN:CMP A*,SI JGE NE*T ;有符號數,假設為無符號數則JAE MOV A*,SINE*T:INC SI INC SI LOOP AGAIN POP C* POP SI RETMA* ENDP10、編寫一子程序實現從*字數組中求出平均值(設其和不會超出圍)。答:;求數組元素之和函數SUM,數組首址為Sl,數組元素個數為C*,和由A*帶出
44、。SUM PROC NEAR PUSH SI PUSH C* *OR A*,A*AGAIN:ADD A*,S1 INC Sl INC SI LOOP AGAIN POP C* POP Sl RET SUM ENDP11、從鍵盤接收一串字符,并另起一行逆序顯示該字符串。答:DATA SEGMENT BUF DB 81,0,81 DUP()DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV A*,DATA MOV DS,A* LEA D*,BUF MOV AH,l0 ;接收一串字符 INT 2lH MOV DL,0DH ;顯示回車換行 MOV
45、 AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV CL,BUF+1 ;取接收的字符數 *OR CH,CH LEA B*,BUF+1 ADD B*,C* ;B*指向串尾AGAIN:MOV DL,B* ;逆向顯示 MOV AH,2 TNT 21H DEC B* LOOP AGAIN MOV AH,4CH INT 2lHCODE ENDS END START12、假設密碼為123456,從鍵盤接收密碼并驗證,假設正確則顯示歡送使用本系統,否則顯示密碼錯誤,您無權使用!。自己寫13、從鍵盤輸入1字節的兩位十六進制數據,并分別用二進制、八進制、十進制、十六進制顯
46、示出來其等價的值。自己寫第6章 Intel 808688微處理器1、8086/88 和傳統的8位計算機相比在執行指令方面有什么不同?有什么優點?答:總線接口局部和執行局部是分開的,每當EU執行一條指令時,造成指令隊列空出2個或空出一個指令字節時,BIU馬上從存中取出下面一條或幾條指令,以添滿他的指令隊列。這樣,一般情況下,CPU在執行完一條指令后,便可馬上執行下一條指令,不像以往8位CPU那樣,執行完一條指令后,需等待下一條指令。即EU從指令隊列中取指令、執行指令和BIU補充指令隊列的工作是同時進展的。這樣大大提高了CPU利用率,降低了系統都對存儲器速度的要求。2、8086有哪兩種工作模式?其
47、主要區別是什么?答:答:8086有最大和最小兩種工作模式,最小工作模式是指MNM*引腳為高電平,系統中只有80868088微處理器,系統中的所有控制信號都直接由CPU產生。最大工作模式是指MNM*引腳為低電平,它是相對于最小模式而言的,系統中除了80868088作為處理器外,還包含數值運算協處理器8087、輸入輸出協處理器8089,以及總線控制器8288和總線仲裁控制器8289等支持芯片,從而可以完成更復雜的運算或控制任務。3、請畫出8086/88 CPU功能模塊圖4、請說明8088與8086的主要區別。答:教材P81、P82和P915、請畫出8088CPU最小模式核心示意圖。參考P85圖6.
48、8最小模式的8086CPU子系統圖6、請畫出8088CPU最大模式核心示意圖。參考P87圖6.10最大模式的8086CPU子系統7、8284時鐘發生器的功能是什么?它產生哪些信號?這些信號有何作用?教材P838、80868088的根本總線周期由幾個時鐘周期組成IBM PC*T機中CPU的時鐘周期包括多少一個輸入或輸出總線周期包括多少個時鐘周期答:80868088的根本總線周期由4個時鐘周期組成。mM PC*T機中CPU的時鐘周期是210 nS,一個輸入或輸出總線周期至少是4個時鐘周期。說明:總線周期CPU的BIU取指令和傳送數據需要的時間。一個根本的總線周期由4個時鐘周期(T狀態)組成,即T1
49、、T2、T3、T4狀態。(1)在T1狀態,CPU向地址數據復用線(ADl5ADO)和地址狀態復用線(AldS6A1dS3)上發送地址信息,產生本次操作的地址。(2)在T2狀態,CPU從總線上撤銷地址信息,并向地址狀態復用線(A19S6AldS3)上發送本次操作的狀態信息(S6S3);在讀操作下,地址數據復用線(ADl5ADO)浮空(高阻),為接收數據做準備;在寫操作下,地址/數據復用線出現本次操作的數據。(3)在T3狀態,地址,狀態復用線仍為狀態信息,地址數據復用線出現本次操作的數據(讀或寫數據)。(4)在有些情況下,外設或存儲器數據傳輸的速度跟不上CPU,則向CPU發出未準備好信號(READ
50、Y=0),CPU在T3狀態后自動插入1個至多個等待周期TW,直至READY=1為止,進入T4狀態。(5)在T4狀態,總線周期完畢。(6)假設CPU不執行總線操作(不存儲器或IO),系統總線則執行空閑周期Ti;在執行空閑周期時,總線高4位保存前一個總線周期的狀態信息;假設前一個總線周期為寫操作,則地址數據復用線仍保存寫數據,假設為讀操作,則地址數據復用線浮空。9、在T1狀態下,80868088數據地址線上傳送的是什么信息?用哪個信號可將此信息鎖存起來?數據信息是在什么時候送出的?在IBMPC*T機中是怎樣使系統地址總線和系統數據總線同時分別傳送地址信息和數據信息的?答:在T1狀態下,808680
51、88數據地址線上傳送的是地址信息Al5A0,地址鎖存信號ALE引腳為高電平時,地址被鎖存。數據信息是在DEN信號有效的時候送出,即主要在T2至乃期間。地址數據分時復用主要是用到地址鎖存器(ALE有效)鎖存地址送上數據總線,DEN有效數據緩沖器開通實現數據總線與CPU相通。10、簡述讀存的根本過程。答:讀存的過程其實就是取指令(或取數)的過程,具體如下: (1)CPU先將待取指令(數據)的地址送上地址總線并譯碼指定到對應的存單元。 (2)CPU再發出讀信號。 (3)存單元容的送出指令到數據總線。 (4)指令(數據)通過數據總線送到CPU。 (5)因為是取指令,CPU部存入指令隊列(取指特有)。1
52、1、簡述寫存的根本過程。教材P9012、根據8086存讀/寫時序圖,答復如下問題:1地址信號在哪段時間有效?T1周期2讀操作與寫操作的區別?教材P89、P903存讀寫時序與I/O讀寫時序的區別?讀寫控制引腳有效性不同,要給出具體引腳。4什么情況下需要插入等待周期TW?教材P8913、請畫出8088最大模式讀存時序圖。參考P90圖6.13 8086讀總線周期時序圖最大模式,根據地址引腳和數據引腳的區別進展修改8088只有8個數據引腳14、請畫出8088最小模式寫IO時序圖。參考P91圖6.14 8086寫總線周期時序圖最小模式,根據下面提到的8088和8086的最小模式讀寫存或者IO時序的區別進
53、展修改。15、總線響應的條件是什么?教材P9216、簡述總線請求/響應的根本過程。教材P9217、RESET信號來到后,80868088系統的CS和IP分別為什么容?復位時執行的第一條指令的物理地址是多少?答:RESET信號來到后,8086,8088系統的CS和IP分別為0FFFFH和0000H。18、編寫使計算機軟啟動的功能程序段。第7章存組成、原理與接口1、存取周期是指(C)。 A存儲器的讀出時間 B存儲器的寫入時間 C存儲器進展連續讀和寫操作所允許的最短時間間隔 D存儲器進展連續寫操作所允許的最短時間間隔2、*計算機的字長是16位,它的存儲器容量是64KB,假設按字編址,則它的最大尋址圍
54、是(B)。 A64K字 B32K字 C64KB D32KB3、*一RAM芯片的容量為5128位,除電源和接地線外,該芯片的其他引腳數最少應為(D)。 A25 B23 C21 D19注:地址線9根,數據線8根,控制線2根。4、EPROM是指(D)。 A隨機讀寫存儲器 B只讀存儲器 C可編程的只讀存儲器 D可擦除可編程的只讀存儲器5、以下RAM芯片各需要多少個地址引腳和數據引腳 (1)4K8位 (2)512K4位 (3)1Ml位 (4)2K8位答:SRAM:(1)12和8 (2)19和4 (3)20和1 (4)11和8DRAM:(1)6和16 (2)5和8 (3)10和2 (4)6和16 。6、以
55、下ROM芯片各需要多少個地址引腳和數據引腳 (1)164位 (2)32 8位 (3)2564位 (4)512 8位答:(1)4和4 (2)5和8 (3)8和4 (4)9和87、存儲器按功能、性質和信息存取方式分別可分為哪些類型?教材P958、計算機的存和外存有什么區別答:存用于存放當前正在運行的程序和正在使用的數據,CPU可以直接對它進展。相對于外存而言,存主要特點是存取速度快、存儲容量較小、本錢較高,通常使用半導體存儲器組成。外存用于存放當前暫不使用的或需要永久性保存的程序、數據和文件,在需要重用時才成批地調入,調出存。外存的主要特點是存儲容量大、本錢較低、存取速度較慢,必須使用專門的設備(
56、如磁盤驅動器、光盤驅動器、磁帶機)才能,一般使用磁性介質如磁盤、磁帶)或光介質(如光盤)實現。9、微機中為什么要使用層次構造的存儲系統?教材P9710、簡要答復以下問題:1按信息存儲的方式,RAM可分為哪三種?只讀、直接存取、順序存取2只讀存儲器按功能可分為哪四種?教材P963SRAM和DRAM主要有哪些區別?SRAM特點:SRAM的根本存儲單元是6管雙穩態觸發電路存儲信息。每個根本存儲元存儲二進制數一位,許多個根本存儲元形成行列存儲矩陣。SRAM一般采用字構造存儲矩陣:每個存儲單元存放多位4、8、16等速度快5ns,不需刷新,外圍電路比擬簡單,但集成度低存儲容量小,約1Mbit/片,功耗大。
57、在PC機中,SRAM被廣泛地用作高速緩沖存儲器CacheDRAM特點:DRAM的存儲元主要由電容構成;存儲信息不穩定,需要讀出再生放大電路定時刷新。每次同時對一行的存儲單元進展刷新DRAM一般采用位構造存儲體:每個存儲單元存放一位存儲容量高集成度高,功耗低,存取速度較低,價格廉價,主要用作主存。4閃存Flash ROM的主要優點是什么?教材P9611、用以下芯片構成存儲系統,各需要多少個RAM芯片?需要多少位地址作為片外地址譯碼?設系統為20位地址線,采用全譯碼方式。 (1)5124位RAM構成l6KB的存儲系統。 (2)10241位RAM構成l28KB的存儲系統。 (3)2K4位RAM構成6
58、4KB的存儲系統。 (4)64K1位RAM構成256KB的存儲系統。答:(1)需要64片RAM和11位地址作為片外地址譯碼。(2)需要l024片RAM和10位地址作為片外地址譯碼。(3)需要64片RAM和9位地址作為片外地址譯碼。(4)需要32片RAM和4位地址作為片外地址譯碼。12、*微機控制系統中的RAM容量為4K8位,首地址為4800H,求其最后一個單元的地址。答:最后一個單元地址=起始地址+容量一1 4800H+1000H一1=57FFH 、13、*微機系統中存的首地址為3000H,末地址為63FFH,求其存容量。答:容量=最后一個單元地址一起始地址+1 63FFH3000H+1=34
59、00H=13KB14、*微機系統中ROM為6KB,最后一個單元的地址為9BFFH,RAM為3KB。其地址為連續的,且ROM在前,RAM在后,求該存系統的首地址和末地址。答:9BFFH-1800H+1=8400H,所以ROM的首地址為8400H、末地址為9BFFH。RAM的首地址為9C00H,末地址為9C00H+C00H一1=A7FFH。15、用半導體存儲器芯片組成存子系統時需注意哪些問題?三總線AB、DB、CB的一般接法?教材P11016、存系統的芯片選擇通常有哪幾種形式,各有何特點答:有全譯碼法、局部譯碼法和線選法三種。在存譯碼電路中,系統的全部地址總線都參與地址譯碼,對應存儲器芯片中的每一
60、個存儲字都有唯一確實定地址,稱之為全譯碼法。如果仍使用集成譯碼器,但片外地址中有一局部不參加對存的片選譯碼,稱為局部譯碼法。如果只使用一些根本的邏輯門電路與門、或門和非門的組合,對假設干位片外地址譯碼實現對存的片選,稱為線選法。17、相對于SRAM,DRAM需要解決哪些特殊問題?教材P11318、在圖7.23中,如果將片選控制信號從。依次改接到。,各芯片的地址圍為多少?注:高位地址沒變,只有地位片譯碼地址變了,列表畫出來各芯片的地址表即可找出地址圍。19、使用2732、6116和74LSl38構成一個存儲容量為12KB ROM(地址00005H02FFFH)、8KB RAM地址(03000H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省遼陽太子河區五校聯考2024-2025學年初三月考試卷(二)物理試題含解析
- 永平縣2024-2025學年三年級數學第二學期期末聯考試題含解析
- 江蘇省泰州市泰興市黃橋教育聯盟重點名校2024-2025學年初三年級五月份月考卷語文試題含解析
- 興義市第八中學2025年高三接軌考試物理試題文試題含解析
- 勞務分包安全合同
- 抵押車借款合同二零二五年
- 美甲美睫店員工正式聘用合同書范例
- 婚戀中介合同書范例
- 場地租賃保證金合同書二零二五年
- 二零二五商鋪轉租租賃簡單合同書范例
- 義務教育道德與法治課程標準試題(2022版)
- 軟件系統功能需求調研表信息系統項目需求調研表
- GB/T 3956-2008電纜的導體
- 美國史-教學講解課件
- 第六章-復合材料課件
- 民事訴訟法學課件第十四章
- 電力工程鋼網架安裝工程檢驗批質量驗收記錄表
- 小學三年級音樂《馬蘭謠》課件
- 大學有機化學復習重點
- 國家開放大學《大學語文》形考任務1-5參考答案
- 汽車起重機基本結構、工作原理課件
評論
0/150
提交評論