ASSUME DS:DATA这句之后,为什么还要MOV AX,DATA?

ASSUMEDS:DATASTART:MOVAX,DATAMOVDS,AX不是已经ASSUME了DS了么,为什么还需要把数据段地址放到DS中呢?为什么CS不用?每个程序代... ASSUME DS:DATA
START: MOV AX,DATA
MOV DS,AX
不是已经ASSUME了DS了么,为什么还需要把数据段地址放到DS中呢?
为什么CS不用?每个程序代码段只有一个吗?
还有一个问题,系统中运行着两个程序a.exe和b.exe,他们每个程序都有自己的代码段、数据段、堆栈段吗?是a的数据段和b的数据段独立的吗?
展开
 我来答
做而论道
高能答主

2012-02-13 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
楼主的这两个问题,其实都是微软公司在作怪。

ASSUME,是用于通知微软的MASM软件的。

为什么还需要把数据段地址放到DS中呢?
为什么CS不用?
这些是微软的DOS操作系统要求的。

这两条,就当是固定用法,不用费心琢磨。
应该学习这两句下面的程序,都是怎样编写的,下面的,才是重点。

每个程序代码段只有一个吗?
可以写很多个,但是当前使用的,只有一个。
qiutian14
2012-02-17
知道答主
回答量:54
采纳率:0%
帮助的人:35.1万
展开全部
我好像只会第一个问题,而且我才学了五天,不知道我理解的对不对啊
是这样,1,数据的传送时通过 寄存器来实现的,START: MOV AX,DATA
MOV DS,AX
先把数据给AX,然后AX才能给DX
2:这个放的也不是数据段地址吧,地址有[]吧。
3:CS是放代码指令的,怎么能放里面呢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
救赎削肾客
2012-02-07 · TA获得超过1186个赞
知道大有可为答主
回答量:1196
采纳率:0%
帮助的人:954万
展开全部
CS 不用那是因为程序是从start开始的!!
追问
START是特定的标号吗?我换成START1行吗?为什么需要用END START?
追答
标号是可以随意的,编译的时候只是看最后的那个 
XX:
end XX
end就是表示程序的结束,xx标号是开始
=========
现在的系统中,a和b的数据段是独立的,dos中2个程序只能执行一个,单任务的系统
====
问题不管了?还有什么不懂的?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zklhp
2012-02-10 · TA获得超过380个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:277万
展开全部
核心的问题是 assume是伪指令 mov是汇编指令
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式