memset.s

来自「操作系统源代码」· S 代码 · 共 32 行

S
32
字号
!	memset()					Author: Kees J. Bot!								27 Jan 1994.sect .text; .sect .rom; .sect .data; .sect .bss! void *memset(void *s, int c, size_t n)!	Set a chunk of memory to the same byte value.!.sect .text.define _memset_memset:	push	bp	mov	bp, sp	push	di	mov	di, 4(bp)	! The string	movb	al, 6(bp)	! The fill byte	mov	cx, 8(bp)	! Length	cld	cmp	cx, #16	jb	sbyte		! Don't bother being smart with short arrays	test	di, #1	jnz	sbyte		! Bit 0 set, use byte storesword:	movb	ah, al		! One byte to two bytes	sar	cx, #1    rep	stos			! Store words    	adc	cx, cx		! One more byte?sbyte:    rep	stosb			! Store bytesdone:	mov	ax, 4(bp)	! Return some value you have no need for	pop	di	pop	bp	ret

⌨️ 快捷键说明

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