上次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个字节的表,速度最快! :)