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

原创 2000年12月29日 17:46:00

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

 

android byte字节数组转换十六进制字符串

android读到数据是byte字节数组,通过wifi接受的数据,要通过转换成十六进制字符串,或者最后又是十进制数据。都是根据双方的协议来开发的。那么我发送过去的数据也需要,经过特殊转换成byte字节...
  • zhao_liwei
  • zhao_liwei
  • 2016年07月21日 18:14
  • 2655

16进制字符串与byte互相转换

直接贴代码 /** * 16进制字符串转换为byte[] * * @param hexString * @return */ public static byte[] hex...
  • Dante_003
  • Dante_003
  • 2014年11月06日 22:02
  • 9219

Delphi 字符串转十六进制

mark一下。 //字符串转16进制 function StrToHex(src:string):string; var i: integer; des: string; begin d...
  • SysProgram
  • SysProgram
  • 2012年12月04日 14:56
  • 3325

Java中byte转换为16进制的字符串一些自己的见解

昨天写到一个md5加密的方法,里面是通过将字符串通过MD5加密算法得到新的字符串,首先string转换经过md5算法得到byte数组,将byte数据转换成int数据类型,在调用Integer.toHe...
  • qq_16558621
  • qq_16558621
  • 2016年05月26日 11:43
  • 1377

java下16进制字符串和字节数组的相互转化

java下16进制字符串和字节数组的相互转化
  • u010331406
  • u010331406
  • 2015年11月04日 17:16
  • 11895

Android 字符串、byte数组与16进制数组间的转换

// 字符串转换成16进制文字列的方法 public String toHex(String str) { String hexString="0123456789ABCDEF"; byte[] ...
  • u010919530
  • u010919530
  • 2013年08月24日 09:44
  • 2789

将byte数组转换成对应的十六进制的字符串形式

http://hi.baidu.com/gaosan15ban/item/c23554ea52fcdb2a5a7cfbc1 public static void main(Str...
  • thanklife
  • thanklife
  • 2013年11月30日 11:01
  • 1657

字节数组byte[]与16进制字符串的相互转化

很多时候我们需要将字节数组转化为16进制字符串来保存,尤其在很多加密的场景中,例如保存密钥等。 下面使用BigInteger提供一个非常简单的方案。package com.zzj.encryption...
  • zhangzeyuaaa
  • zhangzeyuaaa
  • 2015年11月21日 12:01
  • 3817

java byte[]与十六进制字符串相互转换

前言:我们经常在加密或者进行数字签名的时候,需要将字节数组(byte[])与十六进制表示的字符串之间进行相互转换。本篇文章介绍几种将字节数组转换为十六进制字符串的几种方法,以及将十六进制字符串转换为字...
  • worm0527
  • worm0527
  • 2017年04月10日 23:17
  • 8234

16进制字符串和字节数组互相转换

package com.wpn.net.util; public class NumberChange { /* * 把16进制字符串转换成字节数组 @param hex @retur...
  • cuiran
  • cuiran
  • 2012年09月15日 13:43
  • 14403
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi的嵌入式asm一例: Byte快速转换为16进制字符串
举报原因:
原因补充:

(最多只允许输入30个字)