• 2021-04-14
    实现将DX:AX中存放的32位数扩大4倍,正确的程序段是( ) A.SHL AX,2 ROL DX,2 B.RCL AX,2 SHL DX,2 C.MOV CX,2 LOP:SHL AX,1 RCL DX,1 LOOP LOP D.SHL AX,1 SHL AX,1 RCL DX,1 RCL DX,1
  • 正确答案:C解析:在使用移位指令对32位数进行扩大或缩小倍数操作时,一定要注意它的CF位,如果不考虑它的CF位,操作后的结果可能就是错误的。所以在本题中,要对一个32位数扩大4倍,即对32位数向左移2位。在移低字的时候用SAL或SHL命令都可以,但对低字操作后紧接着一定要对高字操作,这样才能保证CF的位不被落下。对高字操作时一定要使用RCL带进位循环左移。根据这些方面所以选项C的程序段是正确的。

    内容

    • 0

      设(AX)=9ABCH,(DX)=8765H PUSH AX PUSH DX POP AX POP DX 上述4条指令执行后,(AX)=_(1)__H,(DX)=__(2)__H

    • 1

      在下列程序段中分别填入以下指令 (1)LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT 程序执行完后,AX,BX,CX,DX 的内容分别是多少? START: MOV AX,01H MOV BX,02H MOV CX,04H MOV DX,03H NEXT: INC AX ADD BX,AX SHR DX,1 ( )

    • 2

      MOV DX,1 MOV AX,0 MOV CX,10 DIV CX 执行这段代码后,DX是( ),AX是( )。

    • 3

      执行下列指令序列后,完成的功能是将(DX,AX)的值______。 MOV CL,04 SHR AX,CL MOV BL,DL SHR DX,CL SHL BL,CL OR AH,BL

    • 4

      执行下列指令序列后,完成的功能是将(DX,AX)的值除以______。 MOV CX,4 NEXT: SHR DX,1 RCR AX,1 LOOP NEXT (注:填写一个十进制数)