汇编语言第七章循环程序

  • Post author:
  • Post category:其他


文章目录



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



版权声明:本文为m0_37149062原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。