Delphi的嵌入式asm一例: Byte快速转换为16进制字符串

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航