我在bin文件中发现了两个地方非常值得注意,特别是反汇编的同志们! 我将一个bin文件反汇编为asm,然后又用这个asm重新生成hex,再生成bin,两个文件对比发现两个地方不同: 源文件 汇编得到的文件 CAC6 -> C2C6 也就是 rjmp 0xac7 -> rjmp 0x2c7 C800 -> C000 也就是 rjmp 0x801 -> rjmp 0x001
大家看看这两个地方会不会有问题?问题是怎么产生的? 芯片用的是ATMega48,编译环境用的AVR Studio4.12 按照avr的指令集,rjmp跳转的范围为2k-1~2k,对于源文件中超出2k的地址0xac6和0x800,cpu会怎样处理呢?
|