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

📄 lib24c16.asm

📁 eeprom program for 8051 and atmel at89c52 or At89s52
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;     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 + -