Автор работы: Пользователь скрыл имя, 17 Июня 2014 в 10:44, курсовая работа
Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления).
Введение 3
1 Организация памяти в ЭВМ 4
1.1 Концепция многоуровневой памяти 4
1.2 Сверхоперативная память 6
1.2.1 СОЗУ с прямым доступом 8
1.2.2 СОЗУ с ассоциативным доступом 8
1.3 Виртуальная память 12
1.3.1 Алгоритмы замещения 14
1.3.2 Сегментная организация памяти 16
2 Расчетно-графическое задание 18
2.1 Задание №1 19
2.2 Задание №2 21
3 Тестирование 23
3.1 Тестирование задания №1 23
3.2 Тестирование задания №2 25
Заключение 26
Библиографический список 27
УУ осуществляет выборку команд из ОЗУ в последовательности, определяемой естественным порядком выполнения команд (т.е. в порядке возрастания адресов команд в ОЗУ) или командами передачи управления; выборку из ОЗУ операндов, задаваемых адресами команды; инициирование выполнения операции, предписанной командой; останов или переход к выполнению следующей команды.
2.2 Задание №1
Система уравнений:
Блок-схема алгоритма решения задачи:
Рисунок 3 – Блок-схема программы
Таблица 1 – Размещение данных в ОЗУ
x |
000 |
001 |
002 |
003 |
004 |
005 |
006 |
007 |
008 |
009 |
00 |
010000 |
220041 |
230040 |
220042 |
440000 |
000150 |
140015 |
130009 |
110021 |
210042 |
10 |
440000 |
000057 |
140021 |
130027 |
110027 |
410000 |
000013 |
260040 |
230041 |
020000 |
20 |
090000 |
410000 |
000035 |
260041 |
250040 |
020000 |
09000 |
210041 |
230040 |
430000 |
30 |
000002 |
020000 |
090000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
40 |
000056 |
000100 |
000156 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
Таблица 2 – Листинг программы
Адрес |
Команда |
Примечание | |
Мнемокод |
Код | ||
000 |
in |
010000 |
Считываем х |
001 |
wr 41 |
220041 |
Размещение х в ОЗУ M(41) |
002 |
add 40 |
230040 |
x+y |
003 |
wr 42 |
220042 |
Запись в М(42) |
004 |
sbi 150 |
440000 |
Расчет ограничения |
005 |
000150 |
||
006 |
jns 15 |
140015 |
Переход, если положительно |
007 |
js 9 |
130009 |
Переход, если отрицательно |
008 |
jz 21 |
110021 |
Переход, если ноль |
009 |
rd 42 |
210042 |
Чтение x+y |
010 |
sbi 57 |
440000 |
Расчет ограничения |
011 |
000057 |
||
012 |
jns 21 |
140021 |
Переход, если положительно |
013 |
js 27 |
130027 |
Переход, если отрицательно |
014 |
jz 27 |
110027 |
Переход, если ноль |
015 |
rdi 13 |
410000 |
Расчет |
016 |
000013 |
первого | |
017 |
div 40 |
260040 |
уравнения |
018 |
add 41 |
230041 |
|
019 |
out |
020000 |
Вывод |
020 |
hlt |
090000 |
Стоп |
021 |
rdi 35 |
410000 |
Расчет |
022 |
000035 |
вторго | |
023 |
div 41 |
260041 |
уравнения |
024 |
mul 40 |
250040 |
|
025 |
out |
020000 |
Вывод |
026 |
hlt |
090000 |
Стоп |
027 |
rd 41 |
260041 |
Расчет |
028 |
add 40 |
230040 |
первого |
029 |
adi 2 |
430000 |
уравнения |
030 |
000002 |
||
031 |
out |
020000 |
Вывод |
032 |
hlt |
090000 |
Стоп |
Результат выполнения программы:
При y=56,x=100; Z=100;
При y=56,x=10; Z=168;
При y=56,x=1; Z=58;
2.3 Задание №2
Уравнение:
Блок-схема алгоритма решения задачи:
Рисунок 4 – Блок-схема программы
Таблица 3 – Размещение данных в ОЗУ
x |
000 |
001 |
002 |
003 |
004 |
005 |
006 |
007 |
008 |
009 |
00 |
212030 |
320000 |
261002 |
320004 |
310000 |
350000 |
330004 |
330002 |
320002 |
320003 |
10 |
210030 |
231001 |
220030 |
241040 |
130000 |
140016 |
310003 |
020000 |
090000 |
000000 |
20 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
30 |
000100 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
000000 |
… |
||||||||||
100 |
100003 |
100002 |
100001 |
000000 |
000001 |
000002 |
000003 |
000004 |
000005 |
000006 |
110 |
000007 |
000008 |
000009 |
000010 |
000011 |
000012 |
000013 |
000014 |
000015 |
000016 |
120 |
000017 |
000018 |
000019 |
000020 |
000000 |
000000 |
00000 |
000000 |
000000 |
000000 |
Таблица 2 – Текст программы
Адрес |
Команда |
Примечание | |
Мнемокод |
Код | ||
000 |
rd @30 |
212030 |
Считываем i |
001 |
wr R0 |
320000 |
Записываем в R0 |
002 |
div #2 |
261002 |
i/2 |
003 |
wr R4 |
320004 |
Запись в R4 |
004 |
rd R0 |
310000 |
Чтение R0 |
005 |
mul R0 |
350000 |
i^2 |
006 |
add R4 |
330004 |
i^2+i |
007 |
add R2 |
330002 |
(i^2+i)+0 |
008 |
wr R2 |
320002 |
Запись |
009 |
wr R3 |
320003 |
|
010 |
rd 30 |
210030 |
Чтение М(30) |
011 |
add #1 |
231001 |
+1 |
012 |
wr 30 |
220030 |
Запись в М(30) |
013 |
sub #125 |
241040 |
-125 |
014 |
js 0 |
130000 |
Переход, если отрицательно |
015 |
jns 16 |
140016 |
Переход, если ноль |
016 |
rd R3 |
310003 |
Чтение R3 |
017 |
out |
020000 |
Вывод |
018 |
hlt |
090000 |
Стоп |
Результат выполнения программы:
Y= 2982
3 ТЕСТИРОВАНИЕ ПРОГРАММЫ
3.1 Тестирование задания №1
Система уравнений:
В ячейке памяти 40 хранится значение переменной Y, в ячейке 41 – значение X. При запуске программы на выполнение, содержимое ячейки помещается в аккумулятор и происходит сравнение переменных X и Y с областью определения функции. Также в ячейку 43 помещается сумма X и Y. В зависимости от значения переменных X и Y вычисляется соответствующая формула. Значение выводится в поле OR.
Результаты работы программы при разных значениях переменных:
Рисунок 5 – Результат выполнения программы при X=100, Y=56
Рисунок 6 – Результат выполнения программы при X=10, Y=56
Рисунок 7 – Результат выполнения программы при X=1, Y=56
3.2 Тестирование задания №2
Уравнение:
Рисунок 8 – Результат работы программы 2
Для вычисления значения этого выражения целесообразно использовать цикл для подсчета суммы. На каждом шаге цикла вычисляется значение выражения и умножается со значением выражения, вычисленным на предыдущем шаге цикла.
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсовой работы было разработано две программы на упрощённом языке Assembler.
В данных программах были использованы: проверка условия, цикл с дополнительным условием.
Выполненные программы отлажены и работают правильно. Были учтены все граничные значения, в которых программа могла работать неправильно.
Также в ходе выполнения работы был изучен и освещён такой раздел как “Организация памяти в ЭВМ”. Раздел изложен в достаточно полном содержании и охватывает многие аспекты данной темы.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1 Библиотека MSDN [Электронный ресурс].
– Режим доступа : http://msdn.microsoft.com/ru-
2 Жмакин А.П. Архитектура ЭВМ. – СПб.: БХВ-Петербург,2006. 320 с.
3 История AMD в процессорах [Электронный
ресурс]. – Режим доступа: http://www.thg.ru/cpu/amd_cpu_
4 Краткая история процессоров: 31 год из жизни архитектуры х86 [Электронный ресурс]. – Режим доступа : http://www.thg.ru/cpu/. – 11.01.2013
5 Пятнадцать процессоров Intel x86, вошедших
в историю [Электронный ресурс]. – Режим
доступа : http://www.compdoc.ru/comp/
6 Таненбаум Э. Архитектура компьютера. 5-е изд. – СПб.: Питер, 2007. – 844 с.
7 Уинн Л. Рош Библия по техническому обеспечению Уинна Роша . – СПб.: Москва, 2008,– 150 с.
8 Форум программистов и
9 Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. – СПб.: Питер, 2008. – 868 с.
10 Юров В.И. Assembler. – СПб.: Питер, 2005. –756 с.
КР.125026.230100.62.ПЗ |
Лист | |||||
Изм. |
Лист |
№ докум. |
Подп. |
Дата |