|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天看了某人的汇编的视频,听到他讲 push 入栈的时候,我就迷惑了。假如 ax 存放的是 1234H ,ss存放1000H ,sp存放10H ,他说把 ax 入栈, 是先存放数据,然后在把 sp - 2 ,也就是说地址为 10010H (SS:SP)存放的是 ax的高 8位 (12H) ,1000F 存放的是ax的低8位,当时我就有点迷惑,我感觉有点不对劲,觉得这和小甲鱼老师讲的不一样啊,小甲鱼老师说的是 push 是先-2 后存放数据 ,于是我自己就去实验了一下,果然我的猜测是对的,小甲鱼老师讲的没错,是先-2 后入栈,我在测试的时候 sp 为10 ,然后我入栈 ax (1234H) 入栈之后我查看了 10010 地址的值,发现 偏移地址为10 的值,并没有被覆盖为ax的高8位 (12H) ,而值真正存放在 偏移为 F 的地址 里面 ,低8位存放在E 里面,这就说明 push ax 的时候 是先把 sp 的值-2 然后再存放 ax 的值。
其实说了这么多,我只想说一点,就是以后在看视频或者看书的时候,遇到自己觉得不对劲的地方最好还是自己测试一下,不要觉得这是牛人讲的就一定没有错,我觉得还是自己实验了才是真的。
|
|