📄 csample2.lst
字号:
C51 COMPILER V7.50 CSAMPLE2 03/12/2006 10:37:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CSAMPLE2
OBJECT MODULE PLACED IN CSAMPLE2.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE CSAMPLE2.C HOLD(128,0,0) OPTIMIZE(6,SPEED) REGFILE(.\CSample.ORC) BROWSE DE
-BUG OBJECTEXTEND CODE SYMBOLS
line level source
1 /*------------------------------------------------------------------------------
2 CSAMPLE2.C
3
4 Copyright 1995-1999 Keil Software, Inc.
5 ------------------------------------------------------------------------------*/
6
7 #include <stdio.h> /* define I/O functions */
8
9 void getline (char *line) {
10 1 while ((*line++ = getchar()) != '\n');
11 1 }
12
13 int atoi (char *line) {
14 1 bit sign;
15 1 int number;
16 1
17 1 /* skip white space */
18 1 for ( ; *line == ' ' || *line == '\n' || *line == '\t'; line++);
19 1
20 1 /* establish sign */
21 1 sign = 1;
22 1 if (*line == '+' || *line == '-') sign = (*line++ == '+');
23 1
24 1 /* compute decimal value */
25 1 for (number=0; *line >= '0' && *line <= '9'; line++)
26 1 number = (number * 10) + (*line - '0');
27 1
28 1 return (sign ? number : -number);
29 1 }
30
31 unsigned int getnumber (void) {
32 1 char line [40];
33 1
34 1 printf ("Input Number ? ");
35 1 getline (line);
36 1 return (atoi (line));
37 1 }
38
C51 COMPILER V7.50 CSAMPLE2 03/12/2006 10:37:13 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _getline (BEGIN)
; SOURCE LINE # 9
0000 8B00 R MOV line,R3
0002 8A00 R MOV line+01H,R2
0004 8900 R MOV line+02H,R1
0006 ?C0001:
; SOURCE LINE # 10
0006 120000 E LCALL getchar
0009 AB00 R MOV R3,line
000B 0500 R INC line+02H
000D E500 R MOV A,line+02H
000F AA00 R MOV R2,line+01H
0011 7002 JNZ ?C0019
0013 0500 R INC line+01H
0015 ?C0019:
0015 14 DEC A
0016 F9 MOV R1,A
0017 EF MOV A,R7
0018 120000 E LCALL ?C?CSTPTR
001B BF0AE8 CJNE R7,#0AH,?C0001
; SOURCE LINE # 11
001E ?C0003:
001E 22 RET
; FUNCTION _getline (END)
; FUNCTION _atoi (BEGIN)
; SOURCE LINE # 13
0000 8B00 R MOV line,R3
0002 8A00 R MOV line+01H,R2
0004 8900 R MOV line+02H,R1
; SOURCE LINE # 18
0006 ?C0004:
0006 AB00 R MOV R3,line
0008 AA00 R MOV R2,line+01H
000A A900 R MOV R1,line+02H
000C 120000 E LCALL ?C?CLDPTR
000F FF MOV R7,A
0010 6420 XRL A,#020H
0012 6009 JZ ?C0006
0014 EF MOV A,R7
0015 640A XRL A,#0AH
0017 6004 JZ ?C0006
0019 EF MOV A,R7
001A B4090D CJNE A,#09H,?C0005
001D ?C0006:
001D 7401 MOV A,#01H
001F 2500 R ADD A,line+02H
0021 F500 R MOV line+02H,A
0023 E4 CLR A
0024 3500 R ADDC A,line+01H
0026 F500 R MOV line+01H,A
0028 80DC SJMP ?C0004
002A ?C0005:
; SOURCE LINE # 21
002A D200 R SETB sign
; SOURCE LINE # 22
002C EF MOV A,R7
002D 642B XRL A,#02BH
002F 600C JZ ?C0009
C51 COMPILER V7.50 CSAMPLE2 03/12/2006 10:37:13 PAGE 3
0031 AB00 R MOV R3,line
0033 AA00 R MOV R2,line+01H
0035 A900 R MOV R1,line+02H
0037 120000 E LCALL ?C?CLDPTR
003A B42D1A CJNE A,#02DH,?C0008
003D ?C0009:
003D AB00 R MOV R3,line
003F 0500 R INC line+02H
0041 E500 R MOV A,line+02H
0043 AA00 R MOV R2,line+01H
0045 7002 JNZ ?C0020
0047 0500 R INC line+01H
0049 ?C0020:
0049 14 DEC A
004A F9 MOV R1,A
004B 120000 E LCALL ?C?CLDPTR
004E B42B03 CJNE A,#02BH,?C0010
0051 D3 SETB C
0052 8001 SJMP ?C0011
0054 ?C0010:
0054 C3 CLR C
0055 ?C0011:
0055 9200 R MOV sign,C
0057 ?C0008:
; SOURCE LINE # 25
0057 E4 CLR A
0058 F500 R MOV number,A
005A F500 R MOV number+01H,A
005C ?C0012:
005C AB00 R MOV R3,line
005E AA00 R MOV R2,line+01H
0060 A900 R MOV R1,line+02H
0062 120000 E LCALL ?C?CLDPTR
0065 FF MOV R7,A
0066 C3 CLR C
0067 6480 XRL A,#080H
0069 94B0 SUBB A,#0B0H
006B 4035 JC ?C0013
006D D3 SETB C
006E EF MOV A,R7
006F 6480 XRL A,#080H
0071 94B9 SUBB A,#0B9H
0073 502D JNC ?C0013
; SOURCE LINE # 26
0075 EF MOV A,R7
0076 33 RLC A
0077 95E0 SUBB A,ACC
0079 FE MOV R6,A
007A EF MOV A,R7
007B 24D0 ADD A,#0D0H
007D FB MOV R3,A
007E EE MOV A,R6
007F 34FF ADDC A,#0FFH
0081 FA MOV R2,A
0082 AE00 R MOV R6,number
0084 AF00 R MOV R7,number+01H
0086 7C00 MOV R4,#00H
0088 7D0A MOV R5,#0AH
008A 120000 E LCALL ?C?IMUL
008D EF MOV A,R7
008E 2B ADD A,R3
008F F500 R MOV number+01H,A
C51 COMPILER V7.50 CSAMPLE2 03/12/2006 10:37:13 PAGE 4
0091 EE MOV A,R6
0092 3A ADDC A,R2
0093 F500 R MOV number,A
0095 7401 MOV A,#01H
0097 2500 R ADD A,line+02H
0099 F500 R MOV line+02H,A
009B E4 CLR A
009C 3500 R ADDC A,line+01H
009E F500 R MOV line+01H,A
00A0 80BA SJMP ?C0012
00A2 ?C0013:
; SOURCE LINE # 28
00A2 300006 R JNB sign,?C0015
00A5 AE00 R MOV R6,number
00A7 AF00 R MOV R7,number+01H
00A9 8009 SJMP ?C0016
00AB ?C0015:
00AB C3 CLR C
00AC E4 CLR A
00AD 9500 R SUBB A,number+01H
00AF FF MOV R7,A
00B0 E4 CLR A
00B1 9500 R SUBB A,number
00B3 FE MOV R6,A
00B4 ?C0016:
; SOURCE LINE # 29
00B4 ?C0017:
00B4 22 RET
; FUNCTION _atoi (END)
; FUNCTION getnumber (BEGIN)
; SOURCE LINE # 31
; SOURCE LINE # 34
0000 7BFF MOV R3,#0FFH
0002 7A00 R MOV R2,#HIGH ?SC_0
0004 7900 R MOV R1,#LOW ?SC_0
0006 120000 E LCALL _printf
; SOURCE LINE # 35
0009 7B00 MOV R3,#00H
000B 7A00 R MOV R2,#HIGH line
000D 7900 R MOV R1,#LOW line
000F 120000 R LCALL _getline
; SOURCE LINE # 36
0012 7B00 MOV R3,#00H
0014 7A00 R MOV R2,#HIGH line
0016 7900 R MOV R1,#LOW line
0018 120000 R LCALL _atoi
; SOURCE LINE # 37
001B ?C0018:
001B 22 RET
; FUNCTION getnumber (END)
C51 COMPILER V7.50 CSAMPLE2 03/12/2006 10:37:13 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
_atoi. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
line . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
sign . . . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
number . . . . . . . . . . . . . . . AUTO DATA INT 0003H 2
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
_getline . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
line . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
getnumber. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
line . . . . . . . . . . . . . . . . AUTO DATA ARRAY 0000H 40
getchar. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
_printf. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 240 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 48
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -