社区
汇编语言
帖子详情
ASSUME的作用???
jacky_shen
2004-07-21 09:53:16
ASSUME DS: DATA <---- 既然已经将DATA分配给DS
ASSUME ES: EXTR
...
...
MOV AX, DATA <---- 为什么还要把DATA的地址赋值给DS
MOV DS, AX
MOV AX, EXTR
MOV ES, AX
我的意思是为什么2个步骤就不能由ASSUME来一次完成它。
不懂,所以提出来问问。
...全文
346
10
打赏
收藏
ASSUME的作用???
ASSUME DS: DATA <---- 既然已经将DATA分配给DS ASSUME ES: EXTR ... ... MOV AX, DATA <---- 为什么还要把DATA的地址赋值给DS MOV DS, AX MOV AX, EXTR MOV ES, AX 我的意思是为什么2个步骤就不能由ASSUME来一次完成它。 不懂,所以提出来问问。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xghost
2004-07-25
打赏
举报
回复
up
YUGIBALSA
2004-07-25
打赏
举报
回复
ASSUME是强行转化的伪指令,只是告诉编译器DS的类型是DATA,但并没有做实际的事情
fanxero
2004-07-22
打赏
举报
回复
data相当于标号,是地址。伪指令assume只是告诉编译器要分配一个段,但并未把段地址确定下来,它也确定不下来,因为谁也不知道程序执行时各个段的段地址是什么呢。于是,在执行程序时,把data(它可代表地址哦)的值给段寄存器,这样段寄存器才真正份配给了各个段啊。另外,不可以mov ds,data,因为8086不允许直接把数据放入段寄存器,只好用ax中转一下。这个问题是编译器的事,跟编译器密切相关。
prettyladys
2004-07-22
打赏
举报
回复
我看了GIANTZZ回复..他的总体意思是: ASSUME可以不写.但用到哪个段的变量时要用段跨越前缀...
但我觉得没必要钻这个牛角尖.....这条指令就是为了告诉编译器 哪个是哪个段而已...首先通知好.....
dunkel
2004-07-22
打赏
举报
回复
bsnhk(欲哥) 的说法固然有道理, 但这个问题还谈不上吧
至于 assume 可以看看下面的帖子里 giantzz 的回复, giantzz 是汇编的前版主
http://search.csdn.net/Expert/topic/1213/1213371.xml?temp=.979748
prettyladys
2004-07-22
打赏
举报
回复
简单点说: ASSUME 是伪指令........只是说明DATA 属于代码段....其实告诉你.
DATA可以随便写成什么.....如果你写成 jacky 那么你要告诉他.ASSUME DS:jacky是属于代码段.(只是告诉一声)
段地址的首地址一定得装给DS.....没任何理由...记住就行了.
bsnhk
2004-07-22
打赏
举报
回复
还是没有一个人能回答!
我觉得在计算机领域中一些最基本的东西,外国人是对中国人保密的,我们想学也没资料可查。
cynic0916
2004-07-21
打赏
举报
回复
而且不声明将DS的值赋予DATA的话,好象直接写下面的那两句会报错,就好象在程序中自己突然加一个未在DATA段声明的变量,程序MASM时就会报变量未声明
cynic0916
2004-07-21
打赏
举报
回复
我认为上面那条只是声明,并未附值,后面那条指令才是给DATA分配DS地址
SDFDSAC
2004-07-21
打赏
举报
回复
ASSUME只是指示汇编程序设定段与段寄存器的联系,并不设置段寄存器的初值,段寄存器的初值是由程序装入的
As
sum
e指令解析
程序汇编经常要用到的伪指令,详细阐述其具体
作用
以及特定功能。
汇编语言——as
sum
e的
作用
as
sum
e 的
作用
是关联段名与段寄存器。 如果你在数据段中定义了变量名,比如: x db 0 而你在代码中,需要直接使用这个变量名,比如: mov al, x 那么,汇编程序在汇编时,就会报告错误。 因为,mov指令中...
汇编语言——as
sum
e的
作用
(转载)
as
sum
e 的
作用
是关联段名与段寄存器。 如果你在数据段中定义了变量名,比如: x db 0 而你在代码中,需要直接使用这个变量名,比如: mov al, x 那么,汇编程序在汇编时,就会报告错误。 因为,mov指令...
汇编语言中伪指令as
sum
e的
作用
对于as
sum
e很多人都会立即想到的是:告诉编译器哪一个段和哪一个段寄存器相关联。但是如果进一步想一下细节,大家不一定都清楚。下面将我们熟知的一句话变为两句话,这样它的含义就更加清楚了: 1.as
sum
e为我们指定...
汇编中的AS
SUM
E的使用
as
sum
e 最典型的用法:是指明变量与段寄存器的联系,比如 as
sum
e ds:data,它是告诉编译器以后所有在data段中定义的变量寻址时,使用ds作为段地址,但是它不对程序作任何事,比如你必须自己对ds赋值,这也就是为什么...
汇编语言
21,458
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章