strcmp.s
来自「基于EP7312的MP3播放器源代码,包括MCU和PC端代码.」· S 代码 · 共 70 行
S
70 行
//****************************************************************************//// STRCMP.S - Routine to implement the C library function "strcmp".//// Copyright (c) 1999,2000,2001 Cirrus Logic, Inc.////****************************************************************************#include "../../asmdefs.h"//****************************************************************************//// Read-only code area.////**************************************************************************** _TEXT_//****************************************************************************//// Standard C library function "strcmp".////**************************************************************************** _EXPORT_ strcmpstrcmp _LABEL_ tst r0, _CONST_ 3 tsteq r1, _CONST_ 3 bne strcmp_byteloop str r14, [r13, _CONST_ -4]! ldr r14, =0x01010101strcmp_loop _LABEL_ ldr r2, [r0], _CONST_ 4 ldr r3, [r1], _CONST_ 4 sub r12, r2, r14 bic r12, r12, r2 ands r12, r12, r14, lsl _CONST_ 7 cmpeq r2, r3 beq strcmp_loop ldr r14, [r13], _CONST_ 4 mov r0, r3, lsl _CONST_ 24 subs r0, r0, r2, lsl _CONST_ 24 tsteq r12, _CONST_ 0x0FF0 bne strcmp_return mov r0, r3, lsl _CONST_ 16 subs r0, r0, r2, lsl _CONST_ 16 tsteq r12, _CONST_ 0xFF00 bne strcmp_return mov r0, r3, lsl _CONST_ 8 subs r0, r0, r2, lsl _CONST_ 8 tsteq r12, _CONST_ 0xFF0000 subeqs r0, r3, r2strcmp_return _LABEL_ movne r0, r0, rrx mov pc, r14strcmp_byteloop _LABEL_ ldrb r2, [r0], _CONST_ 1 ldrb r3, [r1], _CONST_ 1 cmp r2, _CONST_ 1 cmpcs r2, r3 bne strcmp_byteend ldrb r2, [r0], _CONST_ 1 ldrb r3, [r1], _CONST_ 1 cmp r2, _CONST_ 1 cmpcs r2, r3 beq strcmp_byteloopstrcmp_byteend _LABEL_ sub r0, r2, r3 mov pc, r14 _END_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?