反汇编代码解释

反汇编代码解释,第1张

MOV    R7,#TCON(0x88)    //分别给寄存器R7和R6赋值,结合程序整体分析,R7和R6共通构成了

                        //了一个整形变量,例如:uint i=0x1388

    MOV    R6,#0x13

TAG1://什么软件的反汇编,居然能编译出TAG来,

    /*这两句是将R7,和R6的值暂时存起来*/            

    MOV    A,R7

    MOV    R4,0x06//以为51单片机中没有MOV R4,R6这条指令,所以用这条代替

    

    //典型的双字节变量减1程序  

    DEC    R7 //低八位先减1     

    JNZ    TAG2//减1之前,如果不是0则跳到TAG2,是0则继续执行

    DEC    R6//高八位再减1

TAG2:

    ORL    A,R4//减一之前的高八位和低八位进行或运算

    JNZ    TAG1//如果是0则结束,如果不是0,则返回TAG1继续

    //这在C里就是 while(i--)

ORG 0000H

LJMP MAIN 主程序开始

ORG 000BH

AJMP PIT0 t0中断入口

ORG 001BH

AJMP PIT1 t1中断入口

MAIN: MOV SP, #60H 设置堆栈

MOV TMOD, #03H定时器方式 T0T1都是方式1

MOV TL0, #9CH T0初始值

MOV TH0, #38H

MOV TCOM, #50H TR0=1 TR1=1 启动定时器

MOV IE, #8AH 开启定时器中断

HERE: AJMP HERE

PIT0: MOV TL0, #9CH T0 时间到 重新送初值

CPL P1.0 取反P1.0 生成方波

RETI

PIT1: MOV TH0, #38H T1时间到 重新送初值

CPL P1.1 取反p1.1 生成方波

RETI

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11221182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存