Содздание приложений на языке Ассеблер

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

4 Основная часть моё .docx

— 1.10 Мб (Скачать файл)

УУ осуществляет выборку команд из ОЗУ в последовательности, определяемой естественным порядком выполнения команд (т.е. в порядке возрастания адресов команд в ОЗУ) или командами передачи управления; выборку из ОЗУ операндов, задаваемых адресами команды; инициирование выполнения операции, предписанной командой; останов или переход к выполнению следующей команды.

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-ru/library. – 16.05.2012

2 Жмакин А.П. Архитектура ЭВМ. –  СПб.: БХВ-Петербург,2006. 320 с.

3 История AMD в процессорах [Электронный  ресурс]. – Режим доступа: http://www.thg.ru/cpu/amd_cpu_history/. –  15.09.2012

4 Краткая история процессоров: 31 год из жизни архитектуры х86 [Электронный ресурс]. – Режим доступа : http://www.thg.ru/cpu/.  – 11.01.2013

5 Пятнадцать процессоров Intel x86, вошедших в историю [Электронный ресурс]. – Режим доступа : http://www.compdoc.ru/comp/cpu/short-processor-x86-history/. – 10.08.2011

6 Таненбаум Э. Архитектура компьютера. 5-е изд. – СПб.: Питер, 2007. – 844 с.

7 Уинн Л. Рош Библия по техническому обеспечению Уинна Роша . – СПб.: Москва, 2008,– 150 с.

8 Форум программистов и сисадминов CyberForum.ru: [Электронный ресурс]. – Режим доступа : http://www.cyberforum.ru/. – 16.12.2012

9 Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. – СПб.: Питер, 2008. – 868 с.

10 Юров В.И. Assembler. – СПб.: Питер, 2005. –756 с.

 

 

 

 

 

 

 

 

         

КР.125026.230100.62.ПЗ

Лист

         
 

Изм.

Лист

№ докум.

Подп.

Дата


 

 


Информация о работе Содздание приложений на языке Ассеблер