Студопедия — Выполнение работы. 1. Идельчик, В.И. Электрические системы и сети : учебник для электроэнергетических специальностей / В.И
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Выполнение работы. 1. Идельчик, В.И. Электрические системы и сети : учебник для электроэнергетических специальностей / В.И

Введение

В данной лабораторной работе будет проведена работа в свободном компиляторе NASM. Так как на Unix системах он предустановлен, установка описываться не будет.

 

Программное обеспечение

MacBook Air середина 2011 OS X Yosemite 10.10.5

Microsoft Office 2016 Mac beta version.

Консольные пакеты

sudo(права root)

nasm(свободное ПО)

bash(эмулятор терминала)

nano(редактирование)

screenme(c ключем -all)

 

Цели работы

изучить процессы ассемблирования, компоновки и выполнения программы, а также – научиться решать, тестировать и отлаживать на ЭВМ простейшие типовые задачи как вычислительного, так и не вычислительного характера. Как правило, в самой постановке такой задачи уже определен алгоритм ее решения. Необходимо записать этот алгоритм, используя основные конструкции языка ассемблера. Для проверки правильности работы программы должны быть представлены необходимые тестовые данные.

Рабочие задания

Написать программу.

1. Вывод сообщения на экран с начала строки.

2. Вывод сообщения на экран с середины экрана.

3. Вывод сообщения на экран с начала строки и в рамке, построенной из любых символов псевдографики.

4. Вывод сообщения в рамке на середину экрана.

5. Вывод на экран символа с помощью функции 2h, для этого запишите в сегменте кодов:

  mov ah, 2h ; функция вывода символа на экран
  mov dl, ‘A’ ;ASCII
  int 21h ;прерывание DOS
6. Вывод сообщения на экран. Перед выдачей сообщения очистить экран функцией 6 int 10h:

  mov ah, 6h ; функция очистки экрана
  mov al, 0 ; 0 - весь экран
  mov ch, 0 ; номер строки левого верхнего угла
  mov cl, 0 ; номер столбца левого верхнего угла
  mov dh, 24 ; номер строки правого нижнего угла
  mov dl, 79 ; номер столбца правого нижнего угла
  mov bh, 30h ; байт атрибут (на бирюзовом фоне черные символы)
  int 10h ; прерывание BIOS
Вставить эти 8 команд после 9-й строки.

7. Вывод сообщения на экран. Перед выдачей сообщения установить курсор функцией 2 int 10h:

  mov ah, 2h ; функция установки курсора
  mov bh, 0 ; текущая видеостраница
  mov dh, 5 ; номер строки –5
  mov dl, 10 ; номер столбца -10
  int 10h ; прерывание BIOS
Вставить эти команды перед выдачей символа или сообщения.

8. Вывод сообщения на экран. Перед выдачей сообщения нарисовать цветное окно функцией 6 int 10h и установить курсор функцией 2 int 10h.

 

Выполнение работы

Для написания первой программы на ассемблере, я буду использовать эмулятор терминала bash. Перед началом работы проверим версию NASM с которой будем работать, и есть ли вообще NASM. Для этого введем команду как показано на рисунке №1

Рисунок №1

После этого введем исходный текст на экран консоли. Для этого будем использовать эмулятор терминала bash. Исходный код программы представлен на рисунке №2

Рисунок №2

После написания исходного кода скомпилируем hello.asm файл в hello.o и соберем исполняемый файл unix, как показано на рисунке №3

 

Рисунок №3

После успешной сборке файла, даже при показе ошибки nasm о том что данная версия OS X не та что надо, пакет все де соберется и успешно может быть запущен. Результат показан на рисунке №4

Рисунок №4

После этого выведем фразу показанную на рисунке №4 3 раза сверху посередине и снизу. Для этого будет использоваться консольная псевдографика поставляемая с графическим драйвером от kalibri OS- Vesa драйвер.

Для этого в исходной директории от куда стартует программа должен быть файл object code vesa_x64-x86lib.o и kernel.asm. Исходный код показан на рисунках №5 и №6 соответственно.

Рисунок №5

Продолжение исходного кода представлено на рисунке №6. Изложение исходного кода в картинках обусловлено запретом на копирование данного кода сторонними лицами.

Рисунок №6(продолжение исходного кода из рисунка №5)

Теперь выполним данный.asm пакет. Для этого введем в консоль все те же команды как и на рисунке №4. Результат выполнения показан на рисунке №7. Хотелось бы заметить что данный метод использования псевдо графики и свободный драйвер vesa будет работать лишь с Unix системами. На OS X работа некорректна из за закрытого ядра Darwin. Но все же этот метод работает в частных случаях. Позиционирование используя псевдографику осуществляется при помощи построчных отступов от искомого значения.

 

Рисунок №7

Аналогичным методом выводим на экран слово «LABA». Листинг аналогичный, результат показан на рисунке №8

Рисунок №8

 

 

Контрольные вопросы

1. Структура программы на языке ассемблера.

2. Этапы выполнения программы.

3. Функции вывода 9h и 2h int 21h.

4. Как создается исходный файл?

5. Расширение исходного файла.

6. Имя транслятора.

7. Что делает транслятор?

8. Какие выходные файлы получаются в результате трансляции? (с какими расширениями)

9. Пример командной строки запуска транслятора.

10. Имя компоновщика.

11. Какие файлы являются входными при компоновке?

12. Какие файлы являются выходными при компоновке?

13. Какое расширение имеет исполняемый файл?

14. Пример командной строки запуска компоновщика.

15. Как можно посмотреть файл листинга?

Ответы на вопросы

1.Программы на языке ассемблера состоят из каоманд, макрокоманд, деректив, операнд. Сама программа состоит из модулей:

.686p-разрешенные команды Pentium 6

.model flat-плоская модель памяти(только WinNT)

.data-сегменты прораммы с данными

.code-содержание кода

start: метка

некая команда

end start

Каждый блок содержит end дерективу для обозначения конца схемы

2.Этапы выполнения:

код.asm---ассемблирование.o---компановка Unix исполняемый файл.

3.int21h прерывание DOS функций большн сотни. Рядом всегда mov ah, 01h-ввод с клавиатуры к примеру.

02h-вывод на дисплей. 9h –функция вывода.

4-15. Устно.

Заключение

В данной лабораторной работе познакомился с низкоуровневым языком программирования assembler, а именно с его расширенной версией nasm. Также на практике с помощью псевдографики и консольным позиционирования графического свободного драйвера vesa вывел в консоли псевдографику, и 3 раза один и тот же текст в разных местах консоли.


 

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

1. wikiTaxi // Assembler NASM

2. wikiTaxi // Основные команды NASM

3. wikiTaxi // Ядро Darwin

4. wikiTaxi // Компиляция пакетов

 




<== предыдущая лекция | следующая лекция ==>
Методика и порядок выполнения работы | Введение. HTML ( від англ. Hypertext Markup Language — «мова розмітки гіпертексту») — стандартна мова розмітки документів у Всесвітній павутині

Дата добавления: 2015-10-15; просмотров: 917. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Studopedia.info - Студопедия - 2014-2024 год . (0.023 сек.) русская версия | украинская версия