Спец курс (Автоматизация процесса проектирования)/Практические задания 3
Перед выполнение ознакомиться с правилами оформления задания
Файл для задач.
Разворот байт
Строки с пометкой "(D)" включают данные - четыре DWord (двойное слово - 32 бит).
0 (D) 80000d00 02000000 00000000 00000000
Задача развернуть байты в какждом DWord, как показано ниже
0 (D) 000d0080 00000002 00000000 00000000
В файле есть строки со слово "LittleEndian", в которых уже проведено данное преобразование, поэтому их не следует изменять.
Анализ команды
Найти в логе данные, которые задают команду и расшифровать её, записав в строке после данных имена и значения полей команды.
Пакет данных относящийся к команде имеет размер 64 байта, в заголовке пакета должно быть BC:0064. После строки заголовка следует 4 строки с данными, где в первом столбце - номер DWord`а данных пакета, второй столбец - маркер данных "(D)".
test_top     203865.00 203869.00 R MRd32      0x0100/01   355  0 0    0 0 0          0x40008080   f f     16 (H) 00008010 010001ff 40008080   ----     0x3191b2b4  0xf87188a                                            
test_top     203897.00 203917.00 T CplD       0x0100/01   182  0 0    0 0 0  ID:0xffff Stat:SC  BC:0064   16 (H) 4a008010 ffff0040 01000100   ----   0 0xa94d0d83 0x37e1b7df                                            
                                                                                                          0 (D) 01000400 02000000 00000000 00000000                                                                    
                                                                                                          4 (D) 00000000 00000000 00900140 00000000                                                                    
                                                                                                          8 (D) 00c00140 00000000 0a000000 00000000                                                                    
                                                                                                         12 (D) 01000000 00000000 00000000 00000000                                                                    
Данные в логе записываются слева направо - с младшего адреса. В приведённом примере байт 0 нулевого DWord`а равень 01, второй байт - 00, третий 04, четвертый байт - 00 и т.д. Далее идут четыре DWorda данных от младшего к старшему.
Расшифровка команды в спецификации
- Figure 10: Command Dword 0
- Figure 11: Command Dword 0-15: Command Format – Admin Command Set
Например, строка с первыми четырьмя DWord`ами:
0 (D) 01000400 02000000 00000000 00000000
должна быть преобразована согласно таблицы 10 и 11 в следующую строку:
0 (D) 01000400 02000000 00000000 00000000 CMD=01, FUSE=00, PSDT=PRP, CID=0004, NSID=2

