НЭТ БИЛЭТ
 
Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР
Репутация: 7 Всего: 41
|
Вот самое быстрое, что получилось: Код | type tTable=array[0..511]of byte;
var Table1Addr:cardinal; Table1:tTable=( //0 1 2 3 4 5 6 7 8 9 A B C D E F $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //0 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //1 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //2 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //3 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //4 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //5 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //6 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //7 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //8 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //9 $00,$00,$00,$00,$00,$00,$00,$00,$23,$00,$00,$00,$00,$00,$00,$00, //A $00,$00,$00,$00,$00,$00,$00,$00,$33,$00,$00,$00,$00,$00,$00,$00, //B $81,$BF,$80,$BE,$BE,$80,$BD,$BD,$BD,$BD,$BD,$BD,$81,$7B,$81,$BA, //C $80,$72,$82,$B7,$B7,$83,$B6,$B6,$B6,$B6,$B6,$B6,$B6,$B6,$B6,$B7, //D $81,$B6,$B6,$B6,$B6,$80,$B5,$B5,$B5,$B5,$B8,$BA,$BA,$BA,$81,$B9, //E $80,$72,$B7,$86,$B6,$83,$B5,$B5,$B5,$B5,$B5,$B5,$B5,$B5,$B5,$B5, //F //------------------------------------------------------------- $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00);
Table2Addr:cardinal; Table2:tTable=( //0 1 2 3 4 5 6 7 8 9 A B C D E F $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //0 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //1 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //2 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //3 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //4 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //5 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //6 $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //7 $41,$42,$42,$43,$43,$43,$43,$43,$43,$46,$49,$49,$4A,$4A,$4A,$4A, //8 $4A,$4A,$4A,$4A,$4A,$00,$49,$4A,$4A,$4A,$4A,$4B,$4B,$4B,$4B,$00, //9 $00,$00,$48,$00,$00,$46,$46,$46,$47,$49,$4A,$4B,$4B,$4B,$4B,$4B, //A $4B,$4B,$4B,$4B,$4B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //B $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$DD,$00,$00,$00,$00, //C $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //D $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$CD,$00,$00,$00,$00, //E $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, //F //------------------------------------------------------------- $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00);
function TableAlign(var Table:tTable):cardinal; var i:integer; begin pointer(result):=@Table; if 0<>(result and $FF) then begin result:=(result and $FFFFFF00)+$100; for i:=255 downto 0 do pbyte(result+i)^:=pbyte(cardinal(@Table)+i)^; end; end;
procedure ConvertAtoB(str:pAnsiChar;tableAddr:cardinal);stdcall; asm pushad mov eax,tableAddr mov esi,STR CLD @a: lodsb mov bl,byte[eax] add byte[esi-1],bl jnz @a popad end;
initialization Table1Addr:=TableAlign(Table1); Table2Addr:=TableAlign(Table2); end.
|
Код | ConvertAtoB(s1,Table1Addr);
ConvertAtoB(s2,Table2Addr);
|
--------------------
умную мысль держи при себе, а дурной - поделись с другими
|