|
Дата: 29 Мар 2010 23:21:19
#
Всем привет! вопрос возможно не в тему, но как радиолюбитель решил задать его здесь:
суть проблемы - реализация алгоритма дешифровки по DES на delphi2009, для ускорения процесса использовал паскалевский модуль на ассемблере, вот только делфи ругается вот такими словами:"operand size mismatch", места ошибок я указал в коде. Помогите!!!:)
procedure KeyInit(Operation:byte; Key:string); assembler;
var A:TBlock;
const
DefaultKey:TBlock=($01,$23,$45,$67,$89,$ab,$cd,$ef);
{------------------------}
pc1:array[0..55]of byte=
(56,48,40,32,24,16,8,0,57,49,41,33,25,17,
9,1,58,50,42,34,26,18,10,2,59,51,43,35,
62,54,46,38,30,22,14,6,61,53,45,37,29,21,
13,5,60,52,44,36,28,20,12,4,27,19,11,3);
{------------------------}
pc2:array[0..47]of byte=
(13,16,10,23,0,4,2,27,14,5,20,9,
22,18,11,3,25,7,15,6,26,19,12,1,
40,51,30,36,46,54,29,39,50,44,32,47,
43,48,38,55,33,52,45,41,49,35,28,31);
asm
cli
cld
mov al,Operation
mov [CurOper],al
push ds
pop es
lea di,CurKey
push ds
lds si, Key///////////////////////// !!!!!!!!!!!! здесь ошибка типа operand size mismatch
procedure Handle(Area:pointer; NumberOfBlocks:word); assembler;
.........
les di,Area ///////////////////////// !!!!!!!!!!!! здесь ошибка типа operand size mismatch |