2. Определение структуры программного продукта
2.1 Анализ процесса обработки информации и выбор структур данных для хранения
Процесс обработки информации приближен к процессам, проводимым в математическом сопроцессоре Intel 80x87. В программе на диалоговом уровне реализована возможность задания числового значения, которое нужно будет вычесть из вершиной стека эмулированного математического сопроцессора, и вычитание разных элементов стека. В том числе и идущих не по порядку. В процессе работы эмуляции сопроцессора часто необходимо быстрое обращение к битам отдельного числа для этого используется следующая структура bits, представленная в таблице 2.1
Таблица 2.1
тип | имя переменной | размер(бит) |
unsigned char | b0 | 1 |
unsigned char | b1 | 1 |
unsigned char | b2 | 1 |
unsigned char | b3 | 1 |
unsigned char | b4 | 1 |
unsigned char | b5 | 1 |
unsigned char | b6 | 1 |
unsigned char | b7 | 1 |
Структура bits объединенa в структур bait_tabс полями в таблице 2.2
Таблица 2.2
тип | название |
bits | bit |
unsigned char | bait |
Определим структуры для мантиссы и порядка:
Структура ud16 с полями в таблице 2.3
Таблица 2.3
тип | название |
bait_tab | data[2] |
short | val |
Структура ud64 с полями в таблице 2.4
Таблица 2.4
тип | название |
bait_tab | data[8] |
_int64 | val |
Структура ud80 с полями в таблице 2.5
Таблица 2.5
тип | название |
ud64 | mant |
ud16 | exp |
В самом же сопроцессоре стековые регистры имеют вид структуры str с полями, преставленной в таблице 2.6
Таблица 2.6
типа | название |
bait_tab | data[10] |
ud80 | val |
Также в программе определены регистры состояния, тегов и контроля.
Структура regs представлена в таблице 2.7
Таблица 2.7
тип | имя переменной | размер(бит) |
unsigned | IE | 1 |
unsigned | DE | 1 |
unsigned | ZE | 1 |
unsigned | OE | 1 |
unsigned | UE | 1 |
unsigned | PE | 1 |
unsigned | SF | 1 |
unsigned | ES | 1 |
unsigned | C0 | 1 |
unsigned | C1 | 1 |
unsigned | C2 | 1 |
unsigned | TOP | 3 |
unsigned | C3 | 1 |
unsigned | B | 1 |
Структура _sreg с полями в таблице 2.8
Таблица 2.8
тип | название |
regs | data |
unsigned short int | sreg |
Структура _creg, включает в себя следующую структуру:
Таблица 2.9
тип | имя переменной | размер(бит) |
unsigned | IM | 1 |
unsigned | DM | 1 |
unsigned | ZM | 1 |
unsigned | OM | 1 |
unsigned | UM | 1 |
unsigned | PM | 1 |
unsigned | PC | 2 |
unsigned | RC | 2 |
Таблица 2.10
тип | название |
unsigned short int | creg |
Структура _twr, включает в себя следующую структуру:
Таблица 2.11
тип | имя переменной | размер(бит) |
unsigned char | pr0 | 2 |
структура _twr с полями в таблице 2.12
Таблица 2.12
типа | название |
unsigned short int | twr |
... изменения сегмента (Segment Override). В системе команд насчитывается несколько сотен инструкций, поэтому в данной работе обзорно рассмотрены все команды обработки данных (блоков процессора АЛУ, FPU, MMX, и XMM), а далее более подробно описаны инструкции, появившиеся в процессорах Pentium 3 (блок XMM — SSE) и Pentium 4 (блок XMM — SSE2). Инструкции пересылки данных (см. табл) позволяют ...
... программе. В данном разделе они перечислены в алфавитном порядке и приводятся с объяснениями. Эти ошибки могут являться следствием случайного затирание памяти программой. Abnormal program termination Аварийное завершение программы Данное сообщение может появляться, если для выполнения программы не может быть выделено достаточного количества памяти. Более подробно оно рассматривается в конце ...
0 комментариев