📄 lib24c16.asm
字号:
; genCmpEq
; Peephole 132 changed ljmp to sjmp
; Peephole 199 optimized misc jump sequence
cjne r4,#0x00,00102$
;00114$:
; Peephole 200 removed redundant sjmp
00115$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:196: SDA = 0; // then SDA = 0
; genAssign
clr _SDA
; Peephole 132 changed ljmp to sjmp
sjmp 00103$
00102$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:198: SDA = 1; // else MSB =1, then SDA = 1
; genAssign
setb _SDA
00103$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:199: SCK = 1; // clock = 1
; genAssign
setb _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:206: _endasm;
; genInline
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:207: SCK = 0; // clock = 0
; genAssign
clr _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:208: datum = datum << 1; // rotate for next bit
; genLeftShift
; genLeftShiftLiteral
; genlshOne
mov a,r2
add a,acc
mov r2,a
;C:/Maxx/Proyectos/APublicar/lib24c16.c:192: for (i = 0; i < 8; i++) // bit shifting cycle
; genPlus
; genPlusIncr
inc r3
; Peephole 132 changed ljmp to sjmp
sjmp 00104$
00107$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:210: SDA = 1; // set port pin for ack
; genAssign
setb _SDA
;C:/Maxx/Proyectos/APublicar/lib24c16.c:215: _endasm;
; genInline
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:216: SCK = 1; // clock ack
; genAssign
setb _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:223: _endasm;
; genInline
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:224: SCK = 0; // clock = 0
; genAssign
clr _SCK
00108$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'out'
;------------------------------------------------------------
;------------------------------------------------------------
;C:/Maxx/Proyectos/APublicar/lib24c16.c:241: void out (char datum)
; -----------------------------------------
; function out
; -----------------------------------------
_out:
; genReceive
mov r2,dpl
;C:/Maxx/Proyectos/APublicar/lib24c16.c:245: for (i = 0; i < 8; i++) // bit shifting cycle
; genAssign
mov r3,#0x00
00104$:
; genCmpLt
; genCmp
clr c
mov a,r3
xrl a,#0x80
subb a,#0x88
; genIfxJump
; Peephole 108 removed ljmp by inverse jump logic
jnc 00107$
00113$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:247: aux = datum & 0x80; // check MSB bit
; genAnd
mov a,#0x80
anl a,r2
mov r4,a
;C:/Maxx/Proyectos/APublicar/lib24c16.c:248: if (aux == 0) // MSB = 0
; genCmpEq
; Peephole 132 changed ljmp to sjmp
; Peephole 199 optimized misc jump sequence
cjne r4,#0x00,00102$
;00114$:
; Peephole 200 removed redundant sjmp
00115$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:249: SDA = 0; // then SDA = 0
; genAssign
clr _SDA
; Peephole 132 changed ljmp to sjmp
sjmp 00103$
00102$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:251: SDA = 1; // else MSB = 1, the SDA = 1
; genAssign
setb _SDA
00103$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:252: SCK = 1; // clock = 1
; genAssign
setb _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:259: _endasm;
; genInline
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:260: SCK = 0; // clock = 0
; genAssign
clr _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:261: datum = datum << 1; // rotate for next bit
; genLeftShift
; genLeftShiftLiteral
; genlshOne
mov a,r2
add a,acc
mov r2,a
;C:/Maxx/Proyectos/APublicar/lib24c16.c:245: for (i = 0; i < 8; i++) // bit shifting cycle
; genPlus
; genPlusIncr
inc r3
; Peephole 132 changed ljmp to sjmp
sjmp 00104$
00107$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:263: SDA = 1; // set port pin for ack
; genAssign
setb _SDA
;C:/Maxx/Proyectos/APublicar/lib24c16.c:268: _endasm;
; genInline
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:269: SCK = 1; // clock ack
; genAssign
setb _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:276: _endasm;
; genInline
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:277: SCK = 0; // clock = 0
; genAssign
clr _SCK
00108$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'in'
;------------------------------------------------------------
;------------------------------------------------------------
;C:/Maxx/Proyectos/APublicar/lib24c16.c:293: char in (void)
; -----------------------------------------
; function in
; -----------------------------------------
_in:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:296: char aux = 0; // auxiliary storage
; genAssign
mov r2,#0x00
;C:/Maxx/Proyectos/APublicar/lib24c16.c:297: SDA = 1; // insure port pin = 1 for input
; genAssign
setb _SDA
;C:/Maxx/Proyectos/APublicar/lib24c16.c:298: for (i = 0; i < 8; i++) // bit shifting cycle
; genAssign
mov r3,#0x00
00104$:
; genCmpLt
; genCmp
clr c
mov a,r3
xrl a,#0x80
subb a,#0x88
; genIfxJump
; Peephole 108 removed ljmp by inverse jump logic
jnc 00107$
00113$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:300: SCK = 0; // clock = 0
; genAssign
clr _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:308: _endasm;
; genInline
nop
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:309: SCK = 1; // clock = 1
; genAssign
setb _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:310: aux = aux << 1; // load bit position
; genLeftShift
; genLeftShiftLiteral
; genlshOne
mov a,r2
add a,acc
mov r2,a
;C:/Maxx/Proyectos/APublicar/lib24c16.c:311: if (SDA) // check SDA data from port pin
; genIfx
; genIfxJump
; Peephole 111 removed ljmp by inverse jump logic
jnb _SDA,00102$
00114$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:312: aux = aux | 0x01; // if port pin = 1, set LSB (bit position)
; genOr
orl ar2,#0x01
; Peephole 132 changed ljmp to sjmp
sjmp 00106$
00102$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:314: aux = aux & 0xFE; // else port pin = ,clear LSB (bit position)
; genAnd
anl ar2,#0xFE
00106$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:298: for (i = 0; i < 8; i++) // bit shifting cycle
; genPlus
; genPlusIncr
inc r3
; Peephole 132 changed ljmp to sjmp
sjmp 00104$
00107$:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:316: SCK = 0; // clock = 0
; genAssign
clr _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:317: return (aux); // return data received
; genRet
mov dpl,r2
00108$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'stop'
;------------------------------------------------------------
;------------------------------------------------------------
;C:/Maxx/Proyectos/APublicar/lib24c16.c:332: void stop (void)
; -----------------------------------------
; function stop
; -----------------------------------------
_stop:
;C:/Maxx/Proyectos/APublicar/lib24c16.c:334: SDA = 0; // stop condition, data = 0
; genAssign
clr _SDA
;C:/Maxx/Proyectos/APublicar/lib24c16.c:341: _endasm;
; genInline
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:342: SCK = 1; // clock = 1
; genAssign
setb _SCK
;C:/Maxx/Proyectos/APublicar/lib24c16.c:349: _endasm;
; genInline
nop
nop
nop
nop
nop
;C:/Maxx/Proyectos/APublicar/lib24c16.c:350: SDA = 1; // data = 1
; genAssign
setb _SDA
00101$:
ret
.area CSEG (CODE)
.area XINIT (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -