【正确答案】由程序段可看出,AX、DX都是实现逻辑右移4位的功能,BL起暂存作用。可以给DX、AX各设置16位初始数据来观察其所完成的功能。
设(AX)=8A9BH,(DX)=1254H
MOV CL,4;(CL)=4;
SHR AX,CL:(AX)=08A9H,CF=1
MOV BL,DL;(BL)=54H
SHR DX,CL:(DX)=0125H
SHL BL,CL;(BL)=40H,CF=1
OR AH,BL:(AH)=48H,CF=0(OR指令使CF=OF=0)
(AX)=48A9H
由上得出该程序段完成功能:把DX:AX中的双字右移4位。
【答案解析】CF在这里没有起到作用。逻辑运算指令按位操作,除NOT不影响标志位,其余指令将使CF=OF=0,影响SF,ZF,PF。逻辑位移指令用于截取字节或字中的若干位。