寞晓。晓寞 发表于 2012-11-18 22:11:03

汇编 sp问题。。。帮忙看看,。。。



不怎么理解sp为什么=6。。。。。那句mov bp,sp是取sp指向的值还是取sp的值啊、、、、为什么。。。。

ACC 发表于 2012-11-18 22:16:22

sp的值,该指令中sp的寻址方式是寄存器寻址

s0512 发表于 2012-11-19 13:47:48

SP怎么得6了?

s0512 发表于 2012-11-19 13:59:48

{:5_108:}我的理解是这样:
MOV AX,6;AX:=6
CALL AX    ;PUSH IP压入下一条指令的偏移地址{5}进栈,程序执行偏移地址处代码
INC AX      ;这句未执行
MOV BP,SP ;将SP寄存器中的值传送给BP
ADD AX, ;将 BP 指向内存单元的数据,长度为两字节的数值{5}与AX相加, 结果为11
                  

寞晓。晓寞 发表于 2012-11-19 18:06:50

s0512 发表于 2012-11-19 13:59 static/image/common/back.gif
我的理解是这样:
MOV AX,6;AX:=6
CALL AX    USH IP压入下一条指令的偏移地址{5}进栈,程序 ...

第四句取值 怎么是取SP指向的值呢 没有加。。。呵呵

s0512 发表于 2012-11-19 18:27:22

寞晓。晓寞 发表于 2012-11-19 18:06 static/image/common/back.gif
第四句取值 怎么是取SP指向的值呢 没有加。。。呵呵

没加 '[ ]'就是取寄存器的值, 加了就是取 寄存值做偏移指向的内存{:5_109:}

57042478 发表于 2012-11-19 19:08:53

只有bx、bp、di、si这几个寄存器可以加[],还有他们一定的组合。所以mov bp,sp是把sp里的值赋值给bp。这里好像不知道sp的值是多少,我是不知道。

寞晓。晓寞 发表于 2012-11-19 22:42:09

s0512 发表于 2012-11-19 18:27 static/image/common/back.gif
没加 '[ ]'就是取寄存器的值, 加了就是取 寄存值做偏移指向的内存

理解鸟。。。

s0512 发表于 2012-11-19 22:47:12

给分我吧~~嘿嘿!!

s0512 发表于 2012-11-19 22:52:53

s0512 发表于 2012-11-19 22:47 static/image/common/back.gif
给分我吧~~嘿嘿!!

晕!!设最佳我就有分了!!不用加的!!哈

会飞的熊 发表于 2012-11-20 01:19:01

个把月不看汇编,都忘的差不都了,多谢楼主出的这道题,让我回过去复习了一下,终于懂了。

寞晓。晓寞 发表于 2012-11-20 09:42:34

s0512 发表于 2012-11-19 22:52 static/image/common/back.gif
晕!!设最佳我就有分了!!不用加的!!哈

呵呵 不会。。。。

s0512 发表于 2012-11-20 09:45:13

寞晓。晓寞 发表于 2012-11-20 09:42 static/image/common/back.gif
呵呵 不会。。。。

额!!贴子下面就是了~
页: [1]
查看完整版本: 汇编 sp问题。。。帮忙看看,。。。