摘要:
目录P481 P481 重定位条目的四个字段由汇编器指示好了,见图7-11 ADDR(.text)就是指令在内存中真正的地址 refaddr就是要修改的指令的起始地址在内存中真正的位置 refptr是可重定位目标文件中要修改的指令的位置,*refptr就是将这个位置修改成对应的内容。比如书上:ref 阅读全文
posted @ 2025-08-05 18:28
最爱丁珰
阅读(7)
评论(0)
推荐(0)
摘要:
要解释第一段,先解释一下图7-11 每个冒号前面的数字计算如下(除了两个重定位条目): 0: 第一条指令起始偏移 4: 第一条指令占4字节,下一条指令偏移为4 9: 第二条指令占5字节,下一条指令偏移为9 e: 第三条指令占5字节,下一条指令偏移为e(十六进制14) 13: 第四条指令占5字节,下一 阅读全文
posted @ 2025-08-05 18:19
最爱丁珰
阅读(11)
评论(0)
推荐(0)
摘要:
目录P474 P474 为啥-0.0不会被强制转换成int呢?因为转换成机器代码是编译器的事情,编译器只能看到当前文件,而当前文件中x是double,所以生成机器代码的时候,-0.0是double类型的二进制表示,而链接器虽然知道x是int,但是链接器能干的事情非常有限,不会去改变已有的机器代码 这 阅读全文
posted @ 2025-08-05 11:45
最爱丁珰
阅读(5)
评论(0)
推荐(0)
摘要:
目录P468P469P470 P468 这里说的本地...变量区别于全局变量,也就是局部变量;不带static的本地变量在栈里面管理,带static的本地变量在.bss或者.data里面管理(虽然这个本地变量带了static,但是还是只能在其所在的作用域里面使用) P469 我们理解的“未初始化的全 阅读全文
posted @ 2025-08-05 11:41
最爱丁珰
阅读(7)
评论(0)
推荐(0)
摘要:
一些符号如下 重定位的意思就是,经过编译器和汇编器生成的可重定位目标文件的指令的起始地址都是0,而链接器就会将其变为内存中的某一个地址,从而可以直接运行 阅读全文
posted @ 2025-08-05 00:24
最爱丁珰
阅读(3)
评论(0)
推荐(0)

浙公网安备 33010602011771号