1.汇编程序:   
    ORG  0000H
    AJMP  MAIN
    ORG  000BH
    AJMP  TOINT
    ORG  0100H
MAIN:CLR  P1.0
    MOV  TMOD,#01H
    MOV  TH0, #0FEH
    MOV  TL0, #0CH
    MOV  IE,  #28H
    SETB  TR0
LOOP:SJMP  LOOP     
    ORG  0300H
  TOINT:SETB  P1.0
            CLR  P1.0
          MOV  TH0,#0FEH
          MOV  TL0,#0CH
          RETI
          END
2.对应hex文件:
:0300000002030BED
:0C030B00787FE4F6D8FD75810702000041
:020000002100DD
:02000B00610092
:10010000C290758901758CFE758A0C75A828D28CF1
:0201100080FE6F
:0B030000D290C290758CFE758A0C3202   
:00000001FF
3.hex文件结合汇编程序的解析:
:0300000002030BED
%0000H地址上,存储指令LJMP 030BH.程序跳转到地址030BH处。
:0C030B00787FE4F6D8FD75810702000041
%030BH地址上,存储指令如下:
%787F,(双字节指令)MOV Rn,#7F;(数据传送指令)
%E4F6,(双字节指令)CLR F6(F6位置清零)
%D8FD,(双字节指令), DJNZ Rn,rel 
%758107,(三字节指令)MOV 81,#07H
%020000,(三字节指令)LJMP 0000H
这两句程序和汇编程序本身没有关系,其实质为预先固化的程序,使得后面写入的程序从0000H开始执行。
:020000002100DD 
% AJMP MAIN
:02000B00610092 
% AJMP TOINT000BH是中断地址的入口,中断响应程序存于此地址,中断响应以后开始执行中断服务程序,中断服务程序地址是0300H
:10010000C290758901758CFE758A0C75A828D28CF1
%MAIN程序的起始地址是0100H
%(C290)  CLR  P1.0  C2是汇编操作指令的机器码,90TMOD工作方式寄存器首地址是89H,T1定时器的GATE门控位地址是90H.
%(758901)  MOV  TMOD, #01H ; 汇编指令的机器码为75TMOD地址是89H,操作数是01H.
%(758CFE)  MOV  TH0, #0FEH;  TH0地址是8CH
%(758A0C)  MOV  TL0,#0CH;  TL0地址是8AH
%(75A828)  MOV  IE, #82H;  中断允许控制寄存器IE控制数是82H
%(D28C)    SETB TR0; 定时器/计数器控制寄存器TC0NTR0地址8CH,置位操作机器码D2.
:0201100080FE6F
%80FE  SJMP  LOOP;  0110H地址是在0100H地址上加了16个字节,从而使得SJMP的转移地址不和MAIN地址冲突,若转移的目标地址就是SJMP指令的地址,那么其机器码为80FEH,rel=FEH(-2),目标地址=(PC)+2-2=(PC).
:0B030000D290C290758CFE758A0C3202
%TOINT,中断服务程序的的地址是0300H
%(D290)      SETB P1.0;        置位操作机器码D2 
%(C290)      CLR  P1.0        位清零操作机器码C2
%(758CFE)    MOV  TH0, #0FEH;  TH0地址是8CH
%(758A0C)    MOV  TL0,#0CH;    TL0地址是8AH
%(32)        RETI;            中断返回
:
00000001FF
%END, 每个hex文件最后一行记录都是固定的即:00000001FF。数据长度为0地址为0
hex字符串是什么

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。