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

📄 _memcpy.asm

📁 很少见的源码公开的msc51和z80的c编译器。
💻 ASM
字号:
;--------------------------------------------------------; File Created by SDCC : FreeWare ANSI-C Compiler; Version 2.3.0 Thu Sep 20 10:57:51 2001;--------------------------------------------------------	.module _memcpy	;--------------------------------------------------------; Public variables in this module;--------------------------------------------------------	.globl _memcpy;--------------------------------------------------------; special function registers;--------------------------------------------------------;--------------------------------------------------------; special function bits ;--------------------------------------------------------;--------------------------------------------------------; internal ram data;--------------------------------------------------------	.area _DATA;--------------------------------------------------------; overlayable items in internal ram ;--------------------------------------------------------	.area _OVERLAY;--------------------------------------------------------; indirectly addressable internal ram data;--------------------------------------------------------	.area _ISEG;--------------------------------------------------------; bit data;--------------------------------------------------------	.area _BSEG;--------------------------------------------------------; external ram data;--------------------------------------------------------	.area _XSEG;--------------------------------------------------------; global & static initialisations;--------------------------------------------------------	.area _GSINIT	.area _GSFINAL	.area _GSINIT;--------------------------------------------------------; Home;--------------------------------------------------------	.area _HOME	.area _CODE;--------------------------------------------------------; code;--------------------------------------------------------	.area _CODE;	_memcpy.c 31;	genLabel;	genFunction;	---------------------------------; Function memcpy; ---------------------------------___memcpy_start:_memcpy:	lda	sp,-4(sp);	_memcpy.c 41;	genAssign;	(operands are equal 3);	genAssign;	AOP_STK for ;	AOP_STK for _memcpy_d_1_1	lda	hl,6(sp)	ld	a,(hl+)	ld	e,(hl)	lda	hl,2(sp)	ld	(hl+),a	ld	(hl),e;	_memcpy.c 42;	genAssign;	AOP_STK for 	lda	hl,8(sp)	ld	c,(hl)	inc	hl	ld	b,(hl);	_memcpy.c 43;	genUminus;	AOP_STK for ;	AOP_STK for _memcpy_count_1_1	xor	a,a	inc	hl	ld	a,#0x00	sbc	a,(hl)	lda	hl,0(sp)	ld	(hl),a	lda	hl,11(sp)	ld	a,#0x00	sbc	a,(hl)	lda	hl,1(sp)	ld	(hl),a;	_memcpy.c 45;	genRightShift;	AOP_STK for _memcpy_count_1_1	sra	(hl)	dec	hl	rr	(hl)	inc	hl	sra	(hl)	dec	hl	rr	(hl);	_memcpy.c 47;	genLabel00101$:;	genIfx;	AOP_STK for _memcpy_count_1_1	lda	hl,0(sp)	ld	a,(hl+); Rule 8: Removed redundent or for (ix)	or	a,(hl)	jp	z,00103$;	_memcpy.c 48;	genPointerGet	ld	a,(bc);	genPlus;	genPlusIncr	inc	bc;	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	inc	hl	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genPlus;	AOP_STK for _memcpy_d_1_1;	genPlusIncr	dec	hl	inc	(hl)	jr	nz,00116$	inc	hl	inc	(hl)00116$:;	_memcpy.c 49;	genPointerGet	ld	a,(bc);	genPlus;	genPlusIncr	inc	bc;	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genPlus;	AOP_STK for _memcpy_d_1_1;	genPlusIncr	dec	hl	inc	(hl)	jr	nz,00117$	inc	hl	inc	(hl)00117$:;	_memcpy.c 50;	genPointerGet	ld	a,(bc);	genPlus;	genPlusIncr	inc	bc;	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genPlus;	AOP_STK for _memcpy_d_1_1;	genPlusIncr	dec	hl	inc	(hl)	jr	nz,00118$	inc	hl	inc	(hl)00118$:;	_memcpy.c 51;	genPointerGet	ld	a,(bc);	genPlus;	genPlusIncr	inc	bc;	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genPlus;	AOP_STK for _memcpy_d_1_1;	genPlusIncr	dec	hl	inc	(hl)	jr	nz,00119$	inc	hl	inc	(hl)00119$:;	_memcpy.c 52;	genPlus;	AOP_STK for _memcpy_count_1_1;	genPlusIncr	lda	hl,0(sp)	inc	(hl)	jr	nz,00120$	inc	hl	inc	(hl)00120$:;	genGoto	jp	00101$;	genLabel00103$:;	_memcpy.c 55;	genAnd;	AOP_STK for 	lda	hl,10(sp)	ld	a,(hl)	and	a,#0x02	jr	nz,00121$	jp	00105$00121$:;	_memcpy.c 56;	genPointerGet	ld	a,(bc);	genPlus;	genPlusIncr	inc	bc;	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genPlus;	AOP_STK for _memcpy_d_1_1;	genPlusIncr	dec	hl	inc	(hl)	jr	nz,00122$	inc	hl	inc	(hl)00122$:;	_memcpy.c 57;	genPointerGet	ld	a,(bc);	genPlus;	genPlusIncr	inc	bc;	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genPlus;	AOP_STK for _memcpy_d_1_1;	genPlusIncr	dec	hl	inc	(hl)	jr	nz,00123$	inc	hl	inc	(hl)00123$:;	genLabel00105$:;	_memcpy.c 59;	genAnd;	AOP_STK for 	lda	hl,10(sp)	ld	a,(hl)	and	a,#0x01	jr	nz,00124$	jp	00107$00124$:;	_memcpy.c 60;	genPointerGet	ld	a,(bc);	genAssign (pointer);	AOP_STK for _memcpy_d_1_1	lda	hl,2(sp)	ld	e,(hl)	inc	hl	ld	d,(hl)	ld	(de),a;	genLabel00107$:;	_memcpy.c 62;	genRet;	AOP_STK for 	lda	hl,6(sp)	ld	e,(hl)	inc	hl	ld	d,(hl);	genLabel00108$:;	genEndFunction	lda	sp,4(sp)	ret___memcpy_end:	.area _CODE

⌨️ 快捷键说明

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