📄 memset.s
字号:
! 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 store
sword: 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 bytes
done: mov ax, 4(bp) ! Return some value you have no need for
pop di
pop bp
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -