新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Delphi:高效的哈希函數(shù)程序

        Delphi:高效的哈希函數(shù)程序

        作者: 時(shí)間:2012-09-13 來源:網(wǎng)絡(luò) 收藏

        view plaincopy to clipboardprint?
        01.function BKDRHash(buf: Pointer; count: Integer) : Cardinal; assembler;
        02.asm
        03. PUSHEBX;
        04. XOR EBX, EBX
        05. MOV ECX, EAX
        06. XOR EAX, EAX
        07.@LOOP:
        08. TESTEDX, EDX
        09. JZ @EXIT
        10. MOV BL,[ECX]
        11. IMULEAX, 131
        12. ADD EAX, EBX
        13. INC ECX
        14. DEC EDX
        15. JMP @LOOP
        16.@EXIT:
        17. POP EBX
        18.//----------------------------
        19.// Pascal:
        20.//
        21.//Result := 0;
        22.//while count > 0 do
        23.//begin
        24.// Result := (Result * 131) + PByte(buf)^;
        25.// Inc(PByte(buf));
        26.// Dec(count);
        27.//end;
        28.end;
        29.function DJBHash(buf: Pointer; count: Integer) : Cardinal; assembler;
        30.asm
        31. PUSHEDI
        32. PUSHEBX
        33. XOR EBX, EBX
        34. MOV ECX, EAX
        35. MOV EAX, 5381
        36.@LOOP:
        37. TESTEDX, EDX
        38. JZ @EXIT
        39. MOV EDI, EAX
        40. SHL EDI, 5
        41. ADD EAX, EDI
        42. MOV BL, [ECX]
        43. ADD EAX, EBX
        44. INC ECX
        45. DEC EDX
        46. JMP @LOOP
        47.@EXIT:
        48. POP EBX
        49. POP EDI
        50.//----------------------------
        51.// Pascal:
        52.//
        53.//Result := 5381;
        54.//while count > 0 do
        55.//begin
        56.// Result := ((Result shl 5) + Result) + PByte(buf)^;
        57.// Inc(PByte(buf));
        58.// Dec(count);
        59.//end;
        60.end;
        function BKDRHash(buf: Pointer; count: Integer) : Cardinal; assembler;
        asm
        PUSHEBX;
        XOR EBX, EBX
        MOV ECX, EAX
        XOR EAX, EAX
        @LOOP:
        TESTEDX, EDX
        JZ @EXIT
        MOV BL,[ECX]
        IMULEAX, 131
        ADD EAX, EBX
        INC ECX
        DEC EDX
        JMP @LOOP
        @EXIT:
        POP EBX
        //----------------------------
        // Pascal:
        //
        //Result := 0;
        //while count > 0 do


        上一頁 1 2 下一頁

        關(guān)鍵詞: 程序 函數(shù) 哈希 高效 Delphi:

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 南城县| 新乡县| 东兰县| 无极县| 巴林右旗| 灵寿县| 九台市| 历史| 阜南县| 富宁县| 扎囊县| 威远县| 漠河县| 离岛区| 靖远县| 榆林市| 马龙县| 吉安县| 柏乡县| 乌苏市| 光山县| 朝阳市| 武威市| 南城县| 寻甸| 临海市| 塔城市| 巨野县| 台南市| 兰西县| 罗甸县| 乌兰浩特市| 庆云县| 西藏| 清徐县| 任丘市| 东辽县| 延吉市| 松阳县| 兴义市| 西畴县|