发布网友 发布时间:2022-05-07 04:51
共1个回答
热心网友 时间:2023-10-16 00:38
PUSH AX,分两步完成
SP=SP-2,SS:SP执行当前栈顶前面的单元,以当前栈顶前面的单元作为新的栈顶
将AX中的内容送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶 所以当
首先,当前状态ss=1050H,sp=0006H,此时栈顶是1050*10H+0006H = 1 0506H,AX=1234H(就当有H)
然后执行PUSH AX
SP = SP - 2 ,所以SP = 0004H
SS:SP = 1050*10H+0004H = 1 0504H
然后将AX的数据送入SS:SP指向的单元
终上所述:AX压栈后它的数据在1 0504H
PS:若有不明白的地方,可以追问
追问压栈操作后SP中的数据是什么?谢谢!追答压栈前SP = 0006H
因为我们知道PUSH和POP指令的操作都是以字类型(2字节)作为单位的运行的
所以当我们压栈的时候 SP就要减去2个字节,即SP = SP-2
所以压栈后SP = 0004H
热心网友 时间:2023-10-16 00:38
PUSH AX,分两步完成
SP=SP-2,SS:SP执行当前栈顶前面的单元,以当前栈顶前面的单元作为新的栈顶
将AX中的内容送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶 所以当
首先,当前状态ss=1050H,sp=0006H,此时栈顶是1050*10H+0006H = 1 0506H,AX=1234H(就当有H)
然后执行PUSH AX
SP = SP - 2 ,所以SP = 0004H
SS:SP = 1050*10H+0004H = 1 0504H
然后将AX的数据送入SS:SP指向的单元
终上所述:AX压栈后它的数据在1 0504H
PS:若有不明白的地方,可以追问
追问压栈操作后SP中的数据是什么?谢谢!追答压栈前SP = 0006H
因为我们知道PUSH和POP指令的操作都是以字类型(2字节)作为单位的运行的
所以当我们压栈的时候 SP就要减去2个字节,即SP = SP-2
所以压栈后SP = 0004H
热心网友 时间:2023-10-16 00:38
PUSH AX,分两步完成
SP=SP-2,SS:SP执行当前栈顶前面的单元,以当前栈顶前面的单元作为新的栈顶
将AX中的内容送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶 所以当
首先,当前状态ss=1050H,sp=0006H,此时栈顶是1050*10H+0006H = 1 0506H,AX=1234H(就当有H)
然后执行PUSH AX
SP = SP - 2 ,所以SP = 0004H
SS:SP = 1050*10H+0004H = 1 0504H
然后将AX的数据送入SS:SP指向的单元
终上所述:AX压栈后它的数据在1 0504H
PS:若有不明白的地方,可以追问
追问压栈操作后SP中的数据是什么?谢谢!追答压栈前SP = 0006H
因为我们知道PUSH和POP指令的操作都是以字类型(2字节)作为单位的运行的
所以当我们压栈的时候 SP就要减去2个字节,即SP = SP-2
所以压栈后SP = 0004H