小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Delphi的字符串與16進(jìn)制的相互轉(zhuǎn)換函數(shù)的匯編代碼

 aaie_ 2012-06-21

function StrToHex(Const str: Ansistring): Ansistring;
asm
push ebx
push esi
push edi
test eax,eax
jz @@Exit
mov esi,edx //保存edx值,用來產(chǎn)生新字符串的地址
mov edi,eax //保存原字符串
mov edx,[eax-4] //獲得字符串長度
test edx,edx //檢查長度
je @@Exit {Length(S) = 0}
mov ecx,edx //保存長度
Push ecx
shl edx,1
mov eax,esi
{$IFDEF VER210}
movzx ecx, word ptr [edi-12] {需要設(shè)置CodePage}
{$ENDIF}
call System.@LStrSetLength //設(shè)置新串長度
mov eax,esi //新字符串地址
Call UniqueString //產(chǎn)生一個唯一的新字符串,串位置在eax中
Pop ecx
@@SetHex:
xor edx,edx //清空edx
mov dl, [edi] //Str字符串字符
mov ebx,edx //保存當(dāng)前的字符
shr edx,4 //右移4字節(jié),得到高8位
mov dl,byte ptr[edx+@@HexChar] //轉(zhuǎn)換成字符
mov [eax],dl //將字符串輸入到新建串中存放
and ebx,$0F //獲得低8位
mov dl,byte ptr[ebx+@@HexChar] //轉(zhuǎn)換成字符
inc eax //移動一個字節(jié),存放低位
mov [eax],dl
inc edi
inc eax
loop @@SetHex
@@Exit:
pop edi
pop esi
pop ebx
ret
@@HexChar: db '0123456789ABCDEF'
end;

function HexToStr(const Str: AnsiString): AnsiString;
asm
push ebx
push edi
push esi
test eax,eax //為空串
jz @@Exit
mov edi,eax
mov esi,edx
mov edx,[eax-4]
test edx,edx
je @@Exit
mov ecx,edx
push ecx
shr edx,1
mov eax,esi //開始構(gòu)造字符串
{$IFDEF VER210}
movzx ecx, word ptr [edi-12] {需要設(shè)置CodePage}
{$ENDIF}
call System.@LStrSetLength //設(shè)置新串長度
mov eax,esi //新字符串地址
Call UniqueString //產(chǎn)生一個唯一的新字符串,串位置在eax中
Pop ecx
xor ebx,ebx
xor esi,esi
@@CharFromHex:
xor edx,edx
mov dl, [edi] //Str字符串字符
cmp dl, '0' //查看是否在0到f之間的字符
JB @@Exit //小于0,退出
cmp dl,'9' //小于=9
ja @@DoChar//CompOkNum
sub dl,'0'
jmp @@DoConvert
@@DoChar:
//先轉(zhuǎn)成大寫字符
and dl,$DF
cmp dl,'F'
ja @@Exit //大于F退出
add dl,10
sub dl,'A'
@@DoConvert: //轉(zhuǎn)化
inc ebx
cmp ebx,2
je @@Num1
xor esi,esi
shl edx,4
mov esi,edx
jmp @@Num2
@@Num1:
add esi,edx
mov edx,esi
mov [eax],dl
xor ebx,ebx
inc eax
@@Num2:
dec ecx
inc edi
test ecx,ecx
jnz @@CharFromHex
@@Exit:
pop esi
pop edi
pop ebx
end;

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約