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



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

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

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

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

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