42256
EMBED PBrush
Лабораторная работа
Информатика, кибернетика и программирование
rry1 db 123423 rry2 db 1500 dup rry3 db 2000 dup 56h В першому випадку кожний елемент масиву ініціалізується незалежно. Багатовимірний масив задається шляхом використання вкладених повторень dup наприклад r1 db 4 dup 3 dup 2 dup В мові Паскаль це еквівалентно наступному оператору r1:rry[0. Наприклад Instr32 struc Opcode dw Modrm db Sib db Disp dd Instr32 ends Сама структура задається в форматі директив визначення даних де в полі мнемокода задається ім'я структури наприклад In1 instr32 Або Min1 instr32 5...
Русский
2013-10-30
1007.5 KB
17 чел.
PAGE 218
EMBED PBrush
Лабораторна робота N3
Мета роботи
Вивчення типових структур даних та методів адресації елементів цих структур в мікропроцесорах 80х86 (Pentium) в реальному режимі.
Необхідні апаратні й програмні засоби:
Інформаційні матеріали:
В роботі студенти вивчають створення та використання в мові Асемблера багатовимірних масивів, структур та масивів структур. Для доступу до елементів складних структур даних вивчаються режими адресації та команди обробки адрес. З навчальною метою на мові Асемблера створюються програми, які складаються з багатьох логічних сегментів. На конкретних прикладах вивчаються проблеми, які виникають при обєднані логічних сегментів в один фізичний сегмент.
Асемблер надає дуже широкий набір засобів подання й обробки даних, які по своїх можливостях не гірші від аналогічних засобів багатьох мов високого рівня. Спочатку розглянемо із правил опису простих типів даних, які являються базовими для опису більш складних типів. Для опису простих типів даних в програмі використовують спеціальні директиви резервування й ініціалізації даних. Якщо проводити аналогію з мовами високого рівня, то директиви резервування й ініціалізації даних являють визначенням змінних. Машинного еквіваленту цим директивам не має, просто транслятор, обробляючи кожну таку директиву, виділяє необхідну кількість памяті й, при необхідності, ініціалізує цю область деяким значенням. Директиви резервування й ініціалізації даних простих типів мають формат, показаний на малюнку.
На малюнку представлені директиви резервування й ініціалізації даних, які підтримуються Tasm:
Masm, залежно від версії, директиви df та dp не підтримує.
Дуже важливо уяснити собі порядок розміщення байтів багатобайтних даних в памяті . Він прямо звязаний із логікою роботи мікропроцесора з даними. Мікропроцесори 80х86 використовують наступний порядок розміщення багатобайтних даних в памяті:- молодший байт по молодшій адресі.
Крім того, на малюнку використані наступні позначення:
Value1 db ?
….
P1 Dw Value1
P2 DD Value1
P3 dw @10
P4 dd @10
По адресі P1 транслятором буде згенеровано зміщення в сегменті зарезервованої комірки памяті, а по адресі P2 повна логічна адреса зарезервованої комірки памяті. Аналогічно в випадку мітки @10.
Згідно з малюнком для завдання одновимірних масивів можна використати методи, які пояснюються наступними прикладами.
Array1 db 1,2,3,4,2,3
Array2 db 1500 dup (?)
Array3 db 2000 dup (56h)
В першому випадку кожний елемент масиву ініціалізується незалежно. В другому випадку масив Array2 не ініціалізується, в третьому випадку всі елементи масиву ініціалізуються значенням 56h. При цьому кількість елементів в масиві дорівнює кількості повторень.
Багатовимірний масив задається шляхом використання вкладених повторень (dup), наприклад
Ar1 db 4 dup (3 dup (2 dup (?)))
В мові Паскаль це еквівалентно наступному оператору
Ar1:array[0..3,0..2,0..1) of byte;
Звідси можна вважати, що в мові Асемблера всі індекси в масивах розпочинають свої значення з 0. Оскільки ОЗП є по суті одновимірним масивом комірок, то можуть виникати розбіжності в розміщені елементів багатовимірних масивів в одновимірному масиві комірок. При програмуванні на мовах високого рівня формування адрес комірок покладається на компілятор, програмісту необхідно слідкувати лише за порядком індексів при зверненні до елементу багатовимірного масиву. Тому порядок розміщення елементів багатовимірних масивів в одновимірному масиві комірок не має суттєвого значення. При програмуванні на мові Асемблера програміст вимушений сам формувати адреси елементів багатовимірних масивів. Тому вказаний порядок має першочергове значення. В програмуванні, як правило, прийнято наступний порядок розміщення елементів багатовимірного масиву в одновимірному масиві комірок ОЗП, згідно із прикладом, наведеним в Табл. 1, де перша строчка містить адресу (зміщення) елементу масиву відносно початку масиву, а друга строчка значення індексів.
В загальному випадку зміщення елементу масиву відносно початку масиву, згідно з вказаним порядком, обчислюється по наступній формулі:
O=(I1*(P2)+ I2*(P3)+ I3*(P4)+ …+In-1*(Pn)+ In)*T (1)
Де
I1 , I2 ,…, In індекси n-вимірного масиву (вважається, що індекси змінюються починаючи з 0);
Pj (j=2,3,…,n) - добуток розмірів вимірів масиву від j до n включно;
T - тип (кількість байтів в одному елементі масиву).
Для масиву Ar1 ця формула матиме наступний вигляд
О=( I1*6+ I2*2 + I3)
Таблиця 1
Ar1+0 |
Ar1+1 |
Ar1+2 |
Ar1+3 |
Ar1+4 |
Ar1+5 |
….. |
Ar1+22 |
Ar1+23 |
0,0,0 |
0,0,1 |
0,1,0 |
0,1,1 |
0,2,0 |
0,2,1 |
….. |
3,2,0 |
3,2,1 |
Окрім формули (1) в програмуванні часто використовується так звана схема Горнера:
O=((...(( I1 *D2 + I2 )*D3 + I3 )*D4+...)*Dn+ In )*T (2)
Для масиву Ar1 ця формула матиме наступний вигляд
О=( I1 3+ I2)*2+ I3
Схема Горнера може бути ефективнішою ніж (1), особливо при великій кількості вимірів
Із Табл 1. та формул (1), (2) випливає, що для послідовного, по розташуванні в ОЗП, перегляду елементів масиву зміна індексів розпочинається з In в напрямку до I1 .
Недоліком масивів при вирішенні, зокрема, задач системного програмування є однотипність всіх елементів. Якщо в складних структурах даних елементи є різнотипними то використовуються структури та масиви структур. В мові Асемблера перед використанням структури, повинен бути попередньо заданий шаблон структури. Шаблон структури має наступний формат
Name_st struc
Директиви визначення простих даних або масивів
Name_st ends
Де Name_st - оригінальний ідентифікатор користувача- ім'я структури.
Наприклад
Instr32 struc
Opcode dw ?
Modrm db ?
Sib db ?
Disp dd ?
Instr32 ends
Сама структура задається в форматі директив визначення даних, де в полі мнемокода задається ім'я структури, наприклад
In1 instr32 <>
Або
Min1 instr32 5 dup(<>)
В розглянутих прикладах задавалось лише резервування пам'яті без початкової ініціалізації. Детальніше про структури в мові Асемблера можна познайомитись, наприклад, в книзі
ASSEMBLER. Учебный курс. В.Юров, С.Хорошенко, урок 12, Сложные структуры данных.
В мові Асемблера існують спеціальні оператори часу трансляції, які використовуються для визначення кількісних характеристик масивів. До таких операторів належать
LENGTH визначає кількість елементів даних в масиві.
SIZE визначає кількість байтів масиву
TYPE - визначає кількість байтів на елемент.
Наприклад
table dw 0,1,2,3,4,5,6,7 ;
mov ax,length table; ax=8
mov ax,size table; ax=16
mov ax,type table; ax:=2
Або
mov ax,type instr32;ax:=8
mov ax,type Min1;ax:=8
mov ax,length Min1; ax=5
mov ax,size table; ax=40
Отже
SIZE <array>= LENGTH <array> * TYPE <array>
Переважна більшість команд процесорів 80х86 мають в своїй структурі адресну частину, яка в загальному випадку містить байти modr/m, sib та зміщення в команді. На основі цих даних процесор формує зміщення в сегменті, яке в даному випадку назвали ефективною адресою. В загальному випадку ефективна адреса є сумою трьох компонент зміщення в команді, бази та індексу. База та індекс містяться в регістрах загального призначення, які використовуються як адресні регістри. Індекс може мати множник 2,4 або 8, який показує, на яку величину необхідно помножить вміст 32-розрядного індексного регістра перед формуванням ефективної адреси. Для 16-розрядних регістрів множник не задається.
Будь-яка з компонент в адресному виразі може бути відсутня, що визначає наступні режими адресації:
Зміщення в команді |
База |
Індекс |
Режим адресації |
Приклад |
- |
- |
+ |
Посередня регістрова |
[si], [еах] [esp] |
- |
+ |
+ |
Базова індексна |
[bx+si], [ecx+edx] [ebx+esi*4] |
- |
+ |
- |
Посередня регістрова |
[bx], [ecx] |
+ |
- |
+ |
Індексна |
Dat1[si] Dat1[ecx] Dat1[edi*8] |
+ |
- |
- |
Пряма |
Dat1 |
+ |
+ |
+ |
Базова індексна зі зміщенням |
Dat1[bx+di] Dat1[ebx][edx] Dat1[edx+esi*2] |
+ |
+ |
- |
Базова |
[bp+4], [bp-6] [ecx+7] |
Примітка 1. Для формування ефективної адреси можуть використовуватись лише регістри BP, BX, SI і DI , а також лише наступні їх пари BX+SI, BX+DI,BP+SI та BP+DI. Відносно 32-розрядних регістрів загального призначення, то обмеження на їх використання відсутнє, за виключенням наступного регістр ESP не може задаватись із множником.
Примітка 2. На мові Асемблера можна задати посередню регістрову адресацію із множником, наприклад, Add eax,[edx*4], але в процесорі такі команди відсутні. Асемблер сформує машинну команду, в якій буде зміщення в команді з нульовим значенням.
При програмуванні на мові Асемблера розглянуті режими адресації доцільно використовувати наступним чином:
Обчислення адрес елементів складних структур даних, таких як багатовимірні масиви, списки, графи, дерева й т.п. в загальному випадку може бути достатньо трудомістким. Тому в склад команд процесора включені команди LEA та багатооперандна команда IMUL. Команда LEA має наступний формат
LEA приймач, джерело
Операнд приймач - 16-розрядний регістр (як правило адресний), або 32-розрядний регістр. Операнд джерело адресний операнд мови Асемблера.
Алгоритм роботи команди:
Багатооперандна команда IMUL має наступні формати
IMUL множ_1,множ_2
IMUL рез-т,множ_1,множ_2
Або детальніше
Структура команди |
Приклад на асемблері |
Imul r16,r/m16 |
Imul bx,word ptr[si] |
Imul r32,r/m32 |
Imul eax,dword ptr[edx*8] |
Imul r16,r/m16, imm8 |
Imul si,[bx],6 |
Imul r32,r/m32, imm8 |
Imul ecx,esi,11 |
Imul r16,imm8 |
Imul si,6 |
Imul r32,imm8 |
Imul edi,23 |
Imul r16,r/m16, imm16 |
Imul bx,dx,166h |
Imul r32,r/m32, imm32 |
Imul ecx,esi,112233h |
Imul r16,imm16 |
Imul si,166h |
Imul r32,imm32 |
Imul edx,666777h |
Команди з двома і трьома операндами однозначно визначають розташування результату і співмножників у такий спосіб:
Команда іmul встановлює в нуль ознаки of і cf, якщо розмір результату відповідає регістру призначення. Якщо ці ознаки відмінні від нуля, то це означає, що результат занадто великий для відведених йому регістром призначення рамок, і старші розряди добутку ігноруються.. Але при обчисленні адрес така невідповідність малоймовірна, а в реальному режимі призведе лише до звернення до менших зміщень в сегменті (по кільцю).
Розглянемо приклади використання команди LEA та багатооперандної команди IMUL.
;завантажити в регістр ax елемент mas[i1,i2,i3]
.data
mas dw 10 dup (12 dup (14 dup (? )))
i1 dw ?
i2 dw ?
i3 dw ?
.code
imul bx,i1,12*14*2
imul ecx,i2,14*2
xor esi,esi
mov si,i3
lea di,[ecx+esi*2]
mov ax,mas[bx+di] ;ax:=mas[i1,i2,i3]
Команду IMUL із трьома операндами доцільно застосовувати для визначення адрес структур в масиві структур, наприклад
person struc
name db 30 dup (?)
grup db 6 dup (?)
zalic db ?
person ends
base_person person 50 dup (<>)
mov cx,50
@12:
imul si,cx,size person
mov byte ptr base_person[si-size person].zalic, '+'
loop @12
Усі команди цієї групи є однобайтними, вони не мають адресної частини. Адреси операндів команд задаються не явно (фактично кодом операції). Кожна із цих команд має два операнда або обидва в памяті, або один в акумуляторі, а другий в памяті.
Машинний код команди |
Мнемоніка |
Приймач |
Джерело |
Призначення |
0A4h |
movsb |
память |
память |
Пересилання елементів масивів |
0A5h |
Movsw або Movsd |
память |
память |
Пересилання елементів масивів |
0A6h |
Сmpsb |
память |
память |
Порівняння елементів масивів |
0A7h |
Cmpsw або Cmpsd |
память |
память |
Порівняння елементів масивів |
0AEh |
Scasb |
память |
Акумулятор |
Порівняння елементу масиву з даними в акумуляторі |
0AFh |
Scasw або Scasd |
память |
Акумулятор |
Порівняння елементу масиву з даними в акумуляторі |
0AAh |
Stosb |
память |
Акумулятор |
Занесення в елемент масиву даних з акумулятора |
0ABh |
Stosw або Stosd |
память |
Акумулятор |
Занесення в елемент масиву даних з акумулятора |
0ACh |
Lodsb |
Акумулятор |
память |
Занесення в аккумулятор даних елемента масиву |
0ADh |
Lodsw або Lodsd |
Акумулятор |
память |
Занесення в аккумулятор даних елемента масиву |
Особливістю цих команд є наступне.
Префікси повторення в мові Асемблера задаються тільки явно як окрема машинна інструкція або безпосередньо в полі мнемокоду ланцюгової команди. Мнемоніки префіксів повторення - REP, REPZ (або REPE) REPNZ (або REPNE). Префікс REP задається перед ланцюговими командами, які не виконують порівняння. Алгоритм префікса REP наступний
Префікси REPZ (або REPE) REPNZ (або REPNE) задаються перед ланцюговими командами, які виконують порівняння. Алгоритм їхньої роботи наступний
При трансляції команд movsw та movsd Асемблер генерує префікс заміни розрядності даних (код 66h), якщо розрядність даних по замовчуванню не відповідає мнемокоду команди. Розрядність адрес для команд movsb, movsw та movsd (відповідно використання регістра SI та DI чи ESI та EDI) встановлюється тільки по замовчуванню. При трансляції команди movs Асемблер може згенерувати префікс заміни розрядності даних, префікс заміни розрядності адрес і один із префіксів заміни сегменту. Нехай по замовчуванню встановлені 16-розрядні дані та адреси (атрибут USE16 в директиві SEGMENT), тоді в результаті трансляції машинної інструкції
movs dword ptr [edi],gs:dword ptr [esi]
Асемблер згенерує 4 байта:
67h| 66h| 65h: 0A5h, де 67h префікс заміни розрядності адрес, 66h - префікс заміни розрядності даних, 65h - префікс заміни сегменту, 0A7h код команди movsw. Таким чином, поле операндів в машинній інструкції movs фактично використовується для генерування префіксів та уточнення коду операції.
ЗАУВАЖЕННЯ В реальному режимі при використанні регістра EDI старші 16 розрядів 32-розрядного зміщення обнуляються.
Команду movs (movsb, movsw, movsd) застосовують для пересилання рядків (послідовностей, ланцюжків, масивів) у пам'яті. Для цього необхідно використовувати префікс rep. Префікс rep змушує циклічно виконувати команди пересилання доти, поки вміст регістра ecx/cx не стане рівним нулю. При накладанні рядків приймача та джерела необхідно визначати порядок пересилання з початку чи з кінця рядка.
str1 db 'str1 копіюється в str2'
len_str1=$-str1
a_str1 dd str1
str2 db len_str1 dup (' ')
a_str2 dd str2
mov cx,len_str1
lds sі,str1
les dі,str2
cld
rep movsb
Варіант 1.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
A1 dw 5 dup (6 dup (0fh,4 dup (0)))
Data1 ends
Варіант 2.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
A1 dw 6 dup (8 dup (7 dup (0)))
Data1 ends
Варіант 3.
Задано шаблон структури
Tabl1 struc
namex db 8 dup (?)
field2 dw ?
Tabl1 ENDS
Задано логічний сегмент
Data1 segment
I1 db 0
A1 Tabl1 6 dup (<>)
Data1 ends
Варіант 4.
Задано шаблон структури
Tabl1 struc
namex db 8 dup (10h)
field1 db ?
field2 dw ?
field8 dq ?
Tabl1 ENDS
Задано логічний сегмент
Data1 segment
I1 db 1
A1 Tabl1 6 dup (<>)
Data1 ends
Варіант 5.
Задано шаблон структури
Tabl1 struc
namex db 4 dup (?)
field1 dw 4 dup (?)
Tabl1 ENDS
Задано логічний сегмент
Data1 segment
I_struc db ?
I_namex db ?
A1 Tabl1 6 dup (<>)
Data1 ends
Варіант 6.
Задано логічний сегмент
Data1 segment
Sump dw 0
sumnp dw 0
A1 dw 6 dup (8 dup (7 dup (102h)))
Data1 ends
A2 dw 3 dup (8 dup (2 dup (0)))
A3 dw 2 dup (4 dup (4 dup (0)))
Варіант 7.
Задано логічний сегмент Data1
Data1 segment
I1 db 0
I2 db 0
I3 db 0
I4 db 0
A1 dw 5 dup (6 dup (6 dup (5 dup (?))))
Data1 ends
Задано логічний сегмент Data2
Data2 segment
A2 dd 5 dup (6 dup (6 dup (5 dup (0abcd0123h))))
Data2 ends
Варіант 8.
Задано логічний сегмент Data1
Data1 segment
I1 db 0
I2 db 0
I3 db 0
I4 db 0
A1 dw 2 dup (6 dup (7 dup (5 dup (?))))
Data1 ends
Задано логічний сегмент Data2
Data2 segment
A2 dd 2 dup (6 dup (7 dup (5 dup (?))))
Data2 ends
Варіант 9.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
A1 dw 5 dup (8 dup (2 dup (0)))
Data1 ends
Варіант 10.
Задано шаблон структури
Node struc
namex db 5 dup (?)
field1 dw 5 dup (?)
Node ENDS
Задано логічний сегмент
Data1 segment
I_struc db ?
I_namex db ?
A1 Node 6 dup (<>)
Data1 ends
Db 'node1','node2', ,'node3','node4','node5','node6'
Варіант 11.
Задано шаблон структури
Node struc
namex db 4 dup (0ffh)
field1 dw 2 dup (0)
Node ENDS
Задано логічний сегмент
Data1 segment
I_struc db ?
A0 Node <>
A1 Node 2 dup (<>)
A2 Node 4 dup (<>)
A3 Node 8 dup (<>)
Data1 ends
B0 Node <>
B1 Node 2 dup (<>)
B2 Node 4 dup (<>)
B3 Node 8 dup (<>)
Варіант 12.
Задано шаблон структури
Node struc
namex db 4 dup (?)
dst dw ?
Node ENDS
Задано логічний сегмент
Data1 segment
I_struc db ?
Order db 0,4,2,1,3
A1 Node 5 dup (<>)
Data1 ends
A2 Node 5 dup (<>)
Варіант 13.
Задано шаблон структури
Node struc
namex db 5 dup (?)
field1 dw 0
Node ENDS
Задано логічний сегмент
Data1 segment
I_struc db ?
A0 Node <>
A1 Node 2 dup (<>)
A2 Node 4 dup (<>)
A3 Node 8 dup (<>)
Data1 ends
Db 'node0','node10', ,'node11,'node20','node21','node22', 'node23'
Db 'node30','node31','node32', 'node33','node34','node35','node36', 'node37'
Варіант 14.
Задано шаблон структури
Node struc
namex db парне
field1 dw ?
Node ENDS
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
A1 Node 6 dup (4 dup<>)
Data1 ends
A2 Dw 24 dup (?)
Варіант 15.
Задано логічний сегмент Data1
Data1 segment
I1 db 0
I2 db 0
I3 db 0
I4 db 0
A1 db 3 dup (2 dup (7 dup (5 dup (?))))
Data1 ends
Задано логічний сегмент Data2
Data2 segment
II1 db 0
II2 db 0
II3 db 0
A2 db 7 dup (5 dup (2 dup (?)))
Data2 ends
Варіант 16.
Задано логічний сегмент Data1
Data1 segment
I1 db 0
I2 db 0
I3 db 0
I4 db 0
A1 dw 4 dup (7 dup (5 dup (2 dup (4567h))))
Data1 ends
Задано логічний сегмент Data2
Data2 segment
A2 dd 4 dup (7 dup (5 dup (2 dup (23456789h))))
Data2 ends
Варіант 17.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
A1 dw 6 dup (8 dup (7 dup (0)))
Data1 ends
Варіант 18.
Задано логічний сегмент
Data1 segment
Sumс4 dw 0
Sumnс4 dw 0
A1 dd 3 dup (5 dup (9 dup (1020201h)))
Data1 ends
A2 dw 2 dup (8 dup (4 dup (0)))
A3 dw 4 dup (4 dup (4 dup (0)))
Варіант 19.
Задано логічний сегмент Data1
Data1 segment
I1 db 0
I2 db 0
I3 db 0
I4 db 0
A1 dw 3 dup (4 dup (2 dup (5 dup (?))))
Data1 ends
Задано логічний сегмент Data2
Data2 segment
A2 dd 3 dup (4 dup (2 dup (5dup (?))))
Data2 ends
Варіант 20.
Задано шаблон структури
Tabl1 struc
namex db 7 dup (?)
field1 db ?
field2 dw ?
field4 dd ?
Tabl1 ENDS
Задано логічний сегмент
Data1 segment
I1 db 0
A1 Tabl1 6 dup (<>)
Data1 ends
Варіант 21.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
A1 dw 4 dup (5 dup (6 dup (0)))
Data1 ends
Варіант 22.
Задано шаблон структури
Tabl1 struc
namex db 5 dup (1h)
field1 db ?
field2 dw ?
field8 db not error
Tabl1 ENDS
Задано логічний сегмент
Data1 segment
I1 db 1
A1 Tabl1 6 dup (<>)
Data1 ends
Варіант 23.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
A1 dd 4 dup (7 dup (3 dup (0),1234h))
Data1 ends
Варіант 24.
Задано шаблон структури
Node struc
namex db 5 dup (?)
left dw ?
right dw ?
Node ENDS
Задано логічний сегмент
Data1 segment
I_struc db ?
I_order db ?
Order db 0,3,1,2,4
A1 Node 5 dup (<>)
Data1 ends
Db 'Null ','One ','Two ',Three','Four ''
Варіант 25.
Задано логічний сегмент
Data1 segment
I1 db ?
I2 db ?
I3 db ?
I4 db ?
A1 dd 6 dup (5 dup (4 dup (3 dup (?))))
Data1 ends
А1[I1,I2,I3,I4]:= (I1 shl 24) or (I2 shl 16) or (i3 shl 8) or I4;
Вважається, що індекс по адресі I1 змінюється від 0 до 2, по адресі I2 - від 0 до 3 і т.д.
Для виконання ускладненого завдання необхідно:
ASSUME CS:CODE,DS: NOTHING,ES:DATA,SS:NOTHING
Перевірити правильність виконання програми та пояснити результат перевірки.
ASSUME CS:CODE,DS: NOTHING,ES:DATA,SS:NOTHING
А также другие работы, которые могут Вас заинтересовать | |||
14721. | Алгоритм анализа качества системы при детерминированных и случайных воздействиях | 80.51 KB | |
Алгоритм анализа качества системы при детерминированных и случайных воздействиях Задача анализу известной динамической системы в конкретных условиях ее эксплуатации состоит в определении выходных реакций и сигналов управления систем при определенных входных сигнал... | |||
14722. | Таблицы решений | 128 KB | |
Лабораторная работа № 3. Таблицы решений Цель работы Целью работы является изучение таблиц решений и спецификация с помощью данного механизма логики вычислительных процессов. Содержание отчета Итоговым документом выполнения лабораторной работы является отчет с | |||
14723. | Flow-формы и диаграммы Насси-Шнейдермана | 44 KB | |
Лабораторная работа № 2. Flowформы и диаграммы НассиШнейдермана Цель работы Изучение и практическое применение принципов разработки спецификаций вычислительных процессов с помощью визуальных языков Flowформ и диаграмм НассиШнейдермана. Содержание отчета Итоговы | |||
14724. | Схемы алгоритмов | 76 KB | |
Контрольная работа. Схемы алгоритмов Цель работы Целью работы является практическое изучение процесса спецификации алгоритмов с помощью схем. Содержание отчета Итоговым документом выполнения контрольной работы является отчет состоящий из следующих пунктов. ... | |||
14725. | Определение ускорения свободного падения с помощью оборотного маятника | 48 KB | |
отчёт по лабораторной работе № 20 Определение ускорения свободного падения с помощью оборотного маятника Расчетная формула. 4πL₀ T где L₀ приведенная длина оборотного маятника; T период колебаний маятника. Эскиз установки. ... | |||
14726. | Анализ дискретной математической модели непрерывного динамического объекта | 463.34 KB | |
Лабораторная работа №4 Анализ дискретной математической модели непрерывного динамического объекта Цели работы: выполнить анализ заданного непрерывного объекта; выбрать несколько периодов квантования объекта; получить дискретные ММ непрерывного объект | |||
14727. | Синтез и исследование динамических наблюдателей состояния линейных объектов управления | 224.99 KB | |
4 Лабораторная работа №3 Синтез и исследование динамических наблюдателей состояния линейных объектов управления Цель работы: ознакомление с современными методами наблюдения состояния технических объектов в системах управления синтеза соответству... | |||
14728. | Исследование эквивалентных преобразований математических моделей динамических систем в пространстве состояний | 36.36 KB | |
4 Лабораторная работа №2 Исследование эквивалентных преобразований математических моделей динамических систем в пространстве состояний Цели работы: исследовать управляемость и наблюдаемость системы; привести ММ управляемой ДС к основной норм | |||
14729. | Анализ и планирование показателей рецептуры в Сети аптек «Винницкая городская аптека» | 527.5 KB | |
Руководство отделами осуществляют заведующие отделами и их заместители. В штате РПО предусмотрены должности провизоров и фармацевтов. Провизоры выделяются для приема рецептов на лекарства индивидуального изготовления и ГЛС, осуществления контроля качества приготовляемых лекарств | |||