|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ling7 于 2011-11-19 21:29 编辑
//ax bx cx dx sp ds es ss cs ip 栈中数据: A B C D E F
mov ax,2000H //2000 0 16 0 0 b97 b97 ba7 ba7 3
mov ss,ax // 2000 6
mov sp,0 // 8
add sp,10 // A B 97 0B 06 32 0B 00
pop ax //0B97 C C 94 05 06 32 0B 00
pop bx // 3206 E D A7 0B 94 05 0B 00
push ax // C E 94 05 97 0B 0B 00
push bx // A F 06 32 97 0B 0B 00
pop ax //3206 C 10 94 05 97 0B 0B 00
pop bx // 0B97 E 11 A7 0B 94 05 0B 00
mov ax,4c00H //4C00 14
int 21H //
我push 数据进去 然后pop出来后 那个内存地址的数据就发生了改变
是不是它被系统拿去用在别的地方了哦?
那是不是说。。栈空间存储数据进去 然后拿出来 只能一次性使用。。
如果不是的话。。 那我
ax=1 bx=2 push ax push bx
pop ax pop bx ax=2 bx=1
这段内存空间被释放掉。 系统拿去存别的内存
然后我再pop ax pop bx的时候 就不再是 原来的 1 和2了呀。。 |
|