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