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

下載本文檔

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

文檔簡介

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

2、否可以到達,為什么?如果不能實現(xiàn)該功能,應(yīng)該使用哪條指令?解答:不能。不能對EIP存放器直接賦值。使用指令jmp done可以實現(xiàn)。習題6條件轉(zhuǎn)移指令Jxx所利用的條件保存在何處?有多少個不同條件的轉(zhuǎn)移指令?保存在EFLAGES存放器中共16個P107習題7JA和JG指令發(fā)生跳轉(zhuǎn)的條件都是“大于,它們有什么區(qū)別?在處理帶符號值和無符號值時有所區(qū)別。計算無符號值時,使用JA,對于帶符號值,使用JG。習題8. 執(zhí)行如下程序片斷后,CMP指令分別使得5個狀態(tài)標志CF、ZF、SF、OF和PF為0還是為1?它會使得哪些條件轉(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習題9. 有如下程序片斷,請使用一條指令代替其中的兩條指令:1again:jz nextjmp againnext:2again:jle nextjmp againnext:解答: 1jnz again 2jg again10.假設(shè)EAX和ESI存放的是有符號整數(shù),EDX和EDI存放的是無符號整數(shù),請用比擬指令和條件轉(zhuǎn)移指令實現(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)增加了一條實用的條件傳送指令CMOVxx,其中的條件xx與條件轉(zhuǎn)移指令Jxx的條件xx一樣

5、。請用一條CMOV指令代替如下程序片斷中的條件轉(zhuǎn)移指令和其后的傳送指令含標號: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)代處理器當中,簡單的多條指令常比一條復雜的指令執(zhí)行速度快。例如,GCC編譯器就不使用LOOP指令,而是使用與其功能一樣的兩條指令,這兩條指令是什么? dec %ecx jnz loop習題13.請問如下LOOP指令執(zhí)行了多少次?movl $0, %ecxrepeat:loop repeat解答:loop執(zhí)行時,先將ecx中的值減1,使之變?yōu)?0xFFFFFFFF,然后進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論