关于assume伪命令
时间:2010-11-09
来源:互联网
在数据段中定义的每一个变量标志符其实都代表了一个偏移量(也称为有效地址),这个偏移量与数据段段值相结合就指向某个内存地址。在程序中使用ASSUME伪指令是用来指明一个默认的段地址。一旦你把某个数据段的段名指定给某个段寄存器(比如ASSUME DS,DATA1),这之后当你使用这个数据段(DATA1)内定义的变量,编译程序就自动把它与这个段寄存器(DS)里的段值(表示一个段地址)结合起来使用。
这是我自己弄的例子
assume cs:code ,ds:date
data segment
a db 01h
data ends
code segment
start:
mov ax data
mov ds,ax
mov ax a
mov ax,4c00h
int 21h
code ends
end start
--------------------------------------------------------------------------
assume cs:code 两段程序就这里不一样
data segment
a db 01h
data ends
code segment
start:
mov ax data
mov ds,ax
mov ax a
mov ax,4c00h
int 21h
code ends
end start
用debug运行结果都是一样的。。你们觉得这两个有什么区别吗 如果没区别。。为什么assume cs:code一定要用,其它的好像可有可无,谁帮我解释下。。
这是我自己弄的例子
assume cs:code ,ds:date
data segment
a db 01h
data ends
code segment
start:
mov ax data
mov ds,ax
mov ax a
mov ax,4c00h
int 21h
code ends
end start
--------------------------------------------------------------------------
assume cs:code 两段程序就这里不一样
data segment
a db 01h
data ends
code segment
start:
mov ax data
mov ds,ax
mov ax a
mov ax,4c00h
int 21h
code ends
end start
用debug运行结果都是一样的。。你们觉得这两个有什么区别吗 如果没区别。。为什么assume cs:code一定要用,其它的好像可有可无,谁帮我解释下。。
作者: yg23hhxj 发布时间: 2010-11-09
程序那个是a db 0001 我写错的是,应该是a dw 01h
另外assume cs:code一定要用这个也打错了,是问assume cs:code一定要有。。
另外assume cs:code一定要用这个也打错了,是问assume cs:code一定要有。。
作者: yg23hhxj 发布时间: 2010-11-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28