📄 serialkd.lst
字号:
126 1 not a character avaliable. */
127 1 if (++begin_rec_buff>RECEIVE_BUF_SIZE - 1) /* make buffer appear */
00AB 1704 R incb begin_rec_buff
00AD 990104 R cmpb begin_rec_buff,#1
00B0 DA02 ble @0014
128 1 begin_rec_buff=0; /* circular. */
00B2 1104 R clrb begin_rec_buff
00B4 @0014:
129 1 return(receive_buff[begin_rec_buff]); /* return the character in buffer. */
00B4 BC041C R ldbse Tmp0,begin_rec_buff
00B7 AF1D02001C R ldbze Tmp0,receive_buff[Tmp0]
00BC 2000 br @001
13 1 }
00BE @001:
00BE F0 ret
; Function Statistics for: getch
; Code Size : 27 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : Stack Depth :
131
132 void init_serial_port(void)
133 {
00BF init_serial_port:
00BF C800 R push ?OVRBASE
134 1 unsigned char wsr_image = wsr;
00C1 B00000 E ldb wsr_image,wsr
135 1 wsr = 0;
00C4 1100 E clrb wsr
136 1 baud_rate = ((unsigned char) BAUD_REG);
00C6 B17000 E ldb baud_rate,#7
137 1 baud_rate = ((unsigned char) (BAUD_REG >> 8));
00C9 B18200 E ldb baud_rate,#82H
138 1 sp_con = 0x09; /* mode 1,
00CC B10900 E ldb sp_con,#9
139 1 * no parity,
14 1 * receive enabled,
141 1 * no 9th bit */
142 1 status_temp = sp_stat | TI_BIT;
00CF B00000 E ldb status_temp,sp_stat
00D2 912000 R orb status_temp,#2
C196 Compiler SERIALKD 13-Dec-106 17:03:10 Page 6
Assembly Listing of Object Code
143 1
144 1 end_rec_buff=0; /* initialize buffer pointers */
00D5 1103 R clrb end_rec_buff
145 1 begin_rec_buff=0;
00D7 1104 R clrb begin_rec_buff
146 1 end_trans_buff=0;
00D9 1102 R clrb end_trans_buff
147 1 begin_trans_buff=0;
00DB 1101 R clrb begin_trans_buff
148 1
149 1 int_mask1 = 0x03; /* enable the serial port interrupts */
00DD B10300 E ldb int_mask1,#3
15 1
151 1 enable(); /* global enable of interrupts */
00E0 EF0000 E call enable
152 1 wsr = wsr_image; /* restore wsr */
00E3 B00000 E ldb wsr,wsr_image
153 1 }
00E6 CC00 R pop ?OVRBASE
00E8 F0 ret
; Function Statistics for: init_serial_port
; Code Size : 42 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : 1 Stack Depth : 4
154
155 void main(void)
156 {
00E9 main:
00E9 C800 R push ?OVRBASE
157 1 char c;
158 1 init_serial_port();
00EB 2FD2 call init_serial_port
00ED 203B br @0018
00EF @0017:
159 1 while((c=getch()) != 0x1b) /* stay in loop till escape key pressed
-*/
16 1 // printf("key pressed = %02X\n\r",c);
161 1 putchar(c);
00EF A3010C001C E ld Tmp0,_iob+0CH
00F4 051C dec Tmp0
00F6 C3010C001C E st Tmp0,_iob+0CH
00FB 88001C cmp Tmp0,R0
00FE DE1B blt @001A
0100 A3010A001C E ld Tmp0,_iob+0AH
0105 4501001C1E add Tmp2,Tmp0,#1
010A C3010A001E E st Tmp2,_iob+0AH
010F C61C00 R stb c,[Tmp0]
0112 BE1C1C ldbse Tmp0,[Tmp0]
0115 61FF001C and Tmp0,#0FFH
0119 200F br @001B
011B @001A:
011B C90A00 E push #_iob+0AH
011E AC001C R ldbze Tmp0,c
0121 C81C push Tmp0
C196 Compiler SERIALKD 13-Dec-106 17:03:10 Page 7
Assembly Listing of Object Code
0123 EF0000 E call _flsbuf
0126 65040018 add SP,#4
012A @001B:
012A @0018:
012A 2F78 call getch
012C B01C00 R ldb c,Tmp0
012F 991B1C cmpb Tmp0,#1BH
0132 D7BB bne @0017
162 1 }
0134 CC00 R pop ?OVRBASE
0136 F0 ret
; Function Statistics for: main
; Code Size : 78 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : 1 Stack Depth : 12
end
C196 Compiler SERIALKD 13-Dec-106 17:03:10 Page 8
Symbol Table
Name Size Class Address Attributes
AD_ptscb 8 Typedef struct AD_ptscb_t
AD_ptscb_t 8 Tag struct
ptscount 1 Member unsigned char
ptscon 1 Member 1 struct {anonymous}
const1 .3 Member . unsigned field
updt .1 Member .3 unsigned field
const2 .1 Member .4 unsigned field
mode .3 Member .5 unsigned field
s_d 2 Member 2 unsigned int
reg 2 Member 4 unsigned int
AD_tab 4 Typedef struct AD_tab_t
AD_tab_t 4 Tag struct
AD_command 1 Member unsigned char
AD_result 2 Member 2 unsigned int
BTran_ptscb 8 Typedef struct BTran_ptscb_t
BTran_ptscb_t 8 Tag struct
ptscount 1 Member unsigned char
ptscon 1 Member 1 struct {anonymous}
di .1 Member . unsigned field
si .1 Member .1 unsigned field
du .1 Member .2 unsigned field
su .1 Member .3 unsigned field
b_w .1 Member .4 unsigned field
mode .3 Member .5 unsigned field
ptssrc 2 Member 2 pointer to void
ptsdst 2 Member 4 pointer to void
ptsblock 1 Member 6 unsigned char
FILE 1 Typedef struct _iobuf
HSI_ptscb 8 Typedef struct HSI_ptscb_t
HSI_ptscb_t 8 Tag struct
ptscount 1 Member unsigned char
ptscon 1 Member 1 struct {anonymous}
const1 .3 Member . unsigned field
updt .1 Member .3 unsigned field
const2 .1 Member .4 unsigned field
mode .3 Member .5 unsigned field
ptsdst 2 Member 2 unsigned int
ptsblock 1 Member 6 unsigned char
HSI_tab 4 Typedef struct HSI_tab_t
HSI_tab_t 4 Tag struct
HSI_status_lo 1 Member unsigned char
HSI_status_hi 1 Member 1 unsigned char
HSI_time 2 Member 2 unsigned int
HSO_ptscb 8 Typedef struct HSO_ptscb_t
HSO_ptscb_t 8 Tag struct
ptscount 1 Member unsigned char
ptscon 1 Member 1 struct {anonymous}
const1 .3 Member . unsigned field
updt .1 Member .3 unsigned field
const2 .1 Member .4 unsigned field
mode .3 Member .5 unsigned field
ptssrc 2 Member 2 unsigned int
ptsblock 1 Member 6 unsigned char
HSO_tab 4 Typedef struct HSO_tab_t
C196 Compiler SERIALKD 13-Dec-106 17:03:10 Page 9
Symbol Table
HSO_tab_t 4 Tag struct
HSO_command 1 Member unsigned char
HSO_time 2 Member 2 unsigned int
STran_ptscb 8 Typedef struct STran_ptscb_t
STran_ptscb_t 8 Tag struct
ptscount 1 Member unsigned char
ptscon 1 Member 1 struct {anonymous}
di .1 Member . unsigned field
si .1 Member .1 unsigned field
du .1 Member .2 unsigned field
su .1 Member .3 unsigned field
b_w .1 Member .4 unsigned field
mode .3 Member .5 unsigned field
ptssrc 2 Member 2 pointer to void
ptsdst 2 Member 4 pointer to void
_flsbuf Extern VPL function returning int
_iob 2 Extern array[2] of struct _iobuf
_iobuf 1 Tag struct
_ptr 2 Member pointer to signed char
_cnt 2 Member 2 int
_base 2 Member 4 pointer to signed char
_flag 1 Member 6 signed char
_file 1 Member 7 signed char
_bufsiz 2 Member 8 int
baud_rate 1 Extern register volatile unsigned char
begin_rec_buff 1 Public 4 register signed char
begin_trans_buff
1 Public 1 register signed char
c 2 Auto 4 int in function(putch)
c 1 Auto overlayable register signed char in function(main)
ccr 2 Public 8216 located const unsigned int
enable Extern VPL function returning void
end_rec_buff 1 Public 3 register signed char
end_trans_buff 1 Public 2 register signed char
fpos_t 4 Typedef unsigned long
getch Public reentrant VPL function returning int
init_serial_port
Public reentrant VPL function returning void
int_mask1 1 Extern register volatile unsigned char
int_pend1 1 Extern register volatile unsigned char
main Public reentrant VPL function returning void
putch Public reentrant VPL function returning int
receive Public interrupt function returning void
receive_buff 2 Public 2 array[2] of unsigned char
sbuf 1 Extern register volatile unsigned char
size_t 2 Typedef unsigned int
sp_con 1 Extern register volatile unsigned char
sp_stat 1 Extern register volatile unsigned char
status_temp 1 Public register unsigned char
trans_buff 2 Public array[2] of unsigned char
transmit Public interrupt function returning void
va_list 2 Typedef array[1] of pointer to signed char
wsr 1 Extern register volatile unsigned char
wsr_image 1 Auto initialized overlayable register unsigned char in function(init_serial_po
-rt)
C196 Compiler SERIALKD 13-Dec-106 17:03:10 Page 1
Module Information:
Code Area Size = 0137H 311D
Constant Area Size = 0002H 2D
Data Area Size = 0004H 4D
Static Regs Area Size = 0005H 5D
Overlayable Regs Area Size = 0002H 2D
Maximum Stack Size = 0012H 18D
C196 Compilation Complete. 0 Warnings, 0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -