LINK : warning L4021: no stack segment为什么会有这样的问题?

aweto04 2004-07-28 05:46:20
初学,搞不明白了。代码如下:
是一个很简单的显示的例子,程序也能运行,
可我就是不想看到LINK : warning L4021: no stack 这几个字。
请问应该怎么改程序。就是怎么才能让程序正常的link而没有warning。

segment;*********************************************
data_seg segment
show_prompt db 'please input a number less than 256.',13,10,'$'
data_seg ends
;***********************************************
stack_seg segment
dw 128 dup(0)
tos label word
stack_seg ends
;**************************************************
program segment
main proc far
assume cs:program,ds:data_seg,ss:stack_seg

start:
mov ax,stack_seg
mov ss,ax
mov sp,offset tos

push ds
xor ax,ax
push ax

mov ax,data_seg
mov ds,ax

mov dx,offset show_prompt
mov ah,9
int 21h

ret
main endp
program ends
end start
...全文
2125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aweto04 2004-07-29
  • 打赏
  • 举报
回复
搞定了,谢谢指教。
Areslee 2004-07-29
  • 打赏
  • 举报
回复
你没仔细看我的回复!
堆栈段在segment后面必须加上stack声明,不然没用
chenggongkou 2004-07-29
  • 打赏
  • 举报
回复 1
你的程序没有用到栈段。

这只是个警告信息,不用理会。
aweto04 2004-07-29
  • 打赏
  • 举报
回复
我加了堆栈的定义了啊!!
我也知道这只是个warning,但我不喜欢看到自己的程序有warning。
所以想知道为什么会出现这样的情况。

还有,代码第一排分号前的那个segment不在我程序里,粘帖的时候粘错了:)
Areslee 2004-07-28
  • 打赏
  • 举报
回复 1
1、不理它,这个警告可以不理会
2、加上如下定义:
stack segment stack
db 100 dup(0)
stack ends

.......

assume ss:stack
BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY: D:\51PROGRAM FILES\C51\BIN\BL51.EXE STARTUP.obj, chuankou.obj TO chuankou RAMSIZE (256) MEMORY MODEL: SMALL INPUT MODULES INCLUDED: STARTUP.obj (?C_STARTUP) chuankou.obj (CHUANKOU) LINK MAP OF MODULE: chuankou (?C_STARTUP) TYPE BASE LENGTH RELOCATION SEGMENT NAME ----------------------------------------------------- * * * * * * * D A T A M E M O R Y * * * * * * * REG 0000H 0008H ABSOLUTE "REG BANK 0" DATA 0008H 0003H UNIT ?DT?CHUANKOU IDATA 000BH 0001H UNIT ?STACK * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 0003H ABSOLUTE CODE 0003H 000CH UNIT ?C_C51STARTUP CODE 000FH 000CH UNIT ?PR?SER?CHUANKOU CODE 001BH 0007H UNIT ?CO?CHUANKOU 0022H 0001H *** GAP *** CODE 0023H 0003H ABSOLUTE CODE 0026H 0041H UNIT ?PR?MAIN?CHUANKOU OVERLAY MAP OF MODULE: chuankou (?C_STARTUP) SEGMENT +--> CALLED SEGMENT --------------------- ?C_C51STARTUP +--> ?PR?MAIN?CHUANKOU ?PR?MAIN?CHUANKOU +--> ?CO?CHUANKOU SYMBOL TABLE OF MODULE: chuankou (?C_STARTUP) VALUE TYPE NAME ---------------------------------- ------- MODULE ?C_STARTUP C:0003H SEGMENT ?C_C51STARTUP I:000BH SEGMENT ?STACK C:0000H PUBLIC ?C_STARTUP D:00E0H SYMBOL ACC BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 2 D:00F0H SYMBOL B D:0083H SYMBOL DPH D:0082H SYMBOL DPL N:0000H SYMBOL IBPSTACK N:0100H SYMBOL IBPSTACKTOP N:0080H SYMBOL IDATALEN C:0006H SYMBOL IDATALOOP N:0000H SYMBOL PBPSTACK N:0100H SYMBOL PBPSTACKTOP N:0000H SYMBOL PDATALEN N:0000H SYMBOL PDATASTART N:0000H SYMBOL PPAGE N:0000H SYMBOL PPAGEENABLE D:00A0H SYMBOL PPAGE_SFR D:0081H SYMBOL SP C:0003H SYMBOL STARTUP1 N:0000H SYMBOL XBPSTACK N:0000H SYMBOL XBPSTACKTOP N:0000H SYMBOL XDATALEN N:0000H SYMBOL XDATASTART C:0000H LINE# 126 C:0003H LINE# 133 C:0005H LINE# 134 C:0006H LINE# 135 C:0007H LINE# 136 C:0009H LINE# 185 C:000CH LINE# 196 ------- ENDMOD ?C_STARTUP ------- MODULE CHUANKOU C:0000H SYMBOL _ICE_DUMMY_ D:0080H PUBLIC P0 D:0090H PUBLIC P1 D:00B0H PUBLIC P3 B:00A8H.7 PUBLIC EA C:001BH PUBLIC table D:00A8H PUBLIC IE B:00A8H.4 PUBLIC ES D:00B8H PUBLIC IP B:0098H.0 PUBLIC RI D:0008H PUBLIC flag B:0098H.1 PUBLIC TI C:0026H PUBLIC main D:0099H PUBLIC SBUF D:0098H PUBLIC SCON D:0089H PUBLIC TMOD D:0088H PUBLIC TCON C:000FH PUBLIC ser D:008DH PUBLIC TH1 B:0098H.7 PUBLIC SM0 B:0098H.6 PUBLIC SM1 D:008BH PUBLIC TL1 B:0088H.6 PUBLIC TR1 D:0009H PUBLIC a B:0098H.4 PUBLIC REN D:00C8H PUBLIC T2CON D:000AH PUBLIC i BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 3 D:00D0H PUBLIC PSW ------- PROC MAIN C:0026H LINE# 6 C:0026H LINE# 7 C:0026H LINE# 8 C:0029H LINE# 9 C:002CH LINE# 10 C:002FH LINE# 11 C:0031H LINE# 12 C:0033H LINE# 13 C:0035H LINE# 14 C:0037H LINE# 15 C:0039H LINE# 16 C:003BH LINE# 17 C:003BH LINE# 18 C:003BH LINE# 19 C:0040H LINE# 20 C:0040H LINE# 21 C:0042H LINE# 22 C:0045H LINE# 23 C:0047H LINE# 24 C:0047H LINE# 25 C:004FH LINE# 26 C:0052H LINE# 27 C:0054H LINE# 28 C:005BH LINE# 29 C:005EH LINE# 30 C:0061H LINE# 31 C:0063H LINE# 32 C:0065H LINE# 33 C:0065H LINE# 34 ------- ENDPROC MAIN ------- PROC SER C:000FH LINE# 36 C:000FH LINE# 38 C:0011H LINE# 39 C:0014H LINE# 40 C:0017H LINE# 41 C:001AH LINE# 42 ------- ENDPROC SER ------- ENDMOD CHUANKOU Program Size: data=12.0 xdata=0 code=102 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)

21,493

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧