汇编语言第七章循环程序

文章目录

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、在汇编语言程序层面,条件控制循环结构与分支结构有相通的地方,循环体可以看做是需要多次执行的分支体。

猜你喜欢

转载自blog.csdn.net/m0_37149062/article/details/124024942