MOV AX,1234H
PUSH AX
执行后栈的情况 34 12
MOV BX,5678H
PUSH BX
执行后栈的情况 34 12 78 56
POP AX
执行后,34 12 78 56 中的 78 56 出栈,然后赋值给AX,所以AX = 5678H
这个时候栈的情况是34 12 (因为78 56已经出栈了)
POP BX
执行后,34 12出栈,然后赋值给BX,所以BX=1234H
这个时候栈为空
观察AX,BX 发现
未执行代码前AX=1234H,BX=5678H
执行代码后AX=5678H,AX=1234H
可见这段代码是利用栈的后进先出的特性来实现AX与BX的交换
PS:若有不明白的地方,可以追问
堆栈操作原则是先入后出,你这个程序先入先出,实质上完成了AX与BX内容的互换。
AX和BX的值互换