汇编语言中怎么样定义堆栈段和数据段

 我来答
百度网友f6753a1fd
2012-07-29 · TA获得超过821个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:364万
展开全部
assume cs:code,ss:stack,ds:data ; 段说明, 自己定义的code对应代码段, stack对应堆栈段, data对应数据段

stack segment stack ; 堆栈段的定义
byte 64 dup(0)
stack ends

data segment ; 数据段的定义
msg byte 'hello world!$'
data ends

code segment ; 代码段的定义
start:
mov ax,data
mov ds,ax
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
;=============以上是一个常见的定义=============
masm 5.0 以后也支持简化定义如 .data 为数据段 .code表示代码段, 形式如下:
.model small
.stack 200h ; 定义堆栈段大小
.data ; 定义数据段
szMsg db 'Hello World!',13,10,'$'

.CODE ; 代码段的定义
START:
mov ax,@data
mov ds,ax
mov es,ax
mov si,0
mov es:[bx+1+si],ah
lea dx,szMsg
mov ah,9
int 21h

;暂停,任意键关闭
mov ah,1
int 21h
mov ah,4ch ;结束,可以修改al设置返回码
int 21h

END START
收集板
2012-07-29 · TA获得超过402个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:225万
展开全部
栈直接在push pop中就可以使用。
数据段在.data里面,可以初始化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangfan2000
2012-07-30 · TA获得超过2549个赞
知道小有建树答主
回答量:586
采纳率:50%
帮助的人:571万
展开全部
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT ;数据段
;请在这里定义您的数据

DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始化
MOV DS,AX
;请在这里添加您的代码

MOV AX,4C00H ;退出程序
INT 21H
CODES ENDS
END START
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式