请教汇编stack定义问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 23:07:28
我的程序如下,请问我的堆栈段定义出什么问题了。这可是按照书上说的啊。而且很多教程都有讲这样定义的。路过的大侠帮忙看看啊。
data segment
hello db 'hello world$'
.radix 16
data ends

stack segment
db 256 dup(?)
top label word
stack ends

code segment
assume cs:code, ds:data, ss:stack
start:
mov ax,data
mov ds,ax

cli
mov ax,stack
mov ss,ax
mov sp,offset top
sti

mov dx,offset hello
mov ah,09h
int 21h

mov ah,01h
int 21h

mov ah,4ch
int 21h
code ends
end start
不好意思,我想问的是为什么会出现LINK : warning L4021: no stack segment提示。
对了,我用的编译器是masm611..

四楼说的是另外一种定义方式,这样做以后系统会自动把段寄存器SS和栈顶寄存器SP与该堆栈段之间建立相应的关系,并设置其初值,而不用在代码段对它们进行赋值。

楼主的程序,没什么问题,用MASM5.0编译,正常通过;
用DEBUG.EXE调试,也正常运行。
欢迎楼主在汇编上做更多探索。

stack segment
后面缺少了STACK关键词,再加个

top label word 不解

用emu8086调试没有问题,我到dos下去看看怎么样