Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
U-III
56 / 56 / 12
Регистрация: 24.10.2012
Сообщений: 173
#1

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

25.09.2013, 08:04. Просмотров 518. Ответов 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 08:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переведите код C++ на Delphi (Delphi):

Переведите код из С в Delphi
Я к сожалению плохо знаю С, вот что у меня есть и требует перевода на Delphi. ...

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

Переведите код из С в Delphi
unsigned short calc_crc(unsigned char* bytes) { unsigned short...

Переведите код C на Delphi
unsigned short crc_ccitt_update (unsigned short crc, unsigned char data){...

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

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

2
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25622 / 17175 / 6836
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
25.09.2013, 09:24 #2
Лучший ответ Сообщение было отмечено U-III как решение

Решение

Ну, какой 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
Привет! Вот еще темы с ответами:

Переведите код из Паскаля в Дельфи
Помогите перевести код паскаля в делфи через stringgrid: var kol,bx,by:array ...

Переведите код из консоли в форму
Здравствуйте. Переведите код из консоли в форму пожалуйста, в делфи=&gt; var...

Переведите код из паскаля в делфи7
Вот задание Написать программу поиска двузначных чисел, таких, что если к...

Переведите код из С в Delphi
//вычисление CRC пакета char CRCCalc (char* pointer, uint16_t len) { char...


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

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

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