⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.ls1

📁 《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter 8 《Proteus在MCS-51&ARM7系统中的应用百例》MCS-51例子的C语言版本。 最
💻 LS1
📖 第 1 页 / 共 2 页
字号:
                     226     ;               do
                     227     ;               {
                     228                             ; SOURCE LINE # 53
                     229     ;                       k=248;
                     230                             ; SOURCE LINE # 54
                     231     ;---- Variable 'k?044' assigned to Register 'R5' ----
0024 7DF8            232             MOV     R5,#0F8H
                     233     ;                       do
                     234     ;                       {}while(--k);
                     235                             ; SOURCE LINE # 56
0026                 236     ?C0011:
0026 DDFE            237             DJNZ    R5,?C0011
                     238     ;               }while(--j);
                     239                             ; SOURCE LINE # 57
0028 DEFA            240             DJNZ    R6,?C0010
                     241     ;       }while(--i);
                     242                             ; SOURCE LINE # 58
002A DFF6            243             DJNZ    R7,?C0007
                     244     ; 
                     245     ;       SLA=0xA0;
                     246                             ; SOURCE LINE # 60
002C 7500A0   F      247             MOV     SLA,#0A0H
                     248     ;       SUBA=0x30;
                     249                             ; SOURCE LINE # 61
002F 750030   F      250             MOV     SUBA,#030H
                     251     ;       NUMBYTE=16;
                     252                             ; SOURCE LINE # 62
0032 750010   F      253             MOV     NUMBYTE,#010H
                     254     ;       IRDNBYTE();
                     255                             ; SOURCE LINE # 63
A51 MACRO ASSEMBLER  MAIN                                                                 05/22/2007 12:48:49 PAGE     5

0035 020000   F      256             LJMP    IRDNBYTE
                     257     ; END OF main
                     258     
                     259     ; }
                     260     ; 
                     261     ; 
                     262     ; void IWRNBYTE()
                     263     
----                 264             RSEG  ?PR?IWRNBYTE?MAIN
0000                 265     IWRNBYTE:
                     266             USING   0
                     267                             ; SOURCE LINE # 67
                     268     ; {
                     269                             ; SOURCE LINE # 68
                     270     ;       BYTE i;
                     271     ;       BYTE offset;
                     272     ; 
                     273     ; dd:
                     274                             ; SOURCE LINE # 72
0000                 275     ?IWRNBYTE?dd:
                     276     ;       i=NUMBYTE;
                     277                             ; SOURCE LINE # 73
0000 850000   F      278             MOV     i?145,NUMBYTE
                     279     ;       offset=0;
                     280                             ; SOURCE LINE # 74
0003 E4              281             CLR     A
0004 F500     F      282             MOV     offset?146,A
                     283     ; 
                     284     ;       START();
                     285                             ; SOURCE LINE # 76
0006 120000   F      286             LCALL   START
                     287     ;       WRBYTE(SLA);
                     288                             ; SOURCE LINE # 77
0009 AF00     F      289             MOV     R7,SLA
000B 120000   F      290             LCALL   _WRBYTE
                     291     ;       CACK();
                     292                             ; SOURCE LINE # 78
000E 120000   F      293             LCALL   CACK
                     294     ;       if(!ACK)
                     295                             ; SOURCE LINE # 79
0011 200002   F      296             JB      ACK,?C0016
                     297     ;       {
                     298                             ; SOURCE LINE # 80
                     299     ;               STOP(); return; 
                     300                             ; SOURCE LINE # 81
0014 801D            301             SJMP    ?C0045
                     302     ;       }
                     303                             ; SOURCE LINE # 82
0016                 304     ?C0016:
                     305     ;       WRBYTE(SUBA);
                     306                             ; SOURCE LINE # 83
0016 AF00     F      307             MOV     R7,SUBA
0018 120000   F      308             LCALL   _WRBYTE
                     309     ;       CACK();
                     310                             ; SOURCE LINE # 84
001B 120000   F      311             LCALL   CACK
001E                 312     ?C0020:
                     313     ; 
                     314     ;       do
                     315     ;       {       
                     316                             ; SOURCE LINE # 87
                     317     ;               WRBYTE(MTD[offset]);
                     318                             ; SOURCE LINE # 88
001E 7400     F      319             MOV     A,#LOW (MTD)
0020 2500     F      320             ADD     A,offset?146
0022 F8              321             MOV     R0,A
A51 MACRO ASSEMBLER  MAIN                                                                 05/22/2007 12:48:49 PAGE     6

0023 E6              322             MOV     A,@R0
0024 FF              323             MOV     R7,A
0025 120000   F      324             LCALL   _WRBYTE
                     325     ;               CACK();
                     326                             ; SOURCE LINE # 89
0028 120000   F      327             LCALL   CACK
                     328     ;               if(!ACK) goto dd;
                     329                             ; SOURCE LINE # 90
002B 3000D2   F      330             JNB     ACK,?IWRNBYTE?dd
002E                 331     ?C0021:
                     332     ;               offset++;               
                     333                             ; SOURCE LINE # 91
002E 0500     F      334             INC     offset?146
                     335     ;       }while(--i);
                     336                             ; SOURCE LINE # 92
0030 D500EB   F      337             DJNZ    i?145,?C0020
                     338     ; 
                     339     ;       STOP();
                     340                             ; SOURCE LINE # 94
0033                 341     ?C0045:
0033 120000   F      342             LCALL   STOP
                     343     ; }
                     344                             ; SOURCE LINE # 95
0036                 345     ?C0017:
0036 22              346             RET     
                     347     ; END OF IWRNBYTE
                     348     
                     349     ; 
                     350     ; void IRDNBYTE()
                     351     
----                 352             RSEG  ?PR?IRDNBYTE?MAIN
0000                 353     IRDNBYTE:
                     354             USING   0
                     355                             ; SOURCE LINE # 97
                     356     ; {
                     357                             ; SOURCE LINE # 98
                     358     ;       BYTE offset;
                     359     ;       BYTE num;
                     360     ; qq:
                     361                             ; SOURCE LINE # 101
0000                 362     ?IRDNBYTE?qq:
                     363     ;       offset=0;
                     364                             ; SOURCE LINE # 102
0000 E4              365             CLR     A
0001 F500     F      366             MOV     offset?247,A
                     367     ;       num=NUMBYTE;
                     368                             ; SOURCE LINE # 103
0003 850000   F      369             MOV     num?248,NUMBYTE
                     370     ;       
                     371     ; 
                     372     ;       START();
                     373                             ; SOURCE LINE # 106
0006 120000   F      374             LCALL   START
                     375     ;       WRBYTE(SLA);
                     376                             ; SOURCE LINE # 107
0009 AF00     F      377             MOV     R7,SLA
000B 120000   F      378             LCALL   _WRBYTE
                     379     ;       CACK();
                     380                             ; SOURCE LINE # 108
000E 120000   F      381             LCALL   CACK
                     382     ;       if(!ACK) 
                     383                             ; SOURCE LINE # 109
0011 200002   F      384             JB      ACK,?C0023
                     385     ;       {
                     386                             ; SOURCE LINE # 110
                     387     ;               STOP();
A51 MACRO ASSEMBLER  MAIN                                                                 05/22/2007 12:48:49 PAGE     7

                     388                             ; SOURCE LINE # 111
0014 802A            389             SJMP    ?C0046
                     390     ;               return; 
                     391     ;       }
                     392                             ; SOURCE LINE # 113
0016                 393     ?C0023:
                     394     ;       WRBYTE(SUBA);
                     395                             ; SOURCE LINE # 114
0016 AF00     F      396             MOV     R7,SUBA
0018 120000   F      397             LCALL   _WRBYTE
                     398     ;     CACK();
                     399                             ; SOURCE LINE # 115
001B 120000   F      400             LCALL   CACK
                     401     ;       START();
                     402                             ; SOURCE LINE # 116
001E 120000   F      403             LCALL   START
                     404     ;     WRBYTE(++SLA);
                     405                             ; SOURCE LINE # 117
0021 0500     F      406             INC     SLA
0023 AF00     F      407             MOV     R7,SLA
0025 120000   F      408             LCALL   _WRBYTE
                     409     ;       CACK();
                     410                             ; SOURCE LINE # 118
0028 120000   F      411             LCALL   CACK
                     412     ;       if(!ACK) goto qq;
                     413                             ; SOURCE LINE # 119
002B 3000D2   F      414             JNB     ACK,?IRDNBYTE?qq
002E                 415     ?C0028:
                     416     ; 
                     417     ;       do
                     418     ;       {
                     419                             ; SOURCE LINE # 122
                     420     ;               MRD[offset]=RDBYTE;     
                     421                             ; SOURCE LINE # 123
002E 7400     F      422             MOV     A,#LOW (MRD)
0030 2500     F      423             ADD     A,offset?247
0032 F8              424             MOV     R0,A
0033 7600     F      425             MOV     @R0,#LOW (RDBYTE)
                     426     ;               MACK();
                     427                             ; SOURCE LINE # 124
0035 120000   F      428             LCALL   MACK
                     429     ;               offset++;
                     430                             ; SOURCE LINE # 125
0038 0500     F      431             INC     offset?247
                     432     ;       }while(--num);
                     433                             ; SOURCE LINE # 126
003A D500F1   F      434             DJNZ    num?248,?C0028
                     435     ; 
                     436     ;       MNACK();
                     437                             ; SOURCE LINE # 128
003D 120000   F      438             LCALL   MNACK
                     439     ;       STOP();
                     440                             ; SOURCE LINE # 129
0040                 441     ?C0046:
0040 120000   F      442             LCALL   STOP
                     443     ; }
                     444                             ; SOURCE LINE # 130
0043                 445     ?C0024:
0043 22              446             RET     
                     447     ; END OF IRDNBYTE
                     448     
                     449     ; 
                     450     ; void START()
                     451     
----                 452             RSEG  ?PR?START?MAIN
0000                 453     START:
A51 MACRO ASSEMBLER  MAIN                                                                 05/22/2007 12:48:49 PAGE     8

                     454                             ; SOURCE LINE # 132
                     455     ; {
                     456                             ; SOURCE LINE # 133
                     457     ;       SDA=1;          //发送起始条件示菪藕

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -