问题
单项选择题
交换寄存器SI,DI的内容,正确的程序段是 ( )
A.PUSH SI
PUSH DI
POP SI
POP DI
B.PUSH SI
PUSH DI,
POP SI,DI
C.MOV AX,SI
MOV SI,DI
MOV DI,AX
D.MOVAX,SI
MOV BX,DI
XCHG BX,AX
答案
参考答案:A
解析: 在堆栈中,无论是压人还是弹出,都必须以字为单位进行,即一次压人必须压入堆栈一个字,弹出时,也必须从堆栈中取出一个字。所以选项B是错误的;在串操作指令中,SI用作源变址寄存器,DI用作目的地址寄存器,所以选项C是错误的;选项D交换的是 AX寄存器和BX寄存器里的内容,不符合题意;只有选项A是正确的,它依次把SI和DI的值推进栈中,然后把DI的值弹出来给SI,把SI的值弹出来给DI,即完成了SI和DI内容的交换。