我在C中定义了许多全局变量,用于与汇编进行交互,为什么不用栈来传递 是由原因的
但不幸的是这些全局变量定义的地址不受我控制的,他们随意定义到内存的某个地方
在自己写的系统运行时,全局变量的改变会改变我加载到内存里面的程序,或是我加载到内存的程序会改变全局变量,这令我非常头疼,每次都是将程序挪位置,这个不行换一个位置,不行再换,毫无办法,在BOCHS下只能看到局部变量的分配,看过也是非常奇葩的方法
实模式就是这么坑,但我们老师一定要再实模式下搞操作系统,有没有过来人指点一二
------解决思路----------------------
程序(数据 代码)在内存中的地址 = 程序在文本编辑器中的偏移地址(ORG)+加载程序的方法。
------解决思路----------------------
你的汇编和 c 是不同的 exe 程序吗?如果不是,而是通过 link 组成一个 exe 程序文件的话,是不应该这样的;如果是,有些麻烦,或许可以将所涉及的变量组合在一起,然后通过一个调用进行地址传送。