skylove1233 发表于 2017-9-9 21:32:15

关于link的时候出现的提示 no stack segment

今天看小甲鱼老师的包含多个段的程序2,要求是在代码段中使用栈,然后代码如下:
assume cs:code
code 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,32
                  mov bx,0
                  mov cx,8
                s:push cs:
                  addbx,2
                  loop s
                  
                  mov bx,0
                  mov cx,8
                s1:push cs:
                   addbx,2
                   loop s1
               
                mov ax,4c00h
                int 21h
               
code ends
endstart在代码我加粗的部分,已经设置了栈段的指针,为什么在link的时候,还会提示no stack segment

3-3 发表于 2017-9-9 21:54:24

这个警告是你的程序里没有定义堆栈,一般情况下可以不用理会这个警告,用默认的堆栈就可以了

skylove1233 发表于 2017-9-9 22:05:26

3-3 发表于 2017-9-9 21:54
这个警告是你的程序里没有定义堆栈,一般情况下可以不用理会这个警告,用默认的堆栈就可以了

可是我程序中定义了栈啊,movax,cs
                                        mov   ss,ax
                                       mov   sp,32

3-3 发表于 2017-9-9 22:07:57

assume cs:code,ss:stack

stack segment
dw 0,0,0,0,0,0,0,0
stack ends

……


把这几句加上,再试一次

skylove1233 发表于 2017-9-9 22:31:32

3-3 发表于 2017-9-9 22:07
assume cs:code,ss:stack

stack segment



还是一样啊

3-3 发表于 2017-9-9 22:35:49

assume cs:code,ss:stack

stack segment stack
dw 0,0,0,0,0,0,0,0
stack ends
……

组合类型设为stack试一下

skylove1233 发表于 2017-9-10 00:06:42

3-3 发表于 2017-9-9 22:35
assume cs:code,ss:stack

stack segment stack


哇,真的对了,您能给我讲一下为什么这样改就对了吗?或者这个只是在第几章,我才看到第6章,所以不太懂

3-3 发表于 2017-9-10 14:33:41

这个知识书里没有,你知道就好了,这是设置类型的内容,以后你会有所涉及的,现在暂时不用考虑。另外,我自己对这一点掌握的也不是非常到位。
页: [1]
查看完整版本: 关于link的时候出现的提示 no stack segment