第三章节问题
课本60页。初始状态栈是空的,执行push ax指令,其中ss:sp是10010H,ax是2266H,那么字节数据22H应该放在10010H中,66H应该放在1000FH中,为什么课本说22H放在1000F中,66H放在1000E中?将数据压栈难道不是压入到ss:sp所指向的位置吗,这里为什么要往上移动一个字节的数据区? 数据进栈,分两步。sp=sp-2 ,然后写入数据。所以1000E才是第一个字的起始地址 这位同学,我学的比你多,我来帮你解答下这个问题。入栈的操作是,先 sp=sp-2 然后再在此时sp指向的内存地址入栈,原来 sp 为 0010,-2后为 000e ,那么要入栈的两个内存单元地址不就是 000e、000f么,根据高字节高位,低字节地位的原则,那么就是 22 在 000f 了,66 在 000e了。不知道你理解了没有,共勉。
页:
[1]