天赐雨 发表于 2014-6-2 19:52:11

栈栈的问题

本帖最后由 天赐雨 于 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进制,数字后面不加任何字符是不是代表十进制数???菜鸟求教神的指导!














xiaosawanjava 发表于 2014-6-2 19:52:12

天赐雨 发表于 2014-6-2 20:54 static/image/common/back.gif
第一个可不可以不要呢?我不写不行么,我认为不谢和随便写没啥区别呀!要是有区别请大神赐教一下~~~~(>_

那区别很大,写了只是为了申请一块内存空间,而现在这块空间我先随便放点什么,至于以后我要放什么进去那是我的事。如果你不写就代表你没有申请就这块内存空间,这完全是2个概念。

xiaosawanjava 发表于 2014-6-2 20:49:13

第一个:不一定是要等于0,可以随便写
第二个:不加就是默认为10进制

天赐雨 发表于 2014-6-2 20:54:35

xiaosawanjava 发表于 2014-6-2 20:49 static/image/common/back.gif
第一个:不一定是要等于0,可以随便写
第二个:不加就是默认为10进制

第一个可不可以不要呢?我不写不行么,我认为不谢和随便写没啥区别呀!要是有区别请大神赐教一下~~~~(>_<)~~~~
页: [1]
查看完整版本: 栈栈的问题