7-1 循环指令
7-1-1 循环指令
测验
1、IA-32处理器的LOOP指令隐含使用哪个寄存器作为计数器?
ECX
2、IA-32处理器的JECXZ指令发生跳转的条件是:
ECX=0
3、IA-32处理器的LOOP指令常用于增量计数的循环控制。
错
4、IA-32处理器的LOOP指令包含有对ECX寄存器减1的功能。
对
5、IA-32处理器的LOOP指令先对ECX是否为0进行判断,然后再执行对ECX寄存器减1的操作。
错
7-1-2 数组求和程序
寄存器间接寻址
测试
1、使用LOOP指令控制计数循环,循环次数应赋予的寄存器是:
ECX
2、如果程序需要连续访问大型数组中的每个元素,不适宜采用的存储器寻址方式是:
直接寻址
3、数据段有语句“array dword 136,-138,133,130,-161”,则“type array”等于:
4
4、array指向一个数组,指令“add eax,array[ebx*(type array)]”的源操作数寻址方式是:
带比例的寄存器变址寻址
5、指令“xor eax,eax”的作用是让寄存器EAX等于0。
对
7-1-3 循环程序结构
测验
1、汇编语言程序中,只能实现“先循环、后判断”,不能实现“先判断、后循环”结构。
错
2、“先循环、后判断”的循环程序结构,循环体至少执行一次。
对
3、“先判断、后循环” 的循环程序结构,循环体可能一次都不执行。
对
4、C语言的语句“for(i=1; i<=100; i++) sum=sum+i;”对应这里的增量计数控制循环。
对
5、C语言的语句“for(i=100; i>0; i–) sum=sum+i;”对应这里的减量计数控制循环。
对
7-2 技术指令
7-2-1计数控制循环
测验
1、有50个数值,使用循环结构逐个比较方法求出最大值,程序的循环次数是:
49
2、数据段有语句“array dword -3,0,20,900,-56”,则“lengthof array”等于:
5
3、LOOP指令适合实现减量计数控制循环。
对
4、采用寄存器间接寻址从头开始访问数组的每个元素,初始通常应将该寄存器赋值为数组首地址。
对
5、采用寄存器相对寻址从头开始访问数组的每个元素,初始可以将该寄存器赋值为0。
对
7-3 条件控制指令
7-3-1 条件控制循环
测验
1、对于字符串string,如果使用寄存器相对寻址“string[ebx]”访问其头一个元素,EBX应该赋值为:
0
2、指令“cmp al,0”执行后,指令“jz done”发生转移时,AL寄存器:
等于0
3、条件控制循环通常需要使用条件转移指令进行是否继续循环的判断。
对
4、通常情况下,“先判断、后循环”的循环程序结构可以修改为“先循环、后判断”的循环程序结构。
对
5、在汇编语言程序层面,条件控制循环结构与分支结构有相通的地方,循环体可以看做是需要多次执行的分支体。
对