上次Delphi做的asm内嵌过程/函数格式是:procedure ProcName(...);asm ...end; 对这种过程/函数,整个由asm写成。内嵌asm还有一种常见用法,就是在程序局部调用asm:function ByteToHex(Src: Byte): String;begin SetLength(Result, 2); asm MOV EDI, [Result] MOV EDI, [EDI] MOV AL, Src MOV AH, AL // Save to AH SHR AL, 4 // Output High 4 Bits ADD AL, ''''0'''' CMP AL, ''''9'''' JBE @@OutCharLo ADD AL, ''''A''''-''''9''''-1@@OutCharLo: AND AH, $f ADD AH, ''''0'''' CMP AH, ''''9'''' JBE @@OutChar ADD AH, ''''A''''-''''9''''-1@@OutChar: STOSW end;end; 该子程序可以实现把一字节的Src转换为16进制形式的字符串。刚好一位站友有这样的问题,够快了吧? :) 当然,最快的方法还不是这个,想更快吗?拉拉滚动条,看下面:
用查表法!512个字节的表,速度最快! :)
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18