清华大学出版社 TSINGHUA UNIVERSITY PRESS 宇节类型序类型 字节类型字类型 寄存器爼 AH AL BH BL CL 立即数 DH DL 主存储器 SI DI 字类型 SP BP 字类型字类型 段寄存器 ss, Cs, DS, ES J
清华大学出版社 TSINGHUA UNIVERSITY PRESS 进栈指令: PUSH SRO 执行操作: (SP)←(SP)-2 ((SP)+1,(SP))←(SRC) 出栈指令 POP DST 执行操作: DST)←((SP)+1,(SP)) (SP)←(SP)+2 堆栈:“先进后出的存储区,段地址存放在SS中, SP在任何时候都指向栈顶,进出栈后自动修改SP。 注意: ☆堆栈操作必须以字为单位。 不影响标志位 不能用立即寻址方式PUSH1234H *DST不能是CS POP CS
进栈指令: PUSH SRC 执行操作: (SP) (SP) – 2 ( (SP)+1, (SP) ) (SRC) 出栈指令: POP DST 执行操作: (DST) ( (SP)+1, (SP) ) (SP) (SP) + 2 堆栈:‘先进后出’的存储区,段地址存放在SS中, SP在任何时候都指向栈顶,进出栈后自动修改SP。 注意: * 堆栈操作必须以字为单位。 * 不影响标志位 * 不能用立即寻址方式 PUSH 1234H * DST不能是CS POP CS
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例:假设(AX)=2107H,执行 PUSH AX 低地址 (SP) 07H 21H (SP)→>** 进栈方向 高地址 PUSH AX执行前 PUSH AX执行后
例:假设 (AX) = 2107 H , 执行 PUSH AX * * * * * * * * (SP)→ PUSH AX 执行前 (SP)→ * * * * * * * * 07H 21H 低地址 高地址 PUSH AX 执行后 进栈方向
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例: POP BX 低地址 (SP)→07H 21H (SP) 出栈方向 * * 高地址 POP BX执行前 POP BX执行后 (BX)=2107H
(SP)→ * * * * * * * * 07H 21H POP BX 执行前 (SP)→ * * * * * * * * 低地址 高地址 POP BX 执行后 (BX) = 2107H 例: POP BX 出栈方向
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例: PUSH DS SUB AXAX PUSH AX RET 例: PUSH AX PUSH BX PUSH CX 其间用到AX、BX、CX POP CX;后进先出 POP BX POP AX
例: PUSH DS SUB AX, AX PUSH AX …… …… RET 例: PUSH AX PUSH BX PUSH CX …… ;其间用到AX、BX、CX POP CX ; 后进先出 POP BX POP AX