【发布时间】:2016-02-07 05:39:09
【问题描述】:
我是组装初学者。 我试图用 MASM 在屏幕上打印一封信。我定义了堆栈段,但是当我尝试链接程序时,得到了这个警告:
链接:警告 L4021:没有堆栈段
但是程序运行良好! 我怎样才能解决这个问题?请用简单的话解释一下。谢谢。
printa.asm:
stk segment
DW 32 dup(?)
stk ends
cds segment
assume cs:cds,ss:stk
main proc far
mov ah,02
mov dl, 'A'
int 21h
mov ah,01
int 21h
mov ah,4ch
int 21h
main endp
cds ends
END main
printa.lst:
Microsoft (R) Macro Assembler Version 6.00 11/06/15 09:38:16
printa.asm Page 1 - 1
0000 stk segment
0000 0020 [ DW 32 dup(?)
0000
]
0040 stk ends
0000 cds segment
assume cs:cds,ss:stk
0000 main proc far
0000 B4 02 mov ah,02
0002 B2 41 mov dl, 'A'
0004 CD 21 int 21h
0006 B4 01 mov ah,01
0008 CD 21 int 21h
000A B4 4C mov ah,4ch
000C CD 21 int 21h
000E main endp
000E cds ends
END main
Microsoft (R) Macro Assembler Version 6.00 11/06/15 09:38:16
printa.asm Symbols 2 - 1
Segments and Groups:
N a m e Size Length Align Combine Class
cds . . . . . . . . . . . . . . 16 Bit 000E Para Private
stk . . . . . . . . . . . . . . 16 Bit 0040 Para Private
Procedures, parameters and locals:
N a m e Type Value Attr
main . . . . . . . . . . . . . . P Far 0000 cds Length= 000E Private
0 Warnings
0 Errors
【问题讨论】:
-
在
assume列表中尝试STACK SEGMENT STACK USE16,然后尝试ss:STACK,而不是stk segment。 -
来自已删除的仅链接答案:github.com/open-watcom/open-watcom-v2/issues/…。另外:官方 MASM 参考:docs.microsoft.com/en-us/cpp/assembler/masm/segment
标签: assembly stack warnings masm