栈栈的问题
本帖最后由 天赐雨 于 2014-6-2 20:17 编辑assume cs:codesg
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
dw 0,0,0,0,0,0,0,0 ;用dw定义8个字型数据,在程序加载后,将取得8个字的
;内存空间,存放这8个数据。我们在后面的程序中将这段
;空间当作栈来使用。
start:mov ax,cs
mov ss,ax
mov sp,30h ;设置栈顶ss:sp指向cs:32
mov bx,0
mov cx,8
s: push cs:
add bx,2
loop s ;以上将代码段0~16单元中的8个字型数据依次入栈 、
mov bx,0
mov cx,8
s0: pop cs:
add bx,2
loop s0 ;以上依次出栈8个字型数据到代码段0~16单元中
mov ax,4c00h
int 21h
codesg ends
end start ;指明程序的入口在start处
第一:以上是课本上的一个程序,我的疑问是第四行:dw 0,0,0,0,0,0,0,0 我认为是为下面作为栈来使用将空间清零,我想问的是是不是一定得清零,不然栈就没有办法使用(第三章也没有说一定得清零)????菜鸟求教神的指导!
第二:数字后面+h代表16进制,数字后面不加任何字符是不是代表十进制数???菜鸟求教神的指导!
天赐雨 发表于 2014-6-2 20:54 static/image/common/back.gif
第一个可不可以不要呢?我不写不行么,我认为不谢和随便写没啥区别呀!要是有区别请大神赐教一下~~~~(>_
那区别很大,写了只是为了申请一块内存空间,而现在这块空间我先随便放点什么,至于以后我要放什么进去那是我的事。如果你不写就代表你没有申请就这块内存空间,这完全是2个概念。 第一个:不一定是要等于0,可以随便写
第二个:不加就是默认为10进制 xiaosawanjava 发表于 2014-6-2 20:49 static/image/common/back.gif
第一个:不一定是要等于0,可以随便写
第二个:不加就是默认为10进制
第一个可不可以不要呢?我不写不行么,我认为不谢和随便写没啥区别呀!要是有区别请大神赐教一下~~~~(>_<)~~~~
页:
[1]