关于汇编中的$

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:42:29
假设当前IP 0006H MOV AX,$

MASM5.0中被编译成 MOV AX,[0006H]

而在MASM集成环境中为 MOV AX,0006H

到底哪个是对的,连编译器都出现这样的问题该如何学习汇编

POP/PUSH $ 在MASM集成环境中无法通过编译语法错误

而在MASM5.0中能够通过编译 被编译成 PUSH [0006H]
POP [0006H]

简直快疯了哦

我们考试经常会出到类似的题目.给你一条指令让你写出被编译后的形式

可是并没有提供任何编译程序,调试统一为DEBUG
我用的MASM5.0 和集成环境都是在保护模式下的

实模式下结果还是一样的

$ 在汇编语言中表示的是当前偏移地址,故MASM5.0的编译结果是正确的。
不知道你用的集成环境应该实在保护模式下编译的吧。在保护模式下,硬盘中开辟了虚拟内存,使得程序运行不再受到物理内存的限制。但这样事实上隐藏了物理地址。
因此建议楼主在实模式下编译,纯DOS就是一个典型的运行在实模式环境下的系统,所有的物理地址都是可见的。