第6章 流程控制
习题1. 指令指针EIP是通用寄存器还是专用寄存器?有指令能够直接给它赋值吗?哪些指令的执行会改变它的值?
解答:EIP是专用寄存器,不能通过指令直接给它赋值。可以改变其值的指令有:
(1)无条件分支,包括:跳转(jmp)、调用(call)、中断(int)。
(2)条件分支,与标志位CF、OF、PF、SF、ZF相关的条件跳转指令。
(3)循环指令,LOOP、LOOPE等。
3.
相对于BASIC语言中GOTO语句作用的IA-32处理器指令是哪条?
跳转指令 jmp
习题4.
IA-32处理器通过改变EIP寄存器的数值就可以改变程序,如果程序需要无条件跳转到标号done位置执行,使用“MOVL done, %EIP”语句是否可以达到,为什么?如果不能实现该功能,应该使用哪条指令?
解答:不能。不能对EIP寄存器直接赋值。使用指令jmp done可以实现。
习题6
条件转移指令Jxx所利用的条件保存在何处?有多少个不同条件的转移指令?
保存在EFLAGES寄存器中
共16个(P107)
习题7
JA和JG指令发生跳转的条件都是“大于”,它们有什么区别?
在处理带符号值和无符号值时有所区别。计算无符号值时,使用JA,对于带符号值,使用JG。
习题8. 执行如下程序片断后,CMP指令分别使得5个状态标志CF、ZF、SF、OF和PF为0还是为1?它会使得哪些条件转移指令条件成立、发生转移?
movl $0x20, %eax
movl $0x80, %ebx
cmpl %ebx,%eax
解答:CF=1 ZF=0 SF=1 OF=0 PF=1
可以使得发生转移的指令有:JC JS JP JNZ JNO
习题9. 有如下程序片断,请使用一条指令代替其中的两条指令:
(1)
again:
...
jz next
jmp again
next:
(2)
again:
...
jle next
jmp again
next:
解答: (1)jnz again
(2)jg again
10.
假设EAX和ESI存放的是有符号整数,EDX和EDI存放的是无符号整数,请用比较指令和条件转移指令实现以下判断:
(1)若EDX EDI,转到above执行;
CMP %EDI,%EDX JA above
(2)若EAX ESI,转到greater执行;
CMP %ESI,%EAX JG greater
(3)若ECX = 0,转到zero执行;
CMP $0,%ECX JE zero
(4)若EAX-ESI产生溢出,转到overflow执行;
CMP %ESI,%EAX JO overflow
(5)若ESI≤EAX,转到less_eq执行;
CMP %EAX,%ESI JLE less_eq
(6)若EDI≤EDX,转到below_eq执行。
CMP %EDX,%EDI JBE below_eq
11.
Pentium Pro处理器为IA-32指令系统增加了一条实用的条件传送指令CMOVxx,其中的条件xx与条件转移指令Jxx的条件xx相同。请用一条CMOV指令代替如下程序片断中的条件转移指令和其后的传送指令(含标号):
(1)
decl %ecx
jz contiune
movl %eax,%ebx
contiune:
(2)
addl $1,%ecx
jnc contiune
movl %eax,%ebx
contiune:
(3)
cmpl %ebx,%eax
jbe contiune
movl %eax,%ebx
contiune:
解答
(1)CMOVNZ %eax, %ebx
(2)CMOVC %eax, %ebx
(3)CMOVA %eax, %ebx
12.
现代处理器当中,简单的多条指令常比一条复杂的指令执行速度快。例如,GCC编译器就不使用LOOP指令,而是使用与其功能相同的两条指令,这两条指令是什么?
dec %ecx
jnz loop
习题13.
请问如下LOOP指令执行了多少次?
movl $0, %ecx
repeat: loop repeat
解答:
loop执行时,先将ecx中的值减1,使之变为-1(0xFFFFFFFF),然后进行判断是否为0。这里32位整数的最大值为232,故loop执行了232次。
14.
请用两条指令实现JECXZ指令的功能。
cmp $0,%ecx
je address
您可能关注的文档
最近下载
- 发酵工程原理与技术应用第十章 发酵经济学.ppt VIP
- 医疗机构病历书写基本规范(国卫医发〔2024〕8 号,附解读).docx VIP
- 2026年东营科技职业学院综合评价招生《素质测试》模拟题及参考答案.docx VIP
- 负压手术间的管理.pptx VIP
- 道法七年级下册教学计划.docx VIP
- 发酵工程原理与技术应用 教学课件 作者 余龙江 主编 课件 第四章 发酵工业的无菌技术.ppt VIP
- 新22J03 外装修参考图集.docx VIP
- 1 内审检查表-主任.docx VIP
- 2026年哈尔滨电力职业技术学院单招职业技能考试题库及答案详解(各地真题).docx VIP
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读.docx VIP
原创力文档

文档评论(0)