南郵微機(jī)期中習(xí)題及復(fù)習(xí)課、課后習(xí)題答案.ppt_第1頁(yè)
南郵微機(jī)期中習(xí)題及復(fù)習(xí)課、課后習(xí)題答案.ppt_第2頁(yè)
南郵微機(jī)期中習(xí)題及復(fù)習(xí)課、課后習(xí)題答案.ppt_第3頁(yè)
南郵微機(jī)期中習(xí)題及復(fù)習(xí)課、課后習(xí)題答案.ppt_第4頁(yè)
南郵微機(jī)期中習(xí)題及復(fù)習(xí)課、課后習(xí)題答案.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余33頁(yè)可下載查看

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、匯編語(yǔ)言習(xí)題課及期中課程小結(jié) (2013/10/25),Revised by Deng yulong Oct,2013,第1次作業(yè) (P.15 ) 1。 (1) (29.6875)10 (2) (10010011)2 ,(93)16 (3) (940)10 (4) (01100000)2 (對(duì)應(yīng)十進(jìn)制96,將96變成二進(jìn)制) (5) (FF)16, (-5B)16(寫(xiě)成(DB)16是原碼形式,不是真值) (6) (-0E)16(寫(xiě)成(- E)16 嚴(yán)格上講是不正確的,注意字長(zhǎng)為8位), (-72)16 ,(-71H)16, (8E)16 (7) (a) 45H 或 69 ,無(wú)溢出 (注意要有計(jì)

2、算過(guò)程) (b) -6EH或 -110 ,無(wú)溢出 (c) -46H或-70 ,無(wú)溢出 (d) -76H 或 -118 , 有溢出 容易出錯(cuò): (1)真值數(shù)與原碼的差別 (2) 溢出的判斷方法(應(yīng)使用公式計(jì)算),第2次作業(yè)(補(bǔ)充) 一個(gè)有16個(gè)字的數(shù)據(jù)區(qū),它的起始地址為70A0H:DDF6H,請(qǐng)寫(xiě)出這個(gè)數(shù)據(jù)區(qū)首末字單元的物理地址。 首字單元 邏輯地址:70A0H:DDF6H 對(duì)應(yīng)物理地址:70A00H+DDF6H=7E7F6H 末字單元 邏輯地址: 70A0H:(DDF6H+30=DDF6H+1EH=DE14H) 對(duì)應(yīng)物理地址:70A00H+DE14H=77E814H 容易出錯(cuò):末字單元和末字節(jié)

3、單元的含義,第2,3次作業(yè)(p.85) 1. (1) 1234H:5678H - 179B8H (2) 2F34H:2F6H 即2F34H:02F6H-2F636H (3) 576AH:1024H - 586C4H (4) 2FD0H:100H 即 2FD0H:0100H -2FE00H 容易出錯(cuò): (1)16進(jìn)制加法 (2) 邏輯地址長(zhǎng)度(16位),(p.85) 2. 尋址方式 (1) MOV BX,50 寄存器,立即 (2) CMP BX,100 CMP BYTE PTRBX, 100 間址訪問(wèn)數(shù)據(jù)段,立即 (3) ADD SI, 1000 ADD WORD PTR SI,1000 間址訪

4、問(wèn)數(shù)據(jù)段,立即 (4) MOV BP,SP 寄存器,寄存器 (5) MOV BX,BP+4 寄存器,基址訪問(wèn)堆棧段 (6) MOV AX,BX+SI+5 寄存器,基+變 訪問(wèn)數(shù)據(jù)段 容易出錯(cuò): (1)段約定 (2)尋址方式針對(duì)操作數(shù)中某一個(gè)具體的操作數(shù),3. (1) CF23H+C678H=959BH 1100111100100011 + 1100011001111000 - (1)1001010110011011 A=0,C=1,O=0,P=0,S=1,Z=0 容易出錯(cuò): (1)CPU判溢(應(yīng)使用公式計(jì)算) OF=F(Xs,Ys,Zs) (2 P , A標(biāo)志均只針對(duì)計(jì)算中最低位字節(jié),(2)

5、6398H+C678H=2A10H 0110001110011000 + 1100011001111000 - (1)0010101000010000 A=1,C=1,O=0,P=0,S=0,Z=0,(3) 94FBH+C678H=5B73H 1001010011111011 + 1100011001111000 - (1)0101101101110011 A=1,C=1,O=1,P=0,S=0,Z=0,(4) 65E2H+C678H=2C5AH 0110010111100010 + 1100011001111000 - (1)0010110001011010 A=0,C=1,O=0,P=1,

6、S=0,Z=0,4. (1) OR AH,0F0H 容易出錯(cuò): (1)AND與OR指令的具體作用. (2)0F0H寫(xiě)成F0H,4. (2) XOR BX,0F00FH (3) AND CX, 0FFF0H,5. (1) 將First/Second 按字節(jié)方式交換,需要進(jìn)行2次交換 MOV AL,FIRST XCHG SECOND,AL MOV FIRST,AL MOV AL,FIRST+1 XCHG SECOND+1,AL MOV FIRST+1,AL 將First/Second 按字方式交換,需要進(jìn)行1次交換 MOV AX, WORD PTR FIRST XCHG WORD PTR SECO

7、ND,AX MOV WORD PTR FIRST,AX 容易出錯(cuò): (1)沒(méi)有完成操作 (2) 2個(gè)內(nèi)存單元不通過(guò)寄存器直接交換 (3)字方式交換不使用PTR,5.(2) PUSH WORD PTR FIRST PUSH WORD PTR SECOND POP WORD PTR FIRST POP WORD PTR SECOND 容易出錯(cuò): (1)不使用PTR (2)將直接作為堆棧指令操作數(shù) 如PUSH FIRST,6. TABLE DW 158,258,358,458 內(nèi)存單元內(nèi)容依次為: (從左到右,由低位地址到高位地址),BX + SI 尋址方式指向的單元為T(mén)ABLE+3,取連續(xù)2個(gè)字節(jié)

8、單元的內(nèi)容 -AX AX 中數(shù)據(jù)為 6601H (26113) 容易出錯(cuò): (1)沒(méi)有將10進(jìn)制數(shù)值轉(zhuǎn)換為16進(jìn)制數(shù)值就開(kāi)始往下做 (2) DB,DW,DD定義的變量在內(nèi)存單元中具體存放 (3) 操作時(shí)源目的長(zhǎng)度匹配,7. (1) 用16位除法 1193182 等值16進(jìn)制為 001234DE H MOV DX,0012H MOV AX,34DEH MOV CX,433 DIV CX MOV XX,AX (2) 用32位除法, 無(wú)需進(jìn)行16進(jìn)制轉(zhuǎn)換 MOV EAX,1193182 MOV EDX,0 MOV ECX,433 DIV ECX MOV XX,AX 容易出錯(cuò): (1) 用字節(jié)除法但沒(méi)

9、有進(jìn)行16進(jìn)制轉(zhuǎn)換 (2) 被除數(shù)和除數(shù)單位未統(tǒng)一。,8. (1)最簡(jiǎn)單的方法(SAL可改用SHL) SAL AL,4 SAL AX,4 (2)其他方法(SAL可改用SHL) SAL AH,4 SAL AL,4 SHR AL,4 ADD AH,AL (或OR AH,AL) 或 SAL AH,4 AND AL,0FH ADD AH,AL (或OR AH,AL) 容易出錯(cuò): (1) 沒(méi)有仔細(xì)考慮好邏輯計(jì)算的過(guò)程和結(jié)果,9. 利用C位作為排列中的存儲(chǔ)單元 MOV CX,8 MOV AL,3 ; 假設(shè)AL存放中數(shù)為 03H CIR: SHR AL,1 ;SHR也可用SAR,RCR,ROR RCL BL

10、,1 LOOP CIR MOV AL,BL,10.(2)下面為完整程序,如果只要求寫(xiě)出程序片段,則寫(xiě)出下面蘭色部分即可 .486 DATA SEGMENT USE16 BUF DB 50 DUP(?) NOTO DB 50 DUP(?) DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV SI,OFFSET NOTO MOV CX,50 CIR: CMP BYTE PTR BX,0 JZ NEXT MOV AL,BX MOV SI,AL INC

11、SI NEXT: INC BX LOOP CIR EXIT: MOV AH,4CH INT 21H CODE ENDS END BEG,容易出錯(cuò): (1)不會(huì)使用間接尋址方式訪問(wèn) 一個(gè)變量的連續(xù)單元 (2)PTR的使用問(wèn)題 (3)內(nèi)存單元之間不能直接傳送 (4)判非零數(shù)的方法 還可以用 MOV AL, BX OR AL, AL (或 AND AL,AL) JZ NEXT (5)標(biāo)號(hào)不可以使用匯編語(yǔ)言中的 保留字,如寄存器名稱等,10。(1) 完整程序 .486 DATA SEGMENT USE16 BUF DB 50 DUP(?) PLUS DB 50 DUP(?) MINUS DB 50 D

12、UP(?) DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV SI,OFFSET PLUS MOV DI,OFFSET MINUS MOV CX,50 CIR: MOV AL,BX CMP BYTE PTR BX,0 JZ NEXT JG TOPLUS MOV DI,AL INC DI JMP NEXT,TOPLUS: MOV SI,AL INC SI NEXT: INC BX LOOP CIR EXIT: MOV AH,4CH INT 21H

13、 CODE ENDS END BEG 注意判斷正數(shù)和負(fù)數(shù)的方法,10。(3) 完整程序 .486 DATA SEGMENT USE16 BUF DB 50 DUP(?) DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV CX,50 CIR: CMP BYTE PTR BX,0 JGE NEXT NEG BYTE PTR BX NEXT: INC BX LOOP CIR EXIT: MOV AH,4CH INT 21H CODE ENDS END

14、 BEG,注意運(yùn)用NEG指令求負(fù)數(shù)絕對(duì)值 的方法,10。(4) 完整程序 .486 DATA SEGMENT USE16 BUF DB 50 DUP(?) DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF BT DWORD PTR BX,31 JNC EXIT NEG DWORD PTR BX EXIT: MOV AH,4CH INT 21H CODE ENDS END BEG 注意運(yùn)用NEG指令求負(fù)數(shù)絕對(duì)值的方法,(p.101) (1) 匯編后數(shù)據(jù)段

15、內(nèi)容(由左到右,從低地址到高地址) 32H, FFH, FAH, 57H, 9CH, 78H, 34H, 12H, 41H, 00H 注意:負(fù)數(shù)變成補(bǔ)碼,字符變?yōu)閷?duì)應(yīng) ASCII碼,2. (1) 指令改正 MOV AX,BNUM - MOV AX,WORD PTR BNUM 執(zhí)行后 AX = FF32H MOV BX,BNUM +5 - MOV BX, WORD PTR BNUM +5 執(zhí)行后 BX = 4478H (其中44H高位字節(jié)是相鄰來(lái)自DNUM 變量定義的數(shù)據(jù), 特別注意LLL常量不占用內(nèi)存空間) MOV CL, DNUM+2 - MOV CL, BYTE PTR DNUM +2 執(zhí)

16、行后 CL = 22H (2) MOV AX, WORD PTR DNUM + 1 (或 DNUM1) (3) MOV WORD PTR DNUM, BX (4) INC BYTE PTR WNUM , WNUM為 00H,00H INC WNUM , WNUM 為 00H,01H (體會(huì)由PTR運(yùn)算符 體現(xiàn)出的指令的不同操作意圖),第4次作業(yè)(p.167) (1) 判斷x是否在 (5, 24 區(qū)間 假設(shè) X為有符號(hào)數(shù), 該程序中X為無(wú)符號(hào)數(shù)時(shí)候相應(yīng)指令 更換JLE - JNA , JG - JA MOV FLAG, -1 CMP NUMBER, 5 JLE NEXT CMP NUMBER ,

17、 24 JG NEXT MOV FLAG, 0 NEXT: . 注意: (1) 復(fù)合分支程序設(shè)計(jì) (2) 程序運(yùn)行流程,(p.67) 2. 1+ 200 = 20100 , 結(jié)果需要一個(gè)字單元存放 SUM DW ? MOV CX,200 MOV AX,0 MOV BX,1 AGA: ADD AX, BX INC BX LOOP AGA MOV SUM, AX 注意: 考慮結(jié)果存放需要的容量決定寄存器的選用;注意使用正確的指令來(lái)需要完成的操作。,二。期中課程小結(jié)(主要知識(shí)點(diǎn)),一。數(shù)制/碼制轉(zhuǎn)換 1、二進(jìn)制數(shù),十進(jìn)制數(shù),十六進(jìn)制數(shù)和BCD碼數(shù)之間的轉(zhuǎn)換方法等。 例 :(210.875)10( )

18、2( D2. E )16 (10010111)BCD( 97 )10( 01100001 )2 例 :(129)10( 10000001 )2( 81 )16 2 、真值數(shù)和補(bǔ)碼數(shù)之間的轉(zhuǎn)換方法等 例 :若X補(bǔ)0AAH,則X的真值為( -86 ) 10 例 :字長(zhǎng)8位,則-6補(bǔ)( FA ) 16, 若X補(bǔ)E8H,則X的真值為( -1E ) 16 3、n位字長(zhǎng)的有符號(hào)數(shù)、無(wú)符號(hào)數(shù)的數(shù)值范圍 設(shè)機(jī)器數(shù)字長(zhǎng)=n位, 則n位補(bǔ)碼數(shù),其真值范圍為 2n-1 +2n-11位 無(wú)符號(hào)數(shù)其數(shù)值范圍為 0 2n1 例 : 16位二進(jìn)制數(shù)所能表示的無(wú)符號(hào)數(shù)范圍是_0 _65535_。 復(fù)習(xí)作業(yè) P.15 - 1(

19、1)-(6), 以及課件范例,二。補(bǔ)碼運(yùn)算和判斷溢出以及6個(gè)狀態(tài)標(biāo)志的變化 用補(bǔ)碼形式完成運(yùn)算。要求有運(yùn)算過(guò)程,寫(xiě)出運(yùn)算結(jié)果、C,O,A, P,S, Z 標(biāo)志的具體值,并判斷結(jié)果是有溢出(CPU角度和程序員角度) 例 :字長(zhǎng)8位 (+66)+9 42H+09H=4BH O=0,C=0, A=0,P=1, S=0,Z=0 復(fù)習(xí)作業(yè) P.15 - 1(7) , P85 - 3 以及課件范例 三。存儲(chǔ)空間中三種地址空間的概念以及IO空間的概念,實(shí)模式下由邏輯地址得到物理地址 物理地址計(jì)算公式: 物理地址=段基址*16+偏移地址 例:一個(gè)有16個(gè)字節(jié)的數(shù)據(jù)區(qū),它的起始地址為3000H:4567H,則這

20、個(gè)數(shù)據(jù)區(qū)首字節(jié)的物理地址是( 34567H ) ,最后一個(gè)字節(jié)的物理地址為( 34576H ) 。 復(fù)習(xí)作業(yè)P.85 - 1,四。變量,常量定義以及PTR運(yùn)算符, SEG,OFFSET等偽指令的正確使用 (1)變量在內(nèi)存中的存放細(xì)節(jié)(DB,DW,DD) (2)必須使用PTR運(yùn)算符的情形 (牢記上課講義上的雙操作書(shū)3+單操作數(shù) 2 共5種情形) (3)使用PTR運(yùn)算符后在存取內(nèi)存操作數(shù)時(shí)的特點(diǎn) 復(fù)習(xí)課件范例以及作業(yè) P85.- 6, P101.-1,2,五。80486的尋址方式 486有3類(lèi)7種尋址方式 立即尋址方式:獲得立即數(shù) 寄存器尋址方式:獲得寄存器操作數(shù) 存儲(chǔ)器尋址方式(5種):獲得存儲(chǔ)

21、器操作數(shù)(內(nèi)存操作數(shù)) 內(nèi)存尋址方式 16位尋址規(guī)定可使用的寄存器 (1) 直接尋址 (2)寄存器間接尋址 BX,BP,SI,DI 段寄存器:間址寄存器 某單元的物理地址=段寄存器內(nèi)容16+間址寄存器 (3)基址尋址 BX,BP 段寄存器:基址寄存器+位移量 物理地址=段寄存器內(nèi)容16+基址寄存器+位移量 (4)變址尋址 SI,DI (5)基址+變址尋址,例:16位間接尋址寄存器及約定段DS:SI,DI,BX; SS:BP 例:指出下列指令源操作數(shù)的尋址方式: ADD AX, SI+6 _變址_ MOV AX,BX+SI+6 _基加變_ MOV DX,BX _間址_ MOV DX,BX _寄存

22、器_ MOV AL,-1 _立即_ SUB AX,WORD PTR BUF _直接_ ADD DX,BX+4 _基址_ ADD AX,TABLE _注意TABLE是變量還是常量_ 復(fù)習(xí)課件范例以及作業(yè) P.85.-2,六。指令系統(tǒng) 指令格式,功能,指令對(duì)F寄存器的影響,D標(biāo),I標(biāo)的作用等 例:RET,IRET指令,分別從堆棧中彈出多少個(gè)字裝入什么寄存器。 例:MOV 指令的目標(biāo)寄存器有哪些? 復(fù)習(xí)課件范例以及 涉及程序編寫(xiě)的作業(yè),七。計(jì)算機(jī)系統(tǒng)構(gòu)成及CPU 馮氏結(jié)構(gòu)以及現(xiàn)代計(jì)算機(jī)硬件組成 的5個(gè)部分 三總線結(jié)構(gòu)AB,DB,CB 以及 控制信號(hào) D/C W/R M/IO CPU 內(nèi)部的 基本結(jié)構(gòu)

23、寄存器,名稱以及對(duì)應(yīng)容量,以及功能,八。存儲(chǔ)系統(tǒng) (1)存儲(chǔ)器分類(lèi)以及存儲(chǔ)器容量的基本單位, (2)存儲(chǔ)器容量與引腳(數(shù)據(jù)線,地址線)的關(guān)系, (3)存儲(chǔ)器容量的擴(kuò)展方式(字?jǐn)U展和位擴(kuò)展,掌握概念 P.206) 復(fù)習(xí)課件范例,九。程序設(shè)計(jì)和程序閱讀 ()偽指令在程序中的作用和結(jié)果(DB,DW,DD變量定義;常量定義;宏指令( 使用以及與子程序的區(qū)分) (2)完整的源程序的結(jié)構(gòu)(包含偽指令以及語(yǔ)句的使用) (3)常見(jiàn)程序片段的設(shè)計(jì)方法(分支,循環(huán),代碼轉(zhuǎn)換等) 例:二進(jìn)制數(shù),十進(jìn)制數(shù)的顯示,分支,循環(huán)程序設(shè)計(jì)等。 (4)在程序設(shè)計(jì)中使用子程序 (5)功能調(diào)用(BIOS/DOS)在設(shè)計(jì)程序輸入輸出時(shí)的應(yīng)用,舉例程序閱讀 .486 DATA SEGMENT USE16 FIRST DB 12H,34H SECOND DB 56H,78

溫馨提示

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