匯編語(yǔ)言第6章答案_第1頁(yè)
匯編語(yǔ)言第6章答案_第2頁(yè)
匯編語(yǔ)言第6章答案_第3頁(yè)
匯編語(yǔ)言第6章答案_第4頁(yè)
匯編語(yǔ)言第6章答案_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 流程控制習(xí)題1. 指令指針EIP是通用存放器還是專(zhuān)用存放器?有指令能夠直接給它賦值嗎?哪些指令的執(zhí)行會(huì)改變它的值?解答:EIP是專(zhuān)用存放器,不能通過(guò)指令直接給它賦值??梢愿淖兤渲档闹噶钣校?無(wú)條件分支,包括:跳轉(zhuǎn)jmp、調(diào)用call、中斷int。2條件分支,與標(biāo)志位CF、OF、PF、SF、ZF相關(guān)的條件跳轉(zhuǎn)指令。3循環(huán)指令,LOOP、LOOPE等。3.相對(duì)于BASIC語(yǔ)言中GOTO語(yǔ)句作用的IA-32處理器指令是哪條?跳轉(zhuǎn)指令 jmp習(xí)題4.IA-32處理器通過(guò)改變EIP存放器的數(shù)值就可以改變程序,如果程序需要無(wú)條件跳轉(zhuǎn)到標(biāo)號(hào)done位置執(zhí)行,使用“MOVL done, %EIP語(yǔ)句是

2、否可以到達(dá),為什么?如果不能實(shí)現(xiàn)該功能,應(yīng)該使用哪條指令?解答:不能。不能對(duì)EIP存放器直接賦值。使用指令jmp done可以實(shí)現(xiàn)。習(xí)題6條件轉(zhuǎn)移指令Jxx所利用的條件保存在何處?有多少個(gè)不同條件的轉(zhuǎn)移指令?保存在EFLAGES存放器中共16個(gè)P107習(xí)題7JA和JG指令發(fā)生跳轉(zhuǎn)的條件都是“大于,它們有什么區(qū)別?在處理帶符號(hào)值和無(wú)符號(hào)值時(shí)有所區(qū)別。計(jì)算無(wú)符號(hào)值時(shí),使用JA,對(duì)于帶符號(hào)值,使用JG。習(xí)題8. 執(zhí)行如下程序片斷后,CMP指令分別使得5個(gè)狀態(tài)標(biāo)志CF、ZF、SF、OF和PF為0還是為1?它會(huì)使得哪些條件轉(zhuǎn)移指令條件成立、發(fā)生轉(zhuǎn)移?movl $0x20, %eaxmovl $0x80,

3、 %ebxcmpl %ebx,%eax解答:CF1 ZF0 SF1 OF0 PF1可以使得發(fā)生轉(zhuǎn)移的指令有:JC JS JP JNZ JNO習(xí)題9. 有如下程序片斷,請(qǐng)使用一條指令代替其中的兩條指令:1again:jz nextjmp againnext:2again:jle nextjmp againnext:解答: 1jnz again 2jg again10.假設(shè)EAX和ESI存放的是有符號(hào)整數(shù),EDX和EDI存放的是無(wú)符號(hào)整數(shù),請(qǐng)用比擬指令和條件轉(zhuǎn)移指令實(shí)現(xiàn)以下判斷:1假設(shè)EDX > EDI,轉(zhuǎn)到above執(zhí)行;CMP %EDI,%EDX JA above2假設(shè)EAX >

4、ESI,轉(zhuǎn)到greater執(zhí)行;CMP %ESI,%EAX JG greater3假設(shè)ECX = 0,轉(zhuǎn)到zero執(zhí)行;CMP $0,%ECX JE zero 4假設(shè)EAXESI產(chǎn)生溢出,轉(zhuǎn)到overflow執(zhí)行;CMP %ESI,%EAX JO overflow5假設(shè)ESIEAX,轉(zhuǎn)到less_eq執(zhí)行;CMP %EAX,%ESI JLE less_eq6假設(shè)EDIEDX,轉(zhuǎn)到below_eq執(zhí)行。CMP %EDX,%EDI JBE below_eq11.Pentium Pro處理器為IA-32指令系統(tǒng)增加了一條實(shí)用的條件傳送指令CMOVxx,其中的條件xx與條件轉(zhuǎn)移指令Jxx的條件xx一樣

5、。請(qǐng)用一條CMOV指令代替如下程序片斷中的條件轉(zhuǎn)移指令和其后的傳送指令含標(biāo)號(hào):1decl %ecxjz contiunemovl %eax,%ebxcontiune:2addl $1,%ecxjnc contiunemovl %eax,%ebxcontiune:3cmpl %ebx,%eaxjbe contiunemovl %eax,%ebx contiune:解答1CMOVNZ %eax, %ebx2CMOVC %eax, %ebx3CMOVA %eax, %ebx12.現(xiàn)代處理器當(dāng)中,簡(jiǎn)單的多條指令常比一條復(fù)雜的指令執(zhí)行速度快。例如,GCC編譯器就不使用LOOP指令,而是使用與其功能一樣的兩條指令,這兩條指令是什么? dec %ecx jnz loop習(xí)題13.請(qǐng)問(wèn)如下LOOP指令執(zhí)行了多少次?movl $0, %ecxrepeat:loop repeat解答:loop執(zhí)行時(shí),先將ecx中的值減1,使之變?yōu)?0xFFFFFFFF,然后進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論