该程序的循环次数是1FH(31)。
解析1)指令LEASIBLOCK的功能是使SI指向了BLOCK数组的首单元;
2)指令MOVCXSI的功能是将SI指向单元的内容20H传送给CX,即CX20H;
其后又有指令DECCX,使得CX的内容变为1FH;再看循环体的控制部分采用的指令是
LOOP,可知,该循环的执行次数为1FH次;
3)循环体的主要功能是将AL中的内容与SI所指向数组的每一个数据进行比较,
从数组中选出最小数保存在AL中。
4)由于比较后采用的转移指令是JNG,所以该程序处理的显然是一组有符号的数
据。
6.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。
ORG100H
BLOKDWX1,X2,…,XN
COUNTEQU($BLOLOK)2
RESULTDWCOUNT,?
LEABX,BLOK2
MOVCX,RESULT
XORAX,AX
GOON:ADDBX,2
CMPAX,BX
JAENEXT
MOVAX,BX
NEXT:LOOPGOON
MOVRESULT2,AX
程序段执行完,回答下述问题
RESULT2字存储单元的内容______
BX______
程序循环次数______
答RESULT2字存储单元的内容是MAXX1X2…XN
fBX100H2×COUNT1程序循环次数=COUNT解析1)该程序段的开始4条指令定义了以下数据:以BLOK为起始地址的字数组,该数组首单元的偏移地址(即BLOK)为100H;COUNT的值为BLOK字数组的数据个数;RESULT存储区的第一个字的内容为COUNT,即BLOK字数组的数据个数;第二个字的内容为空。2)循环体的主要功能是从BLOK字数组中找出最大数送入RESULT的第二个字单元中;3)循环次数为数组中数据的个数,即COUNT个。4)当循环结束后,BX中将存放最后一个字数据的偏移地址:首字偏移地址+末字与首字的相隔的字节数,即100H2×COUNT1。四,程序填空题(注意:下列各小题中,每空只能填一条指令!每小题6分,共12分)
1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令使其完整。
LEABX,TABLEMOVCX,10MOVSUM,AXMEXT:(1)ADCAH,0
(2)
JCEND0DON:INCBX(3)ENDO:HLT
JNCDON答:1ADDALBX
2MOVAXSUM
3LOOPNEXT解析1)程序的前三条指令的功能分别是:将表TABLE的首址传送给BX;将循环次数传送给计数器CX;将AX的原值保存在SUM单元中;以上指令实现了设置循环初始参数的功能。
2)标号NEXT所对应的第一个空白处就是循环体的第一条指令。根据题目的要求求表中前10个字节数的总和,可知循环每次应实现将表TABLE中的数据按字节加法的方式进行累加到AL中,并且将字节加法产生的进r