㈠ 如何给GCC指定编译的地址
有两种办法
1. gcc D:\XXX\main.c 用这个命令来编译你的C文件,把上面的目录、文件换成你的。
2. 在CMD里,cd到D盘,然后cd到你的C文件目录下,执行gcc main.c即可
㈡ 程序编译时地址如何分配
如果是具备操作系统的情况下,C语言,linux为例,程序会根据系统配置和elf格式自动加载进入内存。
起始地址是可执行文件的base_of_image字段指定的值,前提是不开启PIE保护。
而汇编器内部寻址只是一个偏移地址。
所以最终,一条指令的位置 = 起始地址+ 他在模块的偏移。
如果不具备操作系统,纯粹的嵌入式环境下,地址是自己指定的。
㈢ 编译原理传地址问题
传址的话,这么讲你应该更明白,因为y(A):=x+y(1),y(1)=x+y(2),这时的y(2)才等于A,所以y:=x+x+y
㈣ C语言中函数的地址在编译时就分配好了,为什么不会产生地址冲突运行时刚好那个地址有别的程序在用
函数的具体武理地址不是编译的时候分配的,是运行的时候由系统分配的!如果你看一下生成的汇编代码你就会发现进入函数时的操作是将返回地址压栈后通过CALL跳转到函数开头处执行,压栈的函数地址都是偏移量,实际地址在运行时通过基址加减偏移量得出。另外通常程序的内存空间是专用的,两个程序的空间互不冲突,普通用户程序不可以访问其他程序的内存空间!
㈤ 全局变量的编译地址和运行地址
在代码执行时,会对初始化话变量和未初始化变量进行赋值,未初始化的一般为零,见汇编代码里。CPU执行时的差异只是从RAM中取指令和从Flash中取指令的差异。
㈥ 反汇编出来的地址是运行地址还是编译地址
winhex是文件地址,也就是你称的编译地址吧
OD和IDA的都是运行地址,也就是运行时地址
㈦ 编译系统(如:VC++6.0)编译时对变量和变量地址如何处理
int a =5;//定义一个变量,并初始化
int *p //定义一指针变量
p = &a; //把a的地址赋给指针变量p
int &a = b;//a是b的引用。也就是b的一个别名。只要改变a的值,b的值也就改变了
㈧ 编译时,变量的内存地址已经决定好了这种事情不是在运行时才做的么怎么编译时就完成了
不会的,
你编译得到的文件是目标文件(.obj或.o),它和可执行文件(.exe或.out)几乎没有什么不同
唯一的不同就是目标文件中用到地址的地方全部用0或其他地址指针代替,
可执行文件被执行时,操作系统会对他进行重定向操作,将目标文件中不明确的地址指针转换为明确的地址
所以,程序代码的地址的确定时间是在操作系统将程序装载入内存时,并不是编译时
满意请采纳,不满意请追问
㈨ 编译后的段地址是什么性质的地址
你可以把地址连续的内存单元看成一个段,这个段里面的所有物理地址(物理地址是由段地址跟偏移地址组成的)都有相同的段地址
㈩ 给个c语言编译软件~带上地址!最好是完整版的!
二级C语言加油站: http://hi..com/jsj08
Visual C++ 6.0各种版本,最小4M