Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Особливості програмування мовою Assembler

Реферат Особливості програмування мовою Assembler





Зміст


Введення

. Основні відмінності архітектур i686 та amd64

. Загальні принципи програмування мовою Assembler для платформ i686 і amd64

Регістри

Принцип передачі параметрів у функції

Робота зі стеком

Адресація

. Лістинг програми для порівняння архітектур i686 та amd64

. Приклад роботи програми

. Порівняння програм

Висновок

Список літератури



Введення


У наше життя вже давно увійшли процесори з 64-х розрядної архітектурою. Не дивлячись на те, що все ще активно використовуються 32-х розрядні процесори, і що програм для них у рази більше, нова архітектура набуває все більше прихильників. 64-х розрядні процесори дозволяють використовувати більше ресурсів, ніж 32-х розрядні, дозволяють оперувати з великою кількістю даних за одиницю часу, що в свою чергу підвищує швидкість і точність обчислень. У теж час використання 64-х розрядної архітектури тягне за собою підвищене споживання оперативної пам'яті і деякі проблеми з сумісністю програм, написаних, для 32-х розрядної архітектури.

Можна припустити, що нова архітектура буде вимагати інших способів програмування, і це виявиться правдою. Наприклад, були змінені регістри, стек, правила передачі аргументів у функції та інше.

У даній роботі буде наведено порівняння особливостей програмування для 32-х розрядних і 64-розрядних процесорів на мові асемблера. У якості ОС буде застосовуватися операційна система Ubuntu 12.10 LTS, компілятор gcc. Також ми будемо дотримуватися AT amp; T нотації мови програмування Assembler.



1. Основні відмінності архітектур i686 та amd64


Нововведення в архітектурі 64-х розрядних процесорів дозволили значно збільшити обсяг використовуваної пам'яті для одного ядра процесора.


Таблиця 1. Загальні обмеження на пам'ять

Характерістіка32-розрядні моделі64-х розрядні моделіВіртуальное адресний простір (один роцесс) 4 ГБ16 ТБВіртуальное адресний простір (32-х розрядний процес) 2 ГБ (3 ГБ, при запуску системи з ключем/3GB) 4 ГБВіртуальное адресний простір (64-х розрядний процес) - 8 ТБПул підкачувати пам'яті (режим ядра) 470 МБ128 ГБПул неподкачіваемой пам'яті (режим ядра) 156 МБ128 ГБЕлемент системної таблиці страніц660-900 МБ128 ГБ

Також використання 64-х розрядної архітектури дозволяє звертатися до більшої кількості регістрів більшого обсягу під час роботи програми. Якщо при використанні 32-х розрядного режиму ми могли звертатися до восьми 32-х розрядних регістрів загального призначення: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP, до восьми 64-х розрядних регістрів для роботи медіа даними і з числами з плаваючою точкою: MMX0/FPR0, MMX1/FPR1, MMX2/FPR2, MMX3/FPR3, MMX4/FPR4, MMX5/FPR5, MMX6/FPR6, MMX7/FPR7, до прапорцевого 32-х розрядних регістрів EFLAGS і до 32-х разрядному регістру-вказівником на наступну інструкцію EIP, то в 64-х розрядному режимі у нас набагато більше можливостей:

Регістри загального призначення були розширені до 64-х розрядів із збереженням старої структури і отримали назви RAX, RBX, RCX, 3RDX, RBP, RSI, RDI і RSP;

Були введені нові 64-х розрядні регістри в кількості восьми штук: R8, R9, R10, R11, R12, R13, R14, R15;

Прапоровий регістр і регістр-покажчик на наступну інструкцію процесора були розширені до 64-х розрядів і отримали назви RFLAGS і RIP відповідно;

Було додано 16128-розрядних медіа-регістрів під назвами XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15.

З вищесказаного можна зробити висновок про те, що використання 64-х розрядної архітектури дозволить більш швидко, якісно і зручно вирішувати поставлені як наукові, так і спільні завдання.

Варто зауважити, що результати тестування програм на різних платформах показують, що в більшості випадків використання 64-х розрядної архітектури дає приріст продуктивності, у порівнянні з 32-х розрядної архітектурою.



2. Загальні принципи програмування мовою Assembler для платформ i686 і amd64


У даному розділі ми розглянемо чотири основні питання, які повинні бути вирішені в першу чергу програмістом на мові Assembler при переході на нову апаратну платформу: регістри, стек, передача параметрів у функції і адресація.


Регістри


сторінка 1 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Аналіз структур, характеристик і архітектур 32-розрядних мікропроцесорів
  • Реферат на тему: Еволюція мови програмування Assembler
  • Реферат на тему: Розробка програм мовою С + + з використаних технології об'єктно-орієнто ...
  • Реферат на тему: Розробка програми на мові програмування С + + з використаних об'єктно-о ...
  • Реферат на тему: Пристрій додавання 16-розрядних чисел, представлених у форматі з ПТ