- 562 名前:ヽ・´∀`・,,)っ━━━━━━┓ mailto:sage [2008/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文字の位置まで特定できる。 まあレイテンシ隠蔽とかの最適化は各自でやれ
|

|