📄 strchr.s
字号:
TEXT strchr(SB), $-4 MOVBU c+4(FP), R1 CMP $0, R1 BEQ _null_strchr: /* not looking for a null, byte at a time */ MOVBU.P 1(R0), R2 CMP R1, R2 BEQ _sub1 CMP $0, R2 BNE _strchr_return0: /* character not found in string, return 0 */ MOVW $0, R0 RET_null: /* looking for null, align */ AND.S $3, R0, R2 BEQ _aligned MOVBU.P 1(R0), R4 CMP $0, R4 BEQ _sub1 B _null_aligned: MOVW $0xFF, R3 /* mask */_loop: MOVW.P 4(R0), R4 /* 4 at a time */ TST R4, R3 /* AND.S R2, R3, Rx */ TST.NE R4>>8, R3 TST.NE R4>>16, R3 TST.NE R4>>24, R3 BNE _loop TST R4, R3 /* its somewhere, find it and correct */ BEQ _sub4 TST R4>>8, R3 BEQ _sub3 TST R4>>16, R3 BEQ _sub2_sub1: /* compensate for pointer increment */ SUB $1, R0 RET_sub2: SUB $2, R0 RET_sub3: SUB $3, R0 RET_sub4: SUB $4, R0 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -