某子程序定义及主程序的调用过程如下,CALL执行后,DL=( ) CX=( ) AX=( ) XPROC PROC XOR DL,DL AGAIN: SHL Ax,1 ADC DL,0 LOOP AGAIN RET XPROC ENDP ......... MOV AX,3536H MOV CX,16 CALL XPROC
时间: 2024-02-10 18:19:14 浏览: 61
在执行CALL XPROC之前,AX被赋值为3536H,CX被赋值为16。执行CALL XPROC后,程序跳转到XPROC标签处,执行XPROC子程序中的指令。
在XPROC子程序中,首先将DL寄存器清零。然后进入一个名为AGAIN的循环,循环体内将AX寄存器左移一位(相当于乘以2),将CF位(进位标志位)清零,将DL寄存器与0相加(相当于将DL寄存器清零),然后CX寄存器减1,如果CX不等于0,则继续执行循环体内的指令,否则跳出循环。最后,返回到主程序,并且AX的值为原来的值乘以2的16次方,即3536H乘以2的16次方,即AX=( ),CX的值为0,DL的值为计算结果的最后一位。
阅读全文