📄 strlen.s
字号:
/* $Id: strlen.S,v 1.2 2001/06/29 14:07:15 gniibe Exp $ * * "strlen" implementation of SuperH * * Copyright (C) 1999 Kaz Kojima * *//* size_t strlen (const char *s) */#include <linux/linkage.h>ENTRY(strlen) mov r4,r0 and #3,r0 tst r0,r0 bt/s 1f mov #0,r2 add #-1,r0 shll2 r0 shll r0 braf r0 nop mov.b @r4+,r1 tst r1,r1 bt 8f add #1,r2 mov.b @r4+,r1 tst r1,r1 bt 8f add #1,r2 mov.b @r4+,r1 tst r1,r1 bt 8f add #1,r2 1: mov #0,r32: mov.l @r4+,r1 cmp/str r3,r1 bf/s 2b add #4,r2 add #-4,r2#ifndef __LITTLE_ENDIAN__ swap.b r1,r1 swap.w r1,r1 swap.b r1,r1#endif extu.b r1,r0 tst r0,r0 bt/s 8f shlr8 r1 add #1,r2 extu.b r1,r0 tst r0,r0 bt/s 8f shlr8 r1 add #1,r2 extu.b r1,r0 tst r0,r0 bt 8f add #1,r28: rts mov r2,r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -