Задания к лабораторной работе №4
1 Создать программу на языке ассемблера со следующими характеристиками:
· модель памяти типа Small;
· размер стекового сегмента 1024 байта;
· содержимое сегмента данных, согласно индивидуального задания;
· имя программы должно быть следующего типа: LAB4XXX.ASM
где ХХХ – ФИО студента (три буквы латинским шрифтом).
Вариант 1
Имеется система трех уравнений и следующие данные:
· строка десятичных слов W из двенадцати элементов: 1235,9512,3542,4560,0456, 7777, 4567,7777,2570,4560,0258,2341;
· коэффициенты: a = 25, b=20;
· система уравнений: Y1 = 5a2 W3i − b2 W2i × Wi/2;
Y2 = ba × aW2i + 785;
Y3 = 3a W2i − bWi + 361.
Необходимо создать программу для:
1) вычисления: ∑ Y1, для всех 1000 ≤ Wi ≤ 3000;
∑ Y2, для всех Wi = 7777;
∑ Y3, для всех 4000 ≤ Wi ≤ 9999;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑ Y1d, ∑ Y2d, ∑ Y3d - десятичный результат,
∑ Y1h, ∑ Y2h, ∑ Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 2
Имеется система трех уравнений и следующие данные:
· строка десятичных байт X из двадцати элементов: 23,12,54,60,04,71,37, 45,67,67,27,77, 25,37, 45,37,24,58,23,42;
· коэффициенты: a = 22, b=20, с=56;
· система уравнений: Y 1= aX2i + bXi + c;
Y 2 = a3/Xi + b2Xi − cXi;
Y 3 = bcXi − Xi/2 + aXi .
Необходимо создать программу для выполнения:
1) вычисления: ∑ Y 1 для всех 4 ≤ Xi ≤ 30;
∑ Y 2, для всех Xi = 37;
∑ Y 3, для всех 40 ≤ Xi ≤ 98;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑ Y 1d, ∑ Y 2d, ∑ Y 3d Y3d - десятичный результат,
∑ Y 1h, ∑ Y 2h, ∑ Y 3h Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 3
Имеется система трех уравнений и следующие данные:
· строка десятичных байт X из двадцати элементов: 26,12,44,61, 34,11, 17, 41,20,32,27,47, 20,57, 20,37,24,48,25,42;
· коэффициенты: a = 12, с =36;
· система уравнений: Y 1= (aX2i + a2Xi /Xi+1 − a)× c;
Y 2 = 2aX2i +c2Xi −aXi ;
Y 3 = acXi × Xi/2 + aXi .
Необходимо создать программу для:
1) вычисления: ∑ Y 1 для всех 12 ≤ Xi ≤ 30;
∑ Y 2, для всех Xi = 37;
∑ Y 3, для всех 40 ≤ Xi ≤ 99;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑ Y 1d, ∑ Y 2d, ∑ Y 3 d - десятичный результат,
∑ Y 1h, ∑ Y 2h, ∑ Y 3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 4
Имеется система трех уравнений и следующие данные:
· строка десятичных байт V из двадцати элементов: 8,10,24,50,14, 11, 27,52,50,35,27,57, 25,50, 55,60,24,50,23,52;
· коэффициенты: a = 16, b=22, с=21;
· система уравнений: Y 1= (b V 2i + ba2 V i − a V i)× c;
Y 2 = 2a V 2i +c2 V i − a V iI ;
Y 3 = ac2 V i × b V i+ 4a V i .
Необходимо создать программу для:
1) вычисления: ∑ Y 1, для всех Vi = 50;
∑ Y 2, для всех 05 ≤ Vi ≤ 45;
∑ Y 3, для всех 47 ≤ Vi ≥ 60;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d, ∑Y1h, ∑Y2h, ∑Y3h;
4) вывода результатов вычислений на экран.
Вариант 5
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных байт X из двадцати элементов: 03h,04h, 14h,20h,14h,21h,07h, 22h,17h,35h, 27h,23h, 21h,36h, 20h,08h,21h, 1Eh,2Ah,1Bh;
· коэффициенты: a = 12, b=22;
· система уравнений: Y 1= (2bX2i − baXi + Xi)× X2i;
Y2 = 8bXi +b2Xi −aXi;
Y3 = ab2X2i× bXi− 4aXi .
Необходимо создать программу для:
1) вычисления: ∑ Y1, для всех Xi ≥ 20h;
∑ Y2, для всех 04h ≤ Xi ≤ 1Fh;
∑ Y3, для всех Xi = 21h;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑ Y1д, ∑ Y2д, ∑ Y3д - десятичный результат,
∑ Y1h, ∑ Y2h, ∑ Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 6
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных байт Х из двадцати элементов: 22h,10h, 13h,21h,11h,15h,27h, 22h,14h,21h, 27h,23h, 24h,36h, 22h,22h,21h, 1Eh,2Ah,2Bh;
· коэффициенты: a = 1Аh, b = 23, с = 36;
· система уравнений: Y1= (аX2i − b×a/Xi + сXi)× Xi;
Y2 = (аX3i + аb2Xi×aXi;
Y3 = b2X2i+ bсXi/а − вXi .
Необходимо создать программу для:
1) вычисления: ∑ Y1, для всех 11h ≤ Хi ≥ 21h;
∑ Y2, для всех 23 ≤ Хi ≤ 2Fh;
∑ Y3, для всех Хi = 22h;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑ Y1д, ∑ Y2д, ∑ Y3д - десятичный результат,
∑ Y1h, ∑ Y2h, ∑ Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 7
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных слов W из двенадцати элементов: 4510h, 5727h,2B1h,4535h, 85C7h,1654h,4727h, 4727h,2653h, 2B44h,3646h, 4724h;
· коэффициенты: a = 2A12h, b = 14B2h, с = 7456h;
· система уравнений: Y1= (аWi − bWi/a + сWi);
Y2 = (аbWi + b2Wi×aWi;
Y3 = c/bW2i+ bсWi/а − вWi .
Необходимо создать программу для:
1) вычисления: ∑Y1, для всех 1000h ≤ W i ≥ 3000h;
∑Y2, для всех 3108h ≤ W i ≤ 9001h;
∑Y3, для всех W i = 4727h;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 8
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных слов W из элементов: 23Ah, 4258h,321Bh,4535h, 85C7h,1654h,4527h, 4527h,2E53h, 2B44h,3646h, 4527h;
· коэффициенты: a = 1C2h, b = 482h, с = 436h;
· система уравнений: Y1= (Wi /a + Wi /b + сWi+1);
Y2 = (b2Wi + c2Wi× aWi;
Y3 = cW2i+ bWi − aWi .
Создать программу для:
1) вычисления: ∑ Y1, для всех 200h ≤ W i ≥ 2F00h;
∑ Y2, для всех 3000h ≤ W i ≤ 8FF1h;
∑ Y3, для всех W i = 5427h;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 9
Имеется система трех уравнений и следующие данные:
· строка десятичных байт X из двадцати четырех элементов: 54,67,23, 33,10,15,24,60,14,11,27, 42,17,35,27,77, 25,60, 45,60,24,58,23,42;
· коэффициенты: a = 16, b=32, с=26;
· система уравнений: Y1= (bX2i + ba2Xi − aXi-1)× c2;
Y2 = 2aX2i +cbXi − aXi/b;
Y3 = ac2Xi × bXi /c+ 4aXi .
Создать программу для:
1) вычисления: ∑ Y1, для всех X i = 60;
∑ Y2, для всех 21 ≤ Xi ≤ 45;
∑Y3, для всех 45 ≤ Xi ≤ 60;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 10
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных байт W из шестнадцати элементов: 10h, 72h,2Bh,72h, 85h,0C7h,16h,72h,47h,27h, 72h,28h,26h,53h, 72h,44h;
· коэффициенты: a = 2A12h, b = 14B2h, с = 7456h;
· система уравнений: Y1= (аWi − bWi/a + сWi);
Y2 = (аbWi + b2Wi×aWi;
Y3 = c/bW2i+ bсWi/а − вWi .
Создать программу для:
1) вычисления: ∑ Y1, для всех 10h ≤ W i ≥ 3Eh;
∑ Y2, для всех 3Fh ≤ W i ≤ 91h;
∑ Y3, для всех W i = 72h;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 11
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных слов W из двенадцати элементов:4510h, 5727h,241h,4535h, 65C7h,1654h,4727h, 4727h,2153h, 2344h,3646h, 4724h;
· коэффициенты: a = 2A12h, b = 14B2h, с = 7456h;
· система уравнений: Y1= (аWi − bWi + сWi);
Y2 = (а2bWi2 + b2Wi× aWi;
Y3 = c2/bW2i+ а2Wi/с − в+Wi .
Создать программу для:
1) вычисления: ∑Y1, для всех 1000h ≤ W i ≥ 2500h;
∑Y2, для всех 2600h ≤ W i ≤ 7001h;
∑Y3, для всех W i = 4727h;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 12
Имеется система трех уравнений и следующие данные:
· строка десятичных байт В из двадцати трех элементов: 15,10,57,24, 24,51,27,35,25,16,14,17,27, 47,27,21,63, 23,34,36,27;
· коэффициенты: k = 12h, n = 48, z = 56;
· система уравнений: Y1= (k 2Вi2 − k Вi /n + z Вi);
Y2 = (k2nВi2 + zn Вi× z2Вi;
Y3 = n 2/kВ2i + z 2Вi/ k + Вi − zk .
Создать программу для:
1) вычисления: ∑Y1, для всех 11 ≤ В i ≥ 25;
∑Y2, для всех 26 ≤ В i ≤ 70;
∑Y3, для всех В i = 27;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 13
Имеется система трех уравнений и следующие данные:
· строка десятичных слов W из двенадцати элементов: 4525,1726, 3241,3435, 4525,1654,4715, 4525,2153, 2344,5646, 4525;
· коэффициенты: a = 3312h, b = 1424h, с = 2256h;
· система уравнений: Y1= (аWi2 / b + сWi);
Y2 = (аb2Wi + bWi× a;
Y3 = c3/b2W2i+ а2Wi − b.
Создать программу для:
1) вычисления: ∑Y1, для всех 1500 ≤ W i ≥ 2500;
∑Y2, для всех 2600 ≤ W i ≤ 7001h;
∑Y3, для всех W i = 4525;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h- шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 14
Имеется система трех уравнений и следующие данные:
· строка десятичных байт В из двадцати элементов: 25,17,26,32, 41, 35, 25,16,25,47,15,25,21,53, 23,24,56,46, 45,25;
· коэффициенты: a = 12, b = 14, с = 22;
· система уравнений: Y1= bВ i2 + сВ i + c;
Y2 = аb2В i + aВ i× a2;
Y3 = c3В 2i+ cВ i − b.
Создать программу для:
1) вычисления: ∑Y1, для всех 15 ≤ В i ≥ 26;
∑Y2, для всех 27 ≤ В i ≤ 60;
∑Y3, для всех В i = 25;
2) представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3) сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d - десятичный результат,
∑Y1h, ∑Y2h, ∑Y3h - шестнадцатиричный результат;
4) вывода результатов вычислений на экран.
Вариант 15
Имеется система трех уравнений и следующие данные:
· строка шестнадцатиричных слов W из пятнадцати элементов: 0421h,5B07h,2431h,6725h,4535h,65C7h,1654h,4727h,6725h,4727h,2153h, 2344h,3646h,4724h,6725h;
· коэффициенты: a = 52h, b = 74h, с = 54h;
· система уравнений: Y1= b W i2 / сW i + ca;
Y2 = а2W 2 i − cW i× b2;
Y3 = c3W 2i+ cW i − b .
Создать программу для выполнения:
1 вычисления: ∑Y1, для всех 0247h ≤ W i ≥ 2456h;
∑Y2, для всех 2457h ≤ W i ≤ 9A60h;
∑Y3, для всех W i = 6725;
2 представления результатов вычислений в десятичной и шестнадцатиричной системах счисления;
3 сохранения результатов вычислений в ячейках памяти:
∑Y1d, ∑Y2d, ∑ Y3d, ∑Y1h, ∑Y2h, ∑Y3h;
4 вывода результатов вычислений на экран.
Контрольные вопросы по лабораторной работе № 4
1. Укажите некорректные команды а) LEA BX, B; b) LEA BX,W; c) LEA AX,BX; d) LEA CX,TABSW; e) LEA CX,TABSB, f) LEA B,AX.
2. Что будет содержать регистр АХ после выполнения следующих команд?
MOV BX, 4AFBH
MOV AX, [BX]
3. Укажите некорректные команды а) PUSH ВX; б) PUSH TABW; в) PUSH CL; г) PUSH TABDD; д) PUSH 1125; ж) PUSH TABВ; з) PUSH DL; и) PUSH CS;
где TABВ − данное из таблицы байт;
TABW – данное из таблицы слов;
TABDD - данное из таблицы двойных слов.
4. Приведите команды, позволяющие скопировать в АХ содержимое шестого слова стека.
5. Приведите команды, позволяющие обратится по любому адресу данных в стеке.
6. Какие структуры микропроцессора формируют адрес вершины стека?
7. Каков минимальный и максимальный размер стека?
8. Каким образом процессор определяет необходимость передачи управления при условном переходе?
9. Приведите пример команд после исполнения которых, флаг РF установится в 1.
10. Приведите пример установки в 1 флага СF.
11. Приведите пример установки в 1 флага SF.
12. Приведите пример установки в 1 флага ZF.
13. Укажите два метода установления четности или нечетности данных.
14. Каким образом запретить обработку прерываний микропроцессором?
15. Укажите, какие команды необходимо использовать для сложения трех шестнадцатиричных слов.
16. Чем определяется максимальное удаление метки, при исполнении команды условной передачи управления?
17. Каково максимальное удаление метки при передаче управления по командам условной и безусловной передачи управления?
18. Укажите три способа обнуления регистра микропроцессора.
19. Разделите 88h на 4, не используя команду деления.
20. Какие команды обычно предшествуют команде условной передачи управления?
21. Каким образом произвести сложение данных типа WORD с данными типа DWORD?
22. В каких структурах микропроцессора отражается результат выполнения операции CMP?
23. Действие каких инструкций объединяет команда LOOP ?
24. Выполните указанные арифметические действия и определите значения флагов состояния регистра EF: 0FEDAh + 8D79h, 784Ah – 0D457h, 5555h + 0AAABh, 3210 – 3210.
25. Выполните вычитание двух чисел 675h – 425h по алгоритму функционирования процессора.
26. Укажите число, на которое модифицируется IP при выполнении десятой команды некоторой программы.
27. Укажите содержимое регистра АХ после выполнения следующих команд: Mov AL,7Bh; Cbw.
28. Укажите содержимое регистра DX после выполнения программы из трех команд: Mov AX,4444h; Mov BL,22h; Div BX.
29. Определите адрес вектора обработки программного прерывания с кодом 26.
30. Происходит ли обращение к стеку в вашей программе? Если да, то где именно?
31. Каким образом произвести умножение содержимого AL на 4, не используя команду арифметического умножения?
32. Что означает для процессора передать управление определенной команде?
33. В какой форме чаще всего представляются отрицательные двоичные числа в процессоре: в прямом коде, обратном коде, инверсном коде, дополнительном коде, в виде знака и величины, в абсолютном значении?
34. Каким образом процессор вычисляет адрес вектора программы обработки прерывания?
Библиографический список
1. Бройдо, В.Л. Архитектура ЭВМ и систем : [учеб. для вузов по специальности "Информационные системы"] / В. Л. Бройдо, О. П. Ильина. - М. : Питер, 2006. - 717 c.
2. Мелехин, В.Ф. Вычислительные машины, системы и сети : [учеб. для вузов по направлению "Автоматизация и упр."] / В. Ф. Мелехин, Е. Г. Павловский. - М. : Академия , 2006. - 555 с.
3. Пятибратов, А.П. Вычислительные системы, сети и телекоммуникации : [учеб. для вузов] / А. П. Пятибратов, Л. П. Гудыно, А. А. Кириченко ; под ред. А. П. Пятибратова. - М.М. : Финансы и статистика ИНФРА-М, 2008. - 734 с.
4. Хорошевский, В.Г. Архитектура вычислительных систем : [учеб. пособие для вузов] / В. Г. Хорошевский . - М. : Изд-во МГТУ им. Н. Э. Баумана, 2008. - 520 с.
5. Жмакин, А.П. Архитектура ЭВМ : [учеб. пособие для вузов по специальности "Мат. обеспечение и администрирование информ. систем"] / А. П. Жмакин. - СПб. : БХВ-Петербург, 2006. - 315 с.
6. Харин, В.Н. Вычислительные машины, системы и сети [Текст] : учеб. пособие. Ч. 1 : ЭВМ: структура, архитектура, функциональность. 2002. - 133 с.
7. Абель, П. Язык Ассемблера для IBM PC и программирования [Текст] / П. Абель. – М.: Высш. шк., 1992. – 447 с.
8. Бройдо, В.Л. Вычислительные системы, сети и телекоммуникации [Текст] / В.Л. Бройдо. – СПб.: Питер, 2002. – 688 с.
9. Вычислительные системы сети и телекоммуникации [Текст]: учебник.−2 изд., перераб. и доп. /под ред. А.П. Пятибратова.– М.: ФИС, 2003.− 512 с.
10. Цилькер, Б.Я. Организация ЭВМ И систем: учебник для вузов [Текст] / Б.Я. Цилькер, С.А.Орлов. – СПб.: Питер, 2007. – 668 с.: ил.
11. Зубков, С.В. Assembler для DOS, Windows и UNIX [Текст] /С.В. Зубков. – М.: ДМК Пресс, 2000. – 608 с.: ил.
12. Столингс, В. Структурная организация и архитектура компьютерных систем [Текст]/ В. Столингс. − М.: Изд. дом "Вильямс", 2002. – 896 с.
13. Корнеев, В.В. Современные микропроцессоры [Текст] / В.В. Корнеев. − М.:НОЛИДЖ, 2000. − 320 с.
14. Пильщиков, В.Н. Программирование на языке Ассемблера IBM PC [Текст] / В.Н. Пильщиков. – М.: Диалог МИФИ, 1996. − 340с.
15. Русак, И. М. Технические средства ПЭВМ: cправочник [Текст]/ И. М. Русак. − Минск: Высш. шк., 2006. − 504 с.
Приложение А
(справочное)