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 TOINT,000BH是中断地址的入口,中断响应程序存于此地址,中断响应以后开始执行中断服务程序,中断服务程序地址是0300H。
:10010000C290758901758CFE758A0C75A828D28CF1
%MAIN程序的起始地址是0100H
%(C290) CLR P1.0 ,C2是汇编操作指令的机器码,90是TMOD工作方式寄存器首地址是89H,T1定时器的GATE门控位地址是90H.
%(758901) MOV TMOD, #01H ; 汇编指令的机器码为75,TMOD地址是89H,操作数是01H.
%(758CFE) MOV TH0, #0FEH; TH0地址是8CH
%(758A0C) MOV TL0,#0CH; TL0地址是8AH
%(75A828) MOV IE, #82H; 中断允许控制寄存器IE控制数是82H
%(D28C) SETB TR0; 定时器/计数器控制寄存器TC0N中TR0地址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小时内删除。
发表评论