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 + -
显示快捷键?