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

📄 main.ls1

📁 《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter 4 《Proteus在MCS-51&ARM7系统中的应用百例》MCS-51例子的C语言版本。
💻 LS1
📖 第 1 页 / 共 2 页
字号:
                     226     ; 
                     227     ; 
                     228     ; BYTE KEY()
                     229     
----                 230             RSEG  ?PR?KEY?MAIN
0000                 231     KEY:
                     232             USING   0
                     233                             ; SOURCE LINE # 52
                     234     ; {
                     235                             ; SOURCE LINE # 53
                     236     ;       BYTE key_i;
                     237     ;       BYTE key_j;
                     238     ;       BYTE temp;
                     239     ; 
                     240     ;       while(1)
                     241                             ; SOURCE LINE # 58
                     242     ;       {
                     243                             ; SOURCE LINE # 59
                     244     ;               do
                     245     ;               {
                     246                             ; SOURCE LINE # 61
0000                 247     ?C0019:
                     248     ;                       do
                     249     ;                       {
                     250                             ; SOURCE LINE # 63
                     251     ;                               P1=0xFF;
                     252                             ; SOURCE LINE # 64
0000 7590FF          253             MOV     P1,#0FFH
                     254     ;                       }while(P1==0xFF);
                     255                             ; SOURCE LINE # 65
A51 MACRO ASSEMBLER  MAIN                                                                 05/18/2007 11:58:16 PAGE     5

0003 E590            256             MOV     A,P1
0005 F4              257             CPL     A
0006 60F8            258             JZ      ?C0019
                     259     ;                       DELAY();
                     260                             ; SOURCE LINE # 66
0008 120000   F      261             LCALL   DELAY
                     262     ; 
                     263     ;                       temp=P1;
                     264                             ; SOURCE LINE # 68
                     265     ;---- Variable 'temp?246' assigned to Register 'R7' ----
000B AF90            266             MOV     R7,P1
                     267     ;               }while(temp==0xFF);
                     268                             ; SOURCE LINE # 69
000D EF              269             MOV     A,R7
000E F4              270             CPL     A
000F 60EF            271             JZ      ?C0019
                     272     ;                                               
                     273     ;               key_i=8;
                     274                             ; SOURCE LINE # 71
                     275     ;---- Variable 'key_i?244' assigned to Register 'R6' ----
0011 7E08            276             MOV     R6,#08H
                     277     ;               key_j=0;
                     278                             ; SOURCE LINE # 72
                     279     ;---- Variable 'key_j?245' assigned to Register 'R5' ----
0013 E4              280             CLR     A
0014 FD              281             MOV     R5,A
0015                 282     ?C0022:
                     283     ;       
                     284     ;               do
                     285     ;               {
                     286                             ; SOURCE LINE # 75
                     287     ;                       if(temp==K0TAB[key_j])
                     288                             ; SOURCE LINE # 76
0015 ED              289             MOV     A,R5
0016 900000   F      290             MOV     DPTR,#K0TAB
0019 93              291             MOVC    A,@A+DPTR
001A B5070B          292             CJNE    A,AR7,?C0023
                     293     ;                       {
                     294                             ; SOURCE LINE # 77
                     295     ;                               do
                     296     ;                               {}while(P1!=0xFF);
                     297                             ; SOURCE LINE # 79
001D                 298     ?C0024:
001D E590            299             MOV     A,P1
001F B4FFFB          300             CJNE    A,#0FFH,?C0024
                     301     ;                               DELAY();
                     302                             ; SOURCE LINE # 80
0022 120000   F      303             LCALL   DELAY
                     304     ;                               return key_j;
                     305                             ; SOURCE LINE # 81
0025 AF05            306             MOV     R7,AR5
0027 22              307             RET     
                     308     ;                       }
                     309                             ; SOURCE LINE # 82
0028                 310     ?C0023:
                     311     ;               
                     312     ;                       key_j++;
                     313                             ; SOURCE LINE # 84
0028 0D              314             INC     R5
                     315     ;               }while(--key_i);
                     316                             ; SOURCE LINE # 85
0029 DEEA            317             DJNZ    R6,?C0022
                     318     ;       }
                     319                             ; SOURCE LINE # 86
002B 80D3            320             SJMP    ?C0019
                     321     ; END OF KEY
A51 MACRO ASSEMBLER  MAIN                                                                 05/18/2007 11:58:16 PAGE     6

                     322     
                     323     ; }
                     324     ; 
                     325     ; 
                     326     ; main()
                     327     
----                 328             RSEG  ?PR?main?MAIN
0000                 329     main:
                     330             USING   0
                     331                             ; SOURCE LINE # 90
                     332     ; {
                     333                             ; SOURCE LINE # 91
                     334     ;       DBUF=16;
                     335                             ; SOURCE LINE # 92
0000 750010   F      336             MOV     DBUF,#010H
0003                 337     ?C0028:
                     338     ; 
                     339     ;       while(1)
                     340                             ; SOURCE LINE # 94
                     341     ;       {
                     342                             ; SOURCE LINE # 95
                     343     ;               DISP(KEY());
                     344                             ; SOURCE LINE # 96
0003 120000   F      345             LCALL   KEY
0006 120000   F      346             LCALL   _DISP
                     347     ;       }
                     348                             ; SOURCE LINE # 97
0009 80F8            349             SJMP    ?C0028
                     350     ; END OF main
                     351     
                     352             END
A51 MACRO ASSEMBLER  MAIN                                                                 05/18/2007 11:58:16 PAGE     7

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

?C0003 . . . . . .  C ADDR   0002H   R   SEG=?PR?DELAY?MAIN
?C0004 . . . . . .  C ADDR   0005H   R   SEG=?PR?DELAY?MAIN
?C0010 . . . . . .  C ADDR   000BH   R   SEG=?PR?_DISP?MAIN
?C0019 . . . . . .  C ADDR   0000H   R   SEG=?PR?KEY?MAIN
?C0022 . . . . . .  C ADDR   0015H   R   SEG=?PR?KEY?MAIN
?C0023 . . . . . .  C ADDR   0028H   R   SEG=?PR?KEY?MAIN
?C0024 . . . . . .  C ADDR   001DH   R   SEG=?PR?KEY?MAIN
?C0028 . . . . . .  C ADDR   0003H   R   SEG=?PR?MAIN?MAIN
?CO?MAIN . . . . .  C SEG    0012H       REL=UNIT
?C_STARTUP . . . .  C ADDR   -----       EXT
?DELAY?BYTE. . . .  D ADDR   0000H   R   SEG=?DT?DELAY?MAIN
?DT?DELAY?MAIN . .  D SEG    0001H       REL=UNIT
?DT?MAIN . . . . .  D SEG    0002H       REL=UNIT
?PR?DELAY?MAIN . .  C SEG    000BH       REL=UNIT
?PR?KEY?MAIN . . .  C SEG    002DH       REL=UNIT
?PR?MAIN?MAIN. . .  C SEG    000BH       REL=UNIT
?PR?_DISP?MAIN . .  C SEG    0015H       REL=UNIT
AC . . . . . . . .  B ADDR   00D0H.6 A   
ACC. . . . . . . .  D ADDR   00E0H   A   
AR5. . . . . . . .  D ADDR   0005H   A   
AR7. . . . . . . .  D ADDR   0007H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
CLK. . . . . . . .  B ADDR   00B0H.1 A   
CY . . . . . . . .  B ADDR   00D0H.7 A   
DBUF . . . . . . .  D ADDR   0000H   R   SEG=?DT?MAIN
DELAY. . . . . . .  C ADDR   0000H   R   SEG=?PR?DELAY?MAIN
DIN. . . . . . . .  B ADDR   00B0H.0 A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ES . . . . . . . .  B ADDR   00A8H.4 A   
ET0. . . . . . . .  B ADDR   00A8H.1 A   
ET1. . . . . . . .  B ADDR   00A8H.3 A   
EX0. . . . . . . .  B ADDR   00A8H.0 A   
EX1. . . . . . . .  B ADDR   00A8H.2 A   
F0 . . . . . . . .  B ADDR   00D0H.5 A   
IE . . . . . . . .  D ADDR   00A8H   A   
IE0. . . . . . . .  B ADDR   0088H.1 A   
IE1. . . . . . . .  B ADDR   0088H.3 A   
INT0 . . . . . . .  B ADDR   00B0H.2 A   
INT1 . . . . . . .  B ADDR   00B0H.3 A   
IP . . . . . . . .  D ADDR   00B8H   A   
IT0. . . . . . . .  B ADDR   0088H.0 A   
IT1. . . . . . . .  B ADDR   0088H.2 A   
J?040. . . . . . .  D ADDR   0000H   R   SEG=?DT?DELAY?MAIN
K0TAB. . . . . . .  C ADDR   0000H   R   SEG=?CO?MAIN
KEY. . . . . . . .  C ADDR   0000H   R   SEG=?PR?KEY?MAIN
MAIN . . . . . . .  C ADDR   0000H   R   SEG=?PR?MAIN?MAIN
OV . . . . . . . .  B ADDR   00D0H.2 A   
P. . . . . . . . .  B ADDR   00D0H.0 A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PCON . . . . . . .  D ADDR   0087H   A   
PS . . . . . . . .  B ADDR   00B8H.4 A   
PSW. . . . . . . .  D ADDR   00D0H   A   
PT0. . . . . . . .  B ADDR   00B8H.1 A   
PT1. . . . . . . .  B ADDR   00B8H.3 A   
PX0. . . . . . . .  B ADDR   00B8H.0 A   
A51 MACRO ASSEMBLER  MAIN                                                                 05/18/2007 11:58:16 PAGE     8

PX1. . . . . . . .  B ADDR   00B8H.2 A   
RB8. . . . . . . .  B ADDR   0098H.2 A   
RD . . . . . . . .  B ADDR   00B0H.7 A   
REN. . . . . . . .  B ADDR   0098H.4 A   
RI . . . . . . . .  B ADDR   0098H.0 A   
RS0. . . . . . . .  B ADDR   00D0H.3 A   
RS1. . . . . . . .  B ADDR   00D0H.4 A   
RXD. . . . . . . .  B ADDR   00B0H.0 A   
SBUF . . . . . . .  D ADDR   0099H   A   
SCON . . . . . . .  D ADDR   0098H   A   
SEGTAB . . . . . .  C ADDR   0008H   R   SEG=?CO?MAIN
SM0. . . . . . . .  B ADDR   0098H.7 A   
SM1. . . . . . . .  B ADDR   0098H.6 A   
SM2. . . . . . . .  B ADDR   0098H.5 A   
SP . . . . . . . .  D ADDR   0081H   A   
T0 . . . . . . . .  B ADDR   00B0H.4 A   
T1 . . . . . . . .  B ADDR   00B0H.5 A   
TB8. . . . . . . .  B ADDR   0098H.3 A   
TCON . . . . . . .  D ADDR   0088H   A   
TEMP . . . . . . .  D ADDR   0001H   R   SEG=?DT?MAIN
TF0. . . . . . . .  B ADDR   0088H.5 A   
TF1. . . . . . . .  B ADDR   0088H.7 A   
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TI . . . . . . . .  B ADDR   0098H.1 A   
TL0. . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
TXD. . . . . . . .  B ADDR   00B0H.1 A   
WR . . . . . . . .  B ADDR   00B0H.6 A   
_DISP. . . . . . .  C ADDR   0000H   R   SEG=?PR?_DISP?MAIN


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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