作业帮 > 综合 > 作业

assume cs:code,ds:data,ss:stack 谁能清楚地解释它的意思吗?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 02:49:35
assume cs:code,ds:data,ss:stack 谁能清楚地解释它的意思吗?
这个语句起什么作用?
我知道ds:data是干嘛的,我写了一下,你将就看吧,

在汇编时其实内部只有偏移地址寻址,而没有变量名寻址.
所以汇编时汇编软件会把你写的变量换成偏移地址.
而变量是在你假定的段里查找得到偏移地址,而实际上却是用ds:偏移地址来查找数据.
所以当ds(es)不指在assume的指明的段中也可以运行,只是会得到另一个段的相应偏移地址处的内容.如:
assume ds:段名1
mov ds,段2
mov ax,段1中的第二个变量
最终结果ax保存的是段2中的对应与段1中第二个变量相同地方的东西(注意是db,dw.)
编译器是在段1中查找变量名,并把变量转换为偏移地址,
但访问时使用ds:偏移地址
这时ds保存的是段2的段地址,所以访问到的是第二个段对应偏移地址的内容.