汇编程序6.3
assume cs:codecode segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,30h
mov bx,0
mov cx,8
s: push cs:
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop cs:
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
为什么 sp 是30h
sp确实不可能会等于30H,从代码中可以看出一共定义了16个字型数据 2*16 = 32 转换成16进制也就是20H,楼主你可以去看另一个人的代码,和的一样sp他的也是32(10进制),不过问的问题不一样,下面这是链接:http://bbs.fishc.com/thread-46404-1-1.html 为之疯狂 发表于 2014-4-27 16:02 static/image/common/back.gif
sp确实不可能会等于30H,从代码中可以看出一共定义了16个字型数据 2*16 = 32 转换成16进制也就是20H,楼主你 ...
我写错了 ,书上是DW 16个0, 因为没有h 嘛。是不是16个0 ,和定义的八个字 就是30h了?0后面没有h,就是字型数据吧,有h的是字数据。 这样应该才是20h吧。为什么是30h 呢?我们哪里搞错了呢?书上应该没错。 为之疯狂 发表于 2014-4-27 16:02 static/image/common/back.gif
sp确实不可能会等于30H,从代码中可以看出一共定义了16个字型数据 2*16 = 32 转换成16进制也就是20H,楼主你 ...
会不会dw 16个0 ,和第一次定义的八个 ,一共24个字,这样想的话就对了。cs:0 到 cs:2f ,用来存放定义的数据。 此时栈为空,所以指向cs:30h。 为之疯狂 发表于 2014-4-27 16:02 static/image/common/back.gif
sp确实不可能会等于30H,从代码中可以看出一共定义了16个字型数据 2*16 = 32 转换成16进制也就是20H,楼主你 ...
但是为什么要定义16个0 呢? 传说。 发表于 2014-4-27 16:17 static/image/common/back.gif
我写错了 ,书上是DW 16个0, 因为没有h 嘛。是不是16个0 ,和定义的八个字 就是30h了?0后面没有h,就是 ...
我差点就你搞晕了,什么叫 0 后面有h就是字型数据啊, h是代表这个数据是16进制数,而任何一个进制的0都是相等的,可以不加h,因为都是零0.
我看是不是16进制 是看 dw 来的,你不是定义了16个dw数据吗。
你可能以为dw 0,0,0,0,0,0,0,0这样就不是8个字型数据了,其实他存入内存的时候会自己往高位添0的,
也就是说你相当与你定义了, dw 0000,0000,0000……(这里一共有8个)
所以我说你一共是定义了 8+8 = 16 个字型数据,一个字型数据等 2 个字节,2*16 = 32 转16进制 20H 为之疯狂 发表于 2014-4-27 16:27 static/image/common/back.gif
我差点就你搞晕了,什么叫 0 后面有h就是字型数据啊, h是代表这个数据是16进制数,而任何一个进制的0都是 ...
我写错了。 书上定义了16个0,这样是不是就对了? 但是上面是8个,下面为什么要定义16个0.。 传说。 发表于 2014-4-27 16:31 static/image/common/back.gif
我写错了。 书上定义了16个0,这样是不是就对了? 但是上面是8个,下面为什么要定义16个0.。
我这样跟你说吧, 你把计算器打开,输入 0000 你看下到底是显示 4个0 还是显示1个0, 我说这些是想告诉你,4个0 他同样是等于0 ,而这里要写4个0,是因为一个字型数据占2个字节,1个字节 = 8位2进制数 = 4位16进制数, debug 里面显示的 16位进制, 所以说他存放到内存的时候是 00 00 这样存放的,你在看下你的第一行,
我就拿0123H来说,其实0123H 你也可以写成123H,你要几组一句话,任何一个数,在左边添0 都不影响这个数的原本值. 为之疯狂 发表于 2014-4-27 16:38 static/image/common/back.gif
我这样跟你说吧, 你把计算器打开,输入 0000 你看下到底是显示 4个0 还是显示1个0, 我说这些是想告诉你, ...
dw 0 , 存到内存是00 00, 但是他定义16个0 是什么意思? 书上写的到底错没错?。。 麻烦你了。。 本帖最后由 传说。 于 2014-4-27 17:01 编辑
为之疯狂 发表于 2014-4-27 16:38 static/image/common/back.gif
我这样跟你说吧, 你把计算器打开,输入 0000 你看下到底是显示 4个0 还是显示1个0, 我说这些是想告诉你, ...
明白了。
页:
[1]