4
我是組裝中的一個begginer。 我試圖用MASM在屏幕上打印一封信。我定義堆棧段,但是當我試圖程序鏈接,得到了這樣的警告: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
代替'stk segment',嘗試'STACK SEGMENT STACK USE16',然後在'assume'列表中選擇'ss:STACK'。 – Michael