Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1745

.pdf
Скачиваний:
0
Добавлен:
21.11.2023
Размер:
228.42 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

А. В. Пичугин

Языки программирования низкого уровня

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Языки программирования низкого уровня»

по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Нижний Новгород

2016

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

А. В. Пичугин

Языки программирования низкого уровня

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Языки программирования низкого уровня»

по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Нижний Новгород ННГАСУ

2016

УДК 681.3 (075)

Пичугин. А. В/ Языки программирования низкого уровня[Электронный ресурс]: учеб. – метод. пос./А. В. Пичугин; Нижегор. гос. архитектур. – строит. ун-т – Н. Новгород: ННГАСУ, 2016. - ___ с. 1 электрон.опт.диск (CD-R)

В методических указаниях представлены задания к выполнению лабораторных работ в среде разработки TASMв рамках курса «Языки программирования низкого уровня».

А. В. ПичугинННГАСУ. 2016.

Введение

Само слово ассемблер (assembler) переводится с английского как «сборщик». На самом деле так называется программа-транслятор, принимающая на входе текст, содержащий условные обозначения машинных команд, удобные для человека, и переводящая эти обозначения в последовательность соответствующих кодов машинных команд, понятных процессору. В отличие от машинных команд, их условные обозначения, называемые также мнемониками, запомнить сравнительно легко, так как они представляют собой сокращения от английских слов. Язык условных обозначений и называется языком ассемблера.

Таким образом, ассемблер — этомашинно ориентированный язык программирования, позволяющий работать с компьютером напрямую, один на один. Отсюда и его полная формулировка — язык программирования низкого уровня второго поколения (после машинного кода).

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

ЛАБОРАТОРНАЯ РАБОТА № 1

Тема: Регистры процессора Intel, способы адресации

Цель работы: Знакомство со средой TASM. Познакомится со способами адресации. Создать простейшую программу на языке assembler.

Лабораторная работа состоит из шести последовательно выполняемых заданий.

1.Создать пустой проект DOS – приложения в среде TASM.

2.Написать последовательную программу, выводящую на экран сообщение: ―HelloWorld!‖.

3.Создатьеще одну строку, которую назовем Mess2. Затем, начиная с определѐнной строки , вставим в нашу программу команды.

3. Модифицировать программу из Задания 3 так, чтобычто бы обеспечивалось прерывание.

4. Запустить программу на ПК.

ЛАБОРАТОРНАЯ РАБОТА № 2

Тема: Типы данных, регистры, базовая арифметика.

Цель работы: Изучениеосновных типов, данных и их различий, специфики регистров и основных правил базовой арифметики.

Лабораторная работа состоит из четырѐх последовательно выполняемых заданий.

1.Написать программу, с использованием операторов сложения и вычитания.

2.Написать программу котораявыводит на экран сообщение и ждет, когда пользователь нажмет любую клавишу.

3.Модифицировать программу, написанную в Задании 2 так, чтобы она возвращалась в DOS.

4.вывести результат.

ЛАБОРАТОРНАЯ РАБОТА № 3

Тема: Сегменты, модели памяти и упрощенные директивы определения сегментов.

Цель работы: Изучение принципа сегментации памяти в реальном режиме.

Лабораторная работа состоит из трѐх последовательно выполняемых заданий.

1. Написать программу для сегментации памяти, на основе регистров: ds, es,

ss.

2. Написать программу, выводящую рисунок в определѐнном месте экрана. 3.Высчитать адрес строки вывода.

ЛАБОРАТОРНАЯ РАБОТА № 4

Тема: Вывод на экран в текстовом режиме, ввод с клавиатуры, графические режимы.

Цель работы:Изучение способоввводапопрерываниюINT 21H и16H, изучениепроцедурвыводапопрерываниюINT 21H, ввод/выводпопрерываниюINT 10H, написаниефрагментовпрограммввода/вывода.

Лабораторная работа состоит из четырѐх последовательно выполняемых заданий.

1. Вциклеввестисимволсклавиатурыивывестиегодвоичноепредставление наэкран.

2.Вциклеввестидесятичноечислосклавиатуры(ФункцияAH=2 INT21H).

Числодесятичныхразрядовот1

до5.

Признакконцаввода-

нажатиеклавиши[Ввод].

 

 

Преобразоватьчисловдвоичноеивывестиегодвоичноепредставлениенаэкран. 3. Вциклеввестидесятичноечислосклавиатуры(ФункцияAH=0AH INT21H).

Числодесятичныхразрядовот1 до5. Признакконцавводанажатиеклавиши[Ввод]. Преобразоватьчисловдвоичноеивывестиегодвоичноепредставлениенаэкран.

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

Левоговерхнегоиправогонижнегоуглов(0-24 и0-79) ввестисклавиатуры. СимволыдлявыводарамкикодыASCII.

ЛАБОРАТОРНАЯ РАБОТА № 5

Тема: Работа с памятью.

Цель работы: Изучение основных приѐмов работы с памятью. Работа с расширенной памятью.

Лабораторная работа состоит из трѐх последовательно выполняемых заданий.

1.Написать программу размещения файлов в памяти.

2.Разместить файлы в памяти.

3.Написать программу для обработкиклавиш <Home> и <End>.

ЛАБОРАТОРНАЯ РАБОТА № 6

Тема:Процедуры и функции. Передача параметров. Целочисленная арифметика повышенной точности.

Цель работы: Освоить модульное программированиев Assembler.

Лабораторная работа состоит из трѐх последовательно выполняемых заданий.

1.Написать программу, которая выводит на экран сообщение "Нажмите любую клавишу...", ждет нажатия клавиши, а затем выводит еще одно сообщение: "Вы успешно нажали клавишу!", ждет, пока пользователь нажмет любую клавишу, после чего завершает свою работу.

2.Вызвать два раза функцию 09h прерывания 21h и столько же функцию 10h прерывания 16h.

3.Упростить программу и вызвать подпрограмму.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]