asm_strings.s

来自「sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu」· S 代码 · 共 96 行

S
96
字号
	;; Implementation of some string functions in	;; assembler.	;; Why - because I want a better dhrystone score :); char *strcpy(char *dest, const char *source)_strcpy::	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	inc	hl	ld	a,(hl+)	ld	h,(hl)	ld	l,a	push	de1$:		ld	a,(hl+)	ld	(de),a	inc	de	or	a,a	jr	nz,1$	pop	de	ret; void *memcpy(void *dest, const void *source, int count)_memcpy::	push	bc	lda	hl,6(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	inc	hl	ld	c,(hl)	inc	hl	ld	b,(hl)	lda	hl,4(sp)	ld	a,(hl+)	ld	h,(hl)	ld	l,a	inc	b	inc	c	push	hl	jr	2$1$:	ld	a,(de)	ld	(hl+),a	inc	de2$:	dec	c	jr	nz,1$	dec	b	jr	nz,1$		pop	de	pop	bc	ret; int strcmp(const char *s1, const char *s2) _strcmp::	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	inc	hl	ld	a,(hl+)	ld	h,(hl)	ld	l,a	jr	1$2$:		ld	a,(de)	sub	(hl)	jr	nz,4$	;; A == 0	cp	(hl)	jr	z,3$1$:		inc	de	inc	hl	jr	2$3$:	ld	de,#0	jr	5$4$:	ld	de,#1	jr	nc,5$	ld	de,#-15$:	ret	

⌨️ 快捷键说明

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