Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
U-III
35 / 35 / 7
Регистрация: 24.10.2012
Сообщений: 163
#1

Переведите код C++ на Delphi - Delphi

25.09.2013, 08:04. Просмотров 490. Ответов 2
Метки нет (Все метки)

Вот процедурка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int CRC16CCITT(char c, unsigned int crc)
{
  unsigned int CRC_MASK=0x1021;
  asm
  {
    mov     al,c     // register AL contains current byte value (8 bits)
    mov     dx,crc   // register DX contains current CRC value (16 bits)
    push    cx       // store CX register in stack
    mov     cx,8     // put number 8 into CX register (CX=8)
  CRC_Loop:
    rol     al,1
    //  ROL  AL,1 - shifting bits of AL to the left, putting highest
    //  bit to the lowest bit and to carry flag
    //  Example: 11010110b -> 10101101b and Carry Flag is set to 1
    rcl     dx,1
    //  RCL  DX,1  -  shifting  bits  of  DX to the left (like << operation)
    //  and putting value from Carry Flag to the lowest bit
    //  Example: 01010110b (Carry Flag=1) -> 10101101b (Carry Flag=0)
    jnc     CRC2     // Goto CRC2 if Carry Flag is 0
    xor     dx,CRC_MASK // DX=DX xor CRC_MASK=(DX | CRC_MASK) - (DX & CRC_MASK)
  CRC2:
    loop    CRC_Loop // CX--; if (CX!=0) goto CRC_Loop
    pop     cx       // restore CX register from stack
    mov     crc,dx   // CRC=DX
  }
  return crc;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 08:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переведите код C++ на Delphi (Delphi):

Переведите код из С в Delphi - Delphi
Я к сожалению плохо знаю С, вот что у меня есть и требует перевода на Delphi. if ( buf == '+') { if ( *lenght &lt; 8 )...

Переведите код C на Delphi - Delphi
char CRCCalc (char* pointer, uint16_t len) { char CRC = 0x00; while(len &gt; 0) { uint16_t tmp = CRC &lt;&lt; 1; tmp +=...

Переведите код из С в Delphi - Delphi
unsigned short calc_crc(unsigned char* bytes) { unsigned short real_crc=0x0000; unsigned short tmp_crc=0x0000; for(int...

Переведите код C на Delphi - Delphi
unsigned short crc_ccitt_update (unsigned short crc, unsigned char data){ unsigned short t; data ^= crc&amp;255; data ^=...

Переведите код pascal в Delphi - Delphi
Function TestWildCard(S,WildCard:String):boolean; var i,j:integer; fnd:boolean; begin fnd:=true; if...

Переведите пожалуйста код из C в Pascal/Delphi - Delphi
easeOutElastic: function (x, t, b, c, d) { var s=1.70158; var p=0; var a=c; if (t==0) return b; if...

2
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24012 / 15993 / 4840
Регистрация: 22.10.2011
Сообщений: 28,305
Записей в блоге: 5
25.09.2013, 09:24 #2
Ну, какой C++, такой и Дельфи:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function CRC16CCITT(c : byte; crc : word) : integer;
var
  CRC_MASK: word;
begin
  CRC_MASK := $1021;
  asm
    mov     al,c     // register AL contains current byte value (8 bits)
    mov     dx,crc   // register DX contains current CRC value (16 bits)
    push    cx       // store CX register in stack
    mov     cx,8     // put number 8 into CX register (CX=8)
  @@CRC_Loop:
    rol     al,1
    // ROL  AL,1 - shifting bits of AL to the left, putting highest
    // bit to the lowest bit and to carry flag
    // Example: 11010110b -> 10101101b and Carry Flag is set to 1
    rcl     dx,1
    // RCL  DX,1  -  shifting  bits  of  DX to the left (like << operation)
    // and putting value from Carry Flag to the lowest bit
    // Example: 01010110b (Carry Flag=1) -> 10101101b (Carry Flag=0)
    jnc     @@CRC2     // Goto CRC2 if Carry Flag is 0
    xor     dx,CRC_MASK // DX=DX xor CRC_MASK=(DX | CRC_MASK) - (DX & CRC_MASK)
  @@CRC2:
    loop    @@CRC_Loop // CX--; if (CX!=0) goto CRC_Loop
    pop     cx       // restore CX register from stack
    mov     crc,dx   // CRC=DX
  end;
  Result := crc;
end;
0
Puporev
25.09.2013, 09:40     Переведите код C++ на Delphi
  #3

Не по теме:

Просто встретились два одиночества...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 09:40
Привет! Вот еще темы с ответами:

Переведите код из Паскаля в Дельфи - Delphi
Помогите перевести код паскаля в делфи через stringgrid: var kol,bx,by:array of integer; n,m,ax,ay,i,j,r,minr,minb:integer; begin ...

Переведите код из консоли в форму - Delphi
Здравствуйте. Переведите код из консоли в форму пожалуйста, в делфи=&gt; var SumN,K,N,i,j,a:integer; bol:boolean; begin i:=0; ...

Переведите код из С в Delphi - Delphi
//вычисление CRC пакета char CRCCalc (char* pointer, uint16_t len) { char CRC = 0x00; while(len &gt; 0) { uint16_t tmp = CRC...

Переведите из Delphi в Pascal ) - Delphi
program deikstra; {$APPTYPE CONSOLE} uses SysUtils; var sp:array of Integer; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru