而这里的 05 是什么意思呢? STM8 存储器是统一编址的!
05, Start Linear Address Record. The address field is 0000, the byte count is 04. The 4 data bytes represent the 32-bit value loaded into the EIP register of the 80386 and higher CPU.
0000B191应该是需要装入的地址,估计是供后面的 hex目标码用。 05, Start Linear Address Record. The address field is 0000, the byte count is 04. The 4 data bytes represent the 32-bit value loaded into the EIP register of the 80386 and higher CPU. There are various format subtypes:
I8HEX or INTEL 8, 8-bit format.
I16HEX or INTEL 16, 16-bit format. Allows usage of 02 and 03 records. The data field endianness may be byte-swapped.
I32HEX or INTEL 32, 32-bit format. Allows usage of 04 and 05 records. The data field endianness may be byte-swapped.
Beware! Byte-swapped data might be more confusing. It is possible to misinterpret the byte order in case of I16HEX and I32HEX.
0000B191应该是需要装入的地址,估计是供后面的 hex目标码用。
05, Start Linear Address Record. The address field is 0000, the byte count is 04. T ...
IJK 发表于 2010-8-4 11:43 [/quote]
此段与LZ的一样,类型为05:
:0400000508004ABDE8
其中的地址是0x08004ABD,当我下载代码到芯片里后(不勾选 run to main),程序恰好停在 0x08004ABD,对应于标号: __iar_program_start
维基百科是这么说: http://en.wikipedia.org/wiki/Intel_HEX 05, Start Linear Address Record. The address field is 0000, the byte count is 04. The 4 data bytes represent the 32-bit value loaded into the EIP register of the 80386 and higher CPU.
根据 http://en.wikipedia.org/wiki/X86_assembly_language
The instruction pointer is called ip in 16-bit mode, eip in 32-bit mode, and rip in 64-bit mode. The instruction pointer register points to the memory address which the processor will next attempt to execute
实际上 EIP 寄存器就是 STM8或者ARM芯片的PC指针。