问题描述
我正在一个Assembly项目中,其中出现了offset
指令的某些奇怪属性。我写下了以下说明:
mov ax,offset offset variable
当我执行程序时,我预期会出现错误,但是程序运行时未显示任何错误,并且行mov ax,offset offset variable
在调试工具中显示为mov ax,0784
,这与指令相同出现mov ax,offset variable
(0784是数据段中变量的偏移量)。一阵困惑之后,我执行了以下指令:mov ax,offset offset offset offset offset offset variable
(是的,有点可笑),它具有相同的效果和相同的结果(ax值成为变量的偏移量)
我的问题是,为什么寄存器AX中存储的值是变量的偏移量(我可以确定总是偏移量=偏移量吗?),为什么这些行不产生任何错误?并且,如果 offset的偏移量的含义是什么,它的含义是什么? (这些示例中汇编程序遵循的含义)
谢谢。 如果相关,我正在使用程序集x86,TASM,DOSBox仿真器和Turbo调试器:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)