📄 string.h
字号:
<a name=L119 href="source/include/string.h#L119">119</a> <i>"jmp 4f\n"</i><a name=L120 href="source/include/string.h#L120">120</a> <i>"3:\tmovl $1,%%eax\n\t"</i><a name=L121 href="source/include/string.h#L121">121</a> <i>"jl 4f\n\t"</i><a name=L122 href="source/include/string.h#L122">122</a> <i>"negl %%eax\n"</i><a name=L123 href="source/include/string.h#L123">123</a> <i>"4:"</i><a name=L124 href="source/include/string.h#L124">124</a> :<i>"=a"</i> (__res):<i>"D"</i> (cs),<i>"S"</i> (ct),<i>"c"</i> (<a href="ident?i=count">count</a>):<i>"si"</i>,<i>"di"</i>,<i>"cx"</i>);<a name=L125 href="source/include/string.h#L125">125</a> return __res;<a name=L126 href="source/include/string.h#L126">126</a> }<a name=L127 href="source/include/string.h#L127">127</a> <a name=L128 href="source/include/string.h#L128">128</a> extern inline char * <a href="ident?i=strchr">strchr</a>(const char * s,char c)<a name=L129 href="source/include/string.h#L129">129</a> {<a name=L130 href="source/include/string.h#L130">130</a> register char * __res __asm__(<i>"ax"</i>);<a name=L131 href="source/include/string.h#L131">131</a> __asm__(<i>"cld\n\t"</i><a name=L132 href="source/include/string.h#L132">132</a> <i>"movb %%al,%%ah\n"</i><a name=L133 href="source/include/string.h#L133">133</a> <i>"1:\tlodsb\n\t"</i><a name=L134 href="source/include/string.h#L134">134</a> <i>"cmpb %%ah,%%al\n\t"</i><a name=L135 href="source/include/string.h#L135">135</a> <i>"je 2f\n\t"</i><a name=L136 href="source/include/string.h#L136">136</a> <i>"testb %%al,%%al\n\t"</i><a name=L137 href="source/include/string.h#L137">137</a> <i>"jne 1b\n\t"</i><a name=L138 href="source/include/string.h#L138">138</a> <i>"movl $1,%1\n"</i><a name=L139 href="source/include/string.h#L139">139</a> <i>"2:\tmovl %1,%0\n\t"</i><a name=L140 href="source/include/string.h#L140">140</a> <i>"decl %0"</i><a name=L141 href="source/include/string.h#L141">141</a> :<i>"=a"</i> (__res):<i>"S"</i> (s),<i>""</i> (c):<i>"si"</i>);<a name=L142 href="source/include/string.h#L142">142</a> return __res;<a name=L143 href="source/include/string.h#L143">143</a> }<a name=L144 href="source/include/string.h#L144">144</a> <a name=L145 href="source/include/string.h#L145">145</a> extern inline char * <a href="ident?i=strrchr">strrchr</a>(const char * s,char c)<a name=L146 href="source/include/string.h#L146">146</a> {<a name=L147 href="source/include/string.h#L147">147</a> register char * __res __asm__(<i>"dx"</i>);<a name=L148 href="source/include/string.h#L148">148</a> __asm__(<i>"cld\n\t"</i><a name=L149 href="source/include/string.h#L149">149</a> <i>"movb %%al,%%ah\n"</i><a name=L150 href="source/include/string.h#L150">150</a> <i>"1:\tlodsb\n\t"</i><a name=L151 href="source/include/string.h#L151">151</a> <i>"cmpb %%ah,%%al\n\t"</i><a name=L152 href="source/include/string.h#L152">152</a> <i>"jne 2f\n\t"</i><a name=L153 href="source/include/string.h#L153">153</a> <i>"movl %%esi,%0\n\t"</i><a name=L154 href="source/include/string.h#L154">154</a> <i>"decl %0\n"</i><a name=L155 href="source/include/string.h#L155">155</a> <i>"2:\ttestb %%al,%%al\n\t"</i><a name=L156 href="source/include/string.h#L156">156</a> <i>"jne 1b"</i><a name=L157 href="source/include/string.h#L157">157</a> :<i>"=d"</i> (__res):<i>""</i> (0),<i>"S"</i> (s),<i>"a"</i> (c):<i>"ax"</i>,<i>"si"</i>);<a name=L158 href="source/include/string.h#L158">158</a> return __res;<a name=L159 href="source/include/string.h#L159">159</a> }<a name=L160 href="source/include/string.h#L160">160</a> <a name=L161 href="source/include/string.h#L161">161</a> extern inline int <a href="ident?i=strspn">strspn</a>(const char * cs, const char * ct)<a name=L162 href="source/include/string.h#L162">162</a> {<a name=L163 href="source/include/string.h#L163">163</a> register char * __res __asm__(<i>"si"</i>);<a name=L164 href="source/include/string.h#L164">164</a> __asm__(<i>"cld\n\t"</i><a name=L165 href="source/include/string.h#L165">165</a> <i>"movl %4,%%edi\n\t"</i><a name=L166 href="source/include/string.h#L166">166</a> <i>"repne\n\t"</i><a name=L167 href="source/include/string.h#L167">167</a> <i>"scasb\n\t"</i><a name=L168 href="source/include/string.h#L168">168</a> <i>"notl %%ecx\n\t"</i><a name=L169 href="source/include/string.h#L169">169</a> <i>"decl %%ecx\n\t"</i><a name=L170 href="source/include/string.h#L170">170</a> <i>"movl %%ecx,%%edx\n"</i><a name=L171 href="source/include/string.h#L171">171</a> <i>"1:\tlodsb\n\t"</i><a name=L172 href="source/include/string.h#L172">172</a> <i>"testb %%al,%%al\n\t"</i><a name=L173 href="source/include/string.h#L173">173</a> <i>"je 2f\n\t"</i><a name=L174 href="source/include/string.h#L174">174</a> <i>"movl %4,%%edi\n\t"</i><a name=L175 href="source/include/string.h#L175">175</a> <i>"movl %%edx,%%ecx\n\t"</i><a name=L176 href="source/include/string.h#L176">176</a> <i>"repne\n\t"</i><a name=L177 href="source/include/string.h#L177">177</a> <i>"scasb\n\t"</i><a name=L178 href="source/include/string.h#L178">178</a> <i>"je 1b\n"</i><a name=L179 href="source/include/string.h#L179">179</a> <i>"2:\tdecl %0"</i><a name=L180 href="source/include/string.h#L180">180</a> :<i>"=S"</i> (__res):<i>"a"</i> (0),<i>"c"</i> (0xffffffff),<i>""</i> (cs),<i>"g"</i> (ct)<a name=L181 href="source/include/string.h#L181">181</a> :<i>"ax"</i>,<i>"cx"</i>,<i>"dx"</i>,<i>"di"</i>);<a name=L182 href="source/include/string.h#L182">182</a> return __res-cs;<a name=L183 href="source/include/string.h#L183">183</a> }<a name=L184 href="source/include/string.h#L184">184</a> <a name=L185 href="source/include/string.h#L185">185</a> extern inline int <a href="ident?i=strcspn">strcspn</a>(const char * cs, const char * ct)<a name=L186 href="source/include/string.h#L186">186</a> {<a name=L187 href="source/include/string.h#L187">187</a> register char * __res __asm__(<i>"si"</i>);<a name=L188 href="source/include/string.h#L188">188</a> __asm__(<i>"cld\n\t"</i><a name=L189 href="source/include/string.h#L189">189</a> <i>"movl %4,%%edi\n\t"</i><a name=L190 href="source/include/string.h#L190">190</a> <i>"repne\n\t"</i><a name=L191 href="source/include/string.h#L191">191</a> <i>"scasb\n\t"</i><a name=L192 href="source/include/string.h#L192">192</a> <i>"notl %%ecx\n\t"</i><a name=L193 href="source/include/string.h#L193">193</a> <i>"decl %%ecx\n\t"</i><a name=L194 href="source/include/string.h#L194">194</a> <i>"movl %%ecx,%%edx\n"</i><a name=L195 href="source/include/string.h#L195">195</a> <i>"1:\tlodsb\n\t"</i><a name=L196 href="source/include/string.h#L196">196</a> <i>"testb %%al,%%al\n\t"</i><a name=L197 href="source/include/string.h#L197">197</a> <i>"je 2f\n\t"</i><a name=L198 href="source/include/string.h#L198">198</a> <i>"movl %4,%%edi\n\t"</i><a name=L199 href="source/include/string.h#L199">199</a> <i>"movl %%edx,%%ecx\n\t"</i><a name=L200 href="source/include/string.h#L200">200</a> <i>"repne\n\t"</i><a name=L201 href="source/include/string.h#L201">201</a> <i>"scasb\n\t"</i><a name=L202 href="source/include/string.h#L202">202</a> <i>"jne 1b\n"</i><a name=L203 href="source/include/string.h#L203">203</a> <i>"2:\tdecl %0"</i><a name=L204 href="source/include/string.h#L204">204</a> :<i>"=S"</i> (__res):<i>"a"</i> (0),<i>"c"</i> (0xffffffff),<i>""</i> (cs),<i>"g"</i> (ct)<a name=L205 href="source/include/string.h#L205">205</a> :<i>"ax"</i>,<i>"cx"</i>,<i>"dx"</i>,<i>"di"</i>);<a name=L206 href="source/include/string.h#L206">206</a> return __res-cs;<a name=L207 href="source/include/string.h#L207">207</a> }<a name=L208 href="source/include/string.h#L208">208</a> <a name=L209 href="source/include/string.h#L209">209</a> extern inline char * <a href="ident?i=strpbrk">strpbrk</a>(const char * cs,const char * ct)<a name=L210 href="source/include/string.h#L210">210</a> {<a name=L211 href="source/include/string.h#L211">211</a> register char * __res __asm__(<i>"si"</i>);<a name=L212 href="source/include/string.h#L212">212</a> __asm__(<i>"cld\n\t"</i><a name=L213 href="source/include/string.h#L213">213</a> <i>"movl %4,%%edi\n\t"</i><a name=L214 href="source/include/string.h#L214">214</a> <i>"repne\n\t"</i><a name=L215 href="source/include/string.h#L215">215</a> <i>"scasb\n\t"</i><a name=L216 href="source/include/string.h#L216">216</a> <i>"notl %%ecx\n\t"</i><a name=L217 href="source/include/string.h#L217">217</a> <i>"decl %%ecx\n\t"</i><a name=L218 href="source/include/string.h#L218">218</a> <i>"movl %%ecx,%%edx\n"</i><a name=L219 href="source/include/string.h#L219">219</a> <i>"1:\tlodsb\n\t"</i><a name=L220 href="source/include/string.h#L220">220</a> <i>"testb %%al,%%al\n\t"</i><a name=L221 href="source/include/string.h#L221">221</a> <i>"je 2f\n\t"</i><a name=L222 href="source/include/string.h#L222">222</a> <i>"movl %4,%%edi\n\t"</i><a name=L223 href="source/include/string.h#L223">223</a> <i>"movl %%edx,%%ecx\n\t"</i><a name=L224 href="source/include/string.h#L224">224</a> <i>"repne\n\t"</i><a name=L225 href="source/include/string.h#L225">225</a> <i>"scasb\n\t"</i><a name=L226 href="source/include/string.h#L226">226</a> <i>"jne 1b\n\t"</i><a name=L227 href="source/include/string.h#L227">227</a> <i>"decl %0\n\t"</i><a name=L228 href="source/include/string.h#L228">228</a> <i>"jmp 3f\n"</i><a name=L229 href="source/include/string.h#L229">229</a> <i>"2:\txorl %0,%0\n"</i><a name=L230 href="source/include/string.h#L230">230</a> <i>"3:"</i><a name=L231 href="source/include/string.h#L231">231</a> :<i>"=S"</i> (__res):<i>"a"</i> (0),<i>"c"</i> (0xffffffff),<i>""</i> (cs),<i>"g"</i> (ct)<a name=L232 href="source/include/string.h#L232">232</a> :<i>"ax"</i>,<i>"cx"</i>,<i>"dx"</i>,<i>"di"</i>);<a name=L233 href="source/include/string.h#L233">233</a> return __res;<a name=L234 href="source/include/string.h#L234">234</a> }<a name=L235 href="source/include/string.h#L235">235</a> <a name=L236 href="source/include/string.h#L236">236</a> extern inline char * <a href="ident?i=strstr">strstr</a>(const char * cs,const char * ct)<a name=L237 href="source/include/string.h#L237">237</a> {<a name=L238 href="source/include/string.h#L238">238</a> register char * __res __asm__(<i>"ax"</i>);<a name=L239 href="source/include/string.h#L239">239</a> __asm__(<i>"cld\n\t"</i> \<a name=L240 href="source/include/string.h#L240">240</a> <i>"movl %4,%%edi\n\t"</i><a name=L241 href="source/include/string.h#L241">241</a> <i>"repne\n\t"</i><a name=L242 href="source/include/string.h#L242">242</a> <i>"scasb\n\t"</i><a name=L243 href="source/include/string.h#L243">243</a> <i>"notl %%ecx\n\t"</i><a name=L244 href="source/include/string.h#L244">244</a> <i>"decl %%ecx\n\t"</i> <b><i>/* NOTE! This also sets Z if searchstring='' */</i></b><a name=L245 href="source/include/string.h#L245">245</a> <i>"movl %%ecx,%%edx\n"</i><a name=L246 href="source/include/string.h#L246">246</a> <i>"1:\tmovl %4,%%edi\n\t"</i><a name=L247 href="source/include/string.h#L247">247</a> <i>"movl %%esi,%%eax\n\t"</i><a name=L248 href="source/include/string.h#L248">248</a> <i>"movl %%edx,%%ecx\n\t"</i><a name=L249 href="source/include/string.h#L249">249</a> <i>"repe\n\t"</i><a name=L250 href="source/include/string.h#L250">250</a> <i>"cmpsb\n\t"</i><a name=L251 href="source/include/string.h#L251">251</a> <i>"je 2f\n\t"</i> <b><i>/* also works for empty string, see above */</i></b><a name=L252 href="source/include/string.h#L252">252</a> <i>"xchgl %%eax,%%esi\n\t"</i><a name=L253 href="source/include/string.h#L253">253</a> <i>"incl %%esi\n\t"</i><a name=L254 href="source/include/string.h#L254">254</a> <i>"cmpb $0,-1(%%eax)\n\t"</i><a name=L255 href="source/include/string.h#L255">255</a> <i>"jne 1b\n\t"</i><a name=L256 href="source/include/string.h#L256">256</a> <i>"xorl %%eax,%%eax\n\t"</i><a name=L257 href="source/include/string.h#L257">257</a> <i>"2:"</i><a name=L258 href="source/include/string.h#L258">258</a> :<i>"=a"</i> (__res):<i>""</i> (0),<i>"c"</i> (0xffffffff),<i>"S"</i> (cs),<i>"g"</i> (ct)<a name=L259 href="source/include/string.h#L259">259</a> :<i>"cx"</i>,<i>"dx"</i>,<i>"di"</i>,<i>"si"</i>);<a name=L260 href="source/include/string.h#L260">260</a> return __res;<a name=L261 href="source/include/string.h#L261">261</a> }<a name=L262 href="source/include/string.h#L262">262</a> <a name=L263 href="source/include/string.h#L263">263</a> extern inline int <a href="ident?i=strlen">strlen</a>(const char * s)<a name=L264 href="source/include/string.h#L264">264</a> {<a name=L265 href="source/include/string.h#L265">265</a> register int __res __asm__(<i>"cx"</i>);<a name=L266 href="source/include/string.h#L266">266</a> __asm__(<i>"cld\n\t"</i><a name=L267 href="source/include/string.h#L267">267</a> <i>"repne\n\t"</i>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -