memchr.s

来自「avr的icc编译器的源代码」· S 代码 · 共 36 行

S
36
字号
.area	text
;
; int memchr(void *s1, int c, size_t size)
;
_memchr::
      ; not-found shortcut on c > byte range
	tst	R19	     ;
	brne	memchrx0   ;
	;
	ldd	R24,Y+0
	ldd	R25,Y+1
      ; not-found shortcut on size == 0
	cpi	R24,0
	cpc	R25,R24    ; 
	 breq	memchrx0   ;
	;
	mov	R30,R16
	mov	R31,R17
memchr1:
	ld	R16,Z+
	cp	R16,R18
	 breq	memchrx1
	sbiw	R24,1
	 brne	memchr1
memchrx0:
	ldi	R16,0
	ldi	R17,0
	ret
memchrx1:
	sbiw	R30,1
	mov	R16,R30
	mov	R17,R31
	ret
;
;<eof; 2003-08-01 ja>

⌨️ 快捷键说明

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