ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Delphi的嵌入式asm一例: Byte快速转换为16进制字符串 (转)

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

原创 Linux操作系统 作者:a400 时间:2007-08-12 19:50:55 0 删除 编辑
Delphi的嵌入式asm一例: Byte快速转换为16进制字符串 (转)[@more@]

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

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10790690/viewspace-951663/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    826
  • 访问量
    305676