アセンブラ… Part 12 ..
[2ch|▼Menu]
562:ヽ・´∀`・,,)っ━━━━━━┓
08/05/25 19:18:01
長い文字列なら16byteごとに一気に判定してしまうのが吉

lea edx, [str]
pxor xmm0, xmm0
loop1:
movdqu xmm1, [edx]
pcmpeqb xmm1, xmm0
pmovmskb ecx, xmm1
test ecx,ecx
jnz skip1
add edx, 16
jmp loop1
skip1:
bsf eax, ecx
add eax, edx ; eaxに結果格納

SSE4.1対応ならpcmpeqb+ptestでNULLが含まれる16バイトを検出可能。
SSE4.2に対応してればATAを使えばNULL文字の位置まで特定できる。

まあレイテンシ隠蔽とかの最適化は各自でやれ


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4971日前に更新/195 KB
担当:undef