2021秋第2次匯編作業(yè) 參考答案-推薦下載_第1頁(yè)
2021秋第2次匯編作業(yè) 參考答案-推薦下載_第2頁(yè)
2021秋第2次匯編作業(yè) 參考答案-推薦下載_第3頁(yè)
2021秋第2次匯編作業(yè) 參考答案-推薦下載_第4頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2021秋第2次匯編作業(yè) 參考答案-推薦下載2021匯編語(yǔ)言第2次作業(yè)參考答案1.結(jié)合課堂的程序運(yùn)行過(guò)程動(dòng)態(tài)圖,按步驟簡(jiǎn)述指令A(yù)DD 1234H,AX 的執(zhí)行過(guò)程(機(jī)器指令01 06 34 12 ,其中0106為操作碼,譯碼分析為:內(nèi)存變量與AX相加,結(jié)果送回內(nèi)存變量)(10分)答:機(jī)器指令01 06 34 12,其中0106為操作碼,1234H為16位的操作數(shù)。其中01表示CPU做存儲(chǔ)器加法運(yùn)算,被加數(shù)為存儲(chǔ)器,和為存儲(chǔ)器,加數(shù)為寄存器AX06 表示做16位加法運(yùn)算,且被加數(shù)為累加器(1)CPU的BIU從CS:IP處取出一個(gè)字節(jié)01到指令隊(duì)列(2)EU對(duì)01進(jìn)行譯碼,得出CPU做存儲(chǔ)器加法運(yùn)

2、算,被加數(shù)為存儲(chǔ)器,和為存儲(chǔ)器,加數(shù)為寄存器。BIU同時(shí)取指令的下一個(gè)字節(jié)06到指令隊(duì)列(3)EU對(duì)06進(jìn)行譯碼,得出CPU做16位加法運(yùn)算,且被加數(shù)為累加器AX BIU同時(shí)取指令的下一個(gè)字節(jié)34到指令隊(duì)列(4)EU指示BIU將34送到內(nèi)部暫存器低字節(jié)BIU同時(shí)取指令的下一個(gè)字節(jié)12到指令隊(duì)列(5)EU指示BIU將12送到內(nèi)部暫存器高字節(jié)(6)BIU 將DS:1234(內(nèi)部暫存器)送地址加法器,結(jié)果地址AAAA送總線控制邏輯,訪問(wèn)存儲(chǔ)器,取出DS:1234處的數(shù)據(jù)XX,經(jīng)BIU內(nèi)部總線送EU (7)EU將XX送入ALU被加數(shù)部件的低字節(jié)BIU總線控制邏輯取AAAA下一地址訪問(wèn)存儲(chǔ)器,取出DS:

3、1235處的數(shù)據(jù)YY,經(jīng)BIU內(nèi)部總線送EU(8)EU將AX送入ALU加數(shù)部件(9)EU執(zhí)行YYXX+AX運(yùn)算,并改變標(biāo)志寄存器的狀態(tài)位。(10)EU 將運(yùn)算結(jié)果BIU,并送內(nèi)部暫存器(11)BIU將內(nèi)部暫存器的低字節(jié)送總線控制邏輯,并經(jīng)其送入內(nèi)存地址AAAA處(12)BIU 將內(nèi)部暫存器的高字節(jié)送總線控制邏輯,并經(jīng)其送入內(nèi)存地址AAAA+1處解釋:每條1分,不超過(guò)10分。錯(cuò)了少了扣1分。2.輸入并編寫(xiě)本程序,寫(xiě)出程序執(zhí)行結(jié)果(4分) ; 程序清單:cpuid.asm(讀取CPU 標(biāo)識(shí)).686p.model flat, stdcallOption casemap : none include

4、libe:vslibmsvcrt.lib ;此處應(yīng)該為你的目錄,VS2021可QQ 群下載此文件printf PROTO C : dword, : vararg_getch PROTO CExitProcess PROTO :dword.dataszVendorID byte 13 dup(0)szFormatStr byte VendorID = %s; Processor SN = %08X%08X, 0ah .codemain procmov eax, 0cpuidmov dword ptr szVendorID, ebx mov dword ptr szVendorID + 4, ed

5、x mov dword ptr szVendorID + 8, ecxmov eax, 1cpuidinvoke printf, offset szFormatStr,offset szVendorID, edx, eax invoke _getchinvoke ExitProcess,0main endpend main答案:VendorID = GenuineIntel; Processor SN = BFEBFBFF00020655 每項(xiàng)各2分。 除了AMD 的CPU ,VendorID 都應(yīng)為GenuineIntel 。序列號(hào)可變,全0也可以。解釋: cpuid 相當(dāng)于一個(gè)函數(shù)調(diào)用,但

6、也要把參數(shù)-功能號(hào)送EAX ,返回值一般在其他寄存器(可能是個(gè)指針。)3.C 的分支語(yǔ)句的反匯編:(10分) 全局變量 unsigned int x=1,y=2,z=3;int m=-1,n=-2,w=-3,i,c;請(qǐng)編寫(xiě)C 程序,調(diào)試查看反匯編語(yǔ)句,寫(xiě)出下列C 語(yǔ)句的反匯編語(yǔ)句中 if(x y) x=y; 控制轉(zhuǎn)移指令的操作碼:_ jbe 或 76 H _ if(m n) n=m; 控制轉(zhuǎn)移指令的操作碼:_ jle 或 7E H_ if(z w) x=m; 控制轉(zhuǎn)移指令的操作碼:_ jbe 或 76 H _ if(n y) n=y; 控制轉(zhuǎn)移指令的操作碼:_ jbe 或 76 H_ scan

7、f(%d, &i);整試驗(yàn);通電檢查所有設(shè)備高中資料switch(i) case 1:c=x;break; 指令break 的匯編語(yǔ)言語(yǔ)句為_(kāi)jmp $LN13+0Ah (03D3DAEh)_case 2:c=y;break; case 3:c=z;break; case -1:c=m;break; case -2:c=n;break; case -3:c=w;break; 簡(jiǎn)述C 語(yǔ)言的switch 語(yǔ)句是在匯編語(yǔ)言中怎么實(shí)現(xiàn)的?答案:if 、break 語(yǔ)句反匯編即可,如上。注意只要不是兩個(gè)有符號(hào)數(shù)比較(用JLE),就當(dāng)作無(wú)符號(hào)比較來(lái)對(duì)待(用JBE)。 解釋:每空1分,簡(jiǎn)答5分。4條if

8、語(yǔ)句的反匯編后結(jié)果如下,所以填寫(xiě)如上答案。76 0A jbe main+20h 7E 0A jle main+37h 76 0A jbe main+4Eh 76 0A jbe main+65hSwitch 語(yǔ)句中break 都反匯編成jmp $LN13+0Ah (03D3DAEh) 即switch 結(jié)構(gòu)后的第一條指令的地址。反匯編switch 模塊,如下,并分析如下(紅色標(biāo)注): 188: switch (i)003D3D47 A1 A8 71 3D 00 mov eax,dword ptr ds:003D71A8h ; i=EAX 003D3D4C 89 45 BC mov dword pt

9、r ebp-44h,eax003D3D4F 8B 4D BC mov ecx,dword ptr ebp-44h003D3D55 89 4D BC mov dword ptr ebp-44h,ecx003D3D58 83 7D BC 06 cmp dword ptr ebp-44h,6 ;7個(gè)元素,最大下標(biāo)6003D3D5E 8B 55 BC mov edx,dword ptr ebp-44h ;下標(biāo)在EDX 189: 190: case 1: c = x; break;003D3D68 C7 05 AC 71 3D 00 78 00 00 00 mov dword ptr ds:3D71AC

10、h,78h 003D3D72 EB 3A jmp $LN13+0Ah (03D3DAEh) 191: case 2: c = y; break;通過(guò)管高中資料試卷連接管口處理高中資時(shí)切斷習(xí)題電源,線纜敷設(shè)完畢,對(duì)全部高安裝結(jié)束后進(jìn)行高中資料試卷驗(yàn);通電檢查所有設(shè)備高中資卷相互作用與相互關(guān)系,根據(jù)工作;對(duì)于繼電保護(hù)進(jìn)行整核對(duì)定出具高中資料試卷試驗(yàn)報(bào)告與相關(guān)力保護(hù)裝置調(diào)試技術(shù),電力保護(hù)障高中資料試卷破壞范圍,或者部電源高中資料試卷切除從而采用003D3D74 C7 05 AC 71 3D 00 79 00 00 00 mov dword ptr ds:3D71ACh,79h 003D3D7E EB

11、 2E jmp $LN13+0Ah (03D3DAEh) 192: case 3: c = z; break;003D3D80 C7 05 AC 71 3D 00 7A 00 00 00 mov dword ptr ds:3D71ACh,7Ah 003D3D8A EB 22 jmp $LN13+0Ah (03D3DAEh) 193: case -1:c = m; break;003D3D8C C7 05 AC 71 3D 00 6D 00 00 00 mov dword ptr ds:3D71ACh,6Dh 003D3D96 EB 16 jmp $LN13+0Ah (03D3DAEh) 194

12、: case -2:c = n; break;003D3D98 C7 05 AC 71 3D 00 6E 00 00 00 mov dword ptr ds:3D71ACh,6Eh 003D3DA2 EB 0A jmp $LN13+0Ah (03D3DAEh)195: case -3:c = w; break;003D3DA4 C7 05 AC 71 3D 00 77 00 00 00 mov dword ptr ds:3D71ACh,77h196: 197: test5();003D3DAE E8 04 D5 FF FF call test5 (03D12B7h)Switch 的條件有7個(gè)(

13、算上default ),排序?yàn)?-3、-2、-1、0、1、2、3,default 同0按順序?yàn)槊總€(gè)case 后的第一條語(yǔ)句的地址為:003D3DA4、003D3D98、003D3D8C、003D3DAE 、003D3D68、003D3D74、003D3D80。這與跳轉(zhuǎn)表JMPTBL即3D3DD0h 處 7個(gè)元素的值是相同的。4.C 的main 函數(shù)的堆??蚣芊治?(39分)int main(int argc,char *argv)for (int i = 0; i printf(第%0d 個(gè)參數(shù)為:%sn,i,argvi);getchar();return argc+; 項(xiàng)目屬性的設(shè)置要求如下

14、:調(diào)試 -命令參數(shù):1140310199 張老三 230103* 請(qǐng)用自己的學(xué)號(hào)、姓名、身份證號(hào)代替上如內(nèi)容C/C+ -代碼生成:?jiǎn)⒂肅+異常-否,基本運(yùn)行時(shí)檢查-默認(rèn)值,安全檢查-禁用 (1) OS 在調(diào)用main 前的堆?;分羔楨BP 為_(kāi)0021FCFC _, main 的堆??蚣苤羔楨BP 為_(kāi)0021FCE8 _,main 的棧頂指針ESP 為_(kāi)0021FC94_ (2) 從低地址開(kāi)始,寫(xiě)出main 的堆??蚣苊恳徊糠制鹗嫉刂?、值(16進(jìn)制)、對(duì)應(yīng)內(nèi)容 (如返回OS 地址、OS 的EBP 、OS 的ESI 、參數(shù)XX 等)氣課件中管壁薄、接口不嚴(yán)等問(wèn)題,合理利用管線敷設(shè)技術(shù)。線纜敷

15、切斷習(xí)題電源,線纜敷設(shè)完畢,中資料試卷電氣設(shè)備進(jìn)行調(diào)試工作并且進(jìn)行過(guò)關(guān)運(yùn)行高中資料試卷技具高中資料試卷試驗(yàn)報(bào)告與相氣系統(tǒng)接線等情況,然后根據(jù)試卷方案。因此,電力高中資料試卷保護(hù)裝置調(diào)試技術(shù),要求電力保護(hù)裝置做到電源高中資料試卷切除從而采用ESP= 0x0021FC94 37 10 b2 00 EDI 主程序現(xiàn)場(chǎng)寄存器+4 37 10 b2 00 ESI 主程序現(xiàn)場(chǎng)寄存器-8 00 a0 00 7f EBX 主程序現(xiàn)場(chǎng)寄存器+12 b0 a7 43 77 為局部變量預(yù)留空間48H,此處目前為垃圾。EBP= 0x0021FCE8 fc fc 21 00 主程序EBP+4 2e 1d b2 00 返

16、回地址(OS中CALL main下一語(yǔ)句地址)+8 04 00 00 00 參數(shù)1,int argc+12 10 93 5c 00 參數(shù)2,char *argvargv是一個(gè)數(shù)組(地址為005c9310),元素個(gè)數(shù)為argc(4),其元素是各個(gè)參數(shù)(字符串?dāng)?shù)組)的內(nèi)存地址(005C9324、005C9350、005C935B、005C9362)。再查看這4個(gè)所存儲(chǔ)的內(nèi)容:005C9324:E:hlbcDocumentsvs2021ASMDebugmain.exe.005C9350:1140310199005C935B:d5 c5 c0 cf c8 fd 005C9362:230103*(3)C

17、語(yǔ)言函數(shù)保存的現(xiàn)場(chǎng)寄存器依次為:_EBX_、_ESI_、_EDI_(4) main函數(shù)的返回值用_EAX_存儲(chǔ),其值為_(kāi)4(argc)_,ret返回后第一條語(yǔ)句為_(kāi)add esp,0CH_(可以跟蹤并分析下,argc+函數(shù)返回值正確嗎?)-返回argc而不是argc+1的值(5) 每一個(gè)命令行參數(shù)的起始地址為:_005C9324_、_005C9350_、_005C935B_、_005C9362_。參數(shù)“姓名(你的真實(shí))”(6) 為局部變量i申請(qǐng)空間的語(yǔ)句為(7)(8) i=0,被編譯成(9)i _ ;argc解釋:除第一個(gè)空不給分外,其余每空1分。第一個(gè)空可任意,不給分(要會(huì)跟蹤查看)。第2比

18、第3個(gè)大54H (48h+4*3)。不對(duì)要扣分。每空1分,第2部分16分,每項(xiàng)2分。地址內(nèi)容1分,說(shuō)明1分(1)按F10進(jìn)入main程序,打開(kāi)反匯編窗口,以下用F10單步跟蹤即可看到當(dāng)前EBP,即為OS調(diào)用main前EBP值0021FCFCMOV指令將ESP=EBP則為main的堆??蚣苤羔楨BP 0021FCE8執(zhí)行到for語(yǔ)句前,保存3個(gè)現(xiàn)場(chǎng)寄存器,此時(shí)ESP值為main的堆??蚣茼敳恐羔?021FC94(兩個(gè)值應(yīng)相差54H = 0021FCE8-0021FC94)(2)在內(nèi)存窗口地址欄分別輸入ESP,查看現(xiàn)場(chǎng)寄存器和局部變量,再輸入EBP查看堆棧框架(4)ret后的指令,只需再按一下F1

19、0即可看到(5) 參數(shù)的起始地址,需要以EBP+12的值,作為數(shù)組argv的地址去查看,里面共4個(gè)命令行參數(shù)的地址。姓名是arg2, 再在地址欄輸入第3個(gè)命令行參數(shù)的地址,即可查看其內(nèi)容。(7)i是局部變量。【EBP-4】其他,可以通過(guò)反匯編,但要深入理解每一句地實(shí)現(xiàn)。5.CPU的FR當(dāng)前6個(gè)狀態(tài)位全為0,填寫(xiě)各指令執(zhí)行后的狀態(tài)位值(6分,每個(gè)0.25) MOV AX,7896H ;CF=_0_ OF=_0_ ZF=_0_ SF=0_ PF=_0_ AF=_0_ADD AL,AH ;CF=_1_ OF=_0_ ZF=_0_ SF=_0_ PF=_0_ AF=_0_ADD AL,0F2H ;CF

20、=_1_ OF=_0_ ZF=_1_ SF=_0_ PF=_1_ AF=_1_ADC AX,1234H ;CF=_0_ OF=_1_ ZF=_0_ SF=_0_ PF=_1_ AF=_0_6.XOR EAX,EAX 等價(jià)于指令MOV EAX,_0_ (4分)SDWORD變量X值為真,則NOT X 執(zhí)行后,X值為_(kāi)C_A.真B. 假C.真或假D.非法指令解釋:X=-1時(shí),NOT X 后X=0即為假。其他都為真7.使寄存器AX的D9與D2位取反,其余各位不變,則(17分)_XOR_ AX,_0204_H ;采用邏輯運(yùn)算指令0000 0010 0000 0100B若寄存器AX的D9與D2位任一位為1

21、,則轉(zhuǎn)ERROR,則_TEST_ AX,_0204_H ;采用邏輯運(yùn)算指令_JNZ_ ERROR ;采用JZ或JNZ若寄存器AX的D9與D2位任一位為0,則轉(zhuǎn)START,則_AND_ AX,_0204H_H ;采用邏輯運(yùn)算指令_XOR_ AX,_0204H_H ;采用邏輯運(yùn)算指令可用CMP_JNZ_ START ;采用JZ或JNZ若寄存器AX的D9與D2位都為0,則轉(zhuǎn)OVER,則_AND_ AX,_0204_H ;采用邏輯運(yùn)算指令_JZ_ OVER ;采用JZ或JNZ若寄存器AX的D9與D2位都為1,則轉(zhuǎn)WARNING,則料試卷布置情況與有關(guān)高中資料試_AND_ AX,_0204_H ;采用邏

22、輯運(yùn)算指令 CMP AX,_0204_H ;比較是否相等 _JZ_ WARNING ;采用JZ 或JNZ8.自己編寫(xiě)匯編語(yǔ)言程序,調(diào)試執(zhí)行,寫(xiě)出各匯編語(yǔ)言語(yǔ)句的機(jī)器指令 (20分,每個(gè)1分)X sdword -1,-2,-3,-4,-5,0,1,2,3,4,5 MOV EAX,X A1 01 59 21 01 mov eax,dword ptr ds:01215901h MOV EAX,XA1 01 59 21 01 mov eax,dword ptr ds:01215901h MOV EAX,X+2A1 03 59 21 01 mov eax,dword ptr ds:01215903hMO

23、VEAX,X+2A1 03 59 21 01 mov eax,dword ptr ds:01215903hMOV AX,WORD PTR X 66 A1 01 59 21 01 mov ax,word ptr ds:01215901hMOV EBX,OFFSET X BB 01 59 21 01 mov ebx,1215901h MOV ESI,5B E 05 00 00 00 mov esi,5 MOV EAX,EBX8B 03 mov eax,dword ptr ebx MOV EAX,EBX+208B 43 14 mov eax,dword ptr ebx+14h MOV EAX,EBX

24、+1234H8B 83 34 12 00 00 mov e ax,dword ptr ebx+00001234h MOV EAX,EBX+ESI*48B 04 B3 mov eax,dword ptr ebx+esi*4 MOV EAX,EBX+ESI*4+88B 44 B3 08 mov eax,dword ptr ebx+esi*4+8 MOVEAX,EBX+ESI*4+1234H 8B 84 B3 34 12 00 00mov eax,dword ptr ebx+esi*4+00001234hMOV EAX,ESI*48B 04 B5 00 00 00 00 mov eax,dword

25、ptr esi*4+00000000hMOV EAX,ESI*4+1234H8B 04 B5 34 12 00 00 mov eax,dword ptr esi*4+00001234h MOV EAX,ESI*4+12345678H 8B 04 B5 78 56 34 12mov eax,dword ptr esi*4+12345678hMOV EAX,EBP8B 45 00 mov eax,dword ptr ebp MOV EAX,EBP+128B 45 0C mov eax,dword ptr ebp+0Ch MOV EAX,EBP+1234H8B 85 34 12 00 00 mov eax,dword ptr ebp+00001234h MOV EAX,EBP+12345678H 8B 85 78 56 34 12 mov eax,dword ptr ebp+12345678h解釋:注意查看各指令間的機(jī)器碼的差別,對(duì)各類

溫馨提示

  • 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)論