Студопедия — Выполнение работы. 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; просмотров: 907. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Методика исследования периферических лимфатических узлов. Исследование периферических лимфатических узлов производится с помощью осмотра и пальпации...

Роль органов чувств в ориентировке слепых Процесс ориентации протекает на основе совместной, интегративной деятельности сохранных анализаторов, каждый из которых при определенных объективных условиях может выступать как ведущий...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

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