问题 单项选择题

交换寄存器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内容的交换。

单项选择题
问答题