
- •Основы языка Assembler
- •1. Лабораторная работа №2: «Арифметические и логические команды в ассемблере».
- •1.1 Арифметические команды
- •1.1.1 Сложение и вычитание
- •1.1.2 Переполнения
- •1.1.3 Беззнаковые и знаковые данные.
- •1.1.4 Умножение
- •1.1.5 Беззнаковое умножение: Команда mul
- •1.1.6 Знаковое умножение: Команда imul
- •1.1.7 Многословное умножение
- •1.1.8 Деление
- •1.1.9 Беззнаковое деление: Команда div
- •1.1.10 Переполнения и прерывания
- •1.1.11 Преобразование знака
- •1.2 Логические команды
- •1.2.1 Команды логических операций : and, not,or,xor,test
- •1.2.2 Команды сдвига и циклического сдвига
- •1.2.2.1 Команды сдвига
- •1.2.2.2 Команды циклического сдвига
- •1.3 Примеры
- •1.4 Варианты заданий.
- •1.5 Требования к отчету
- •1.6 Контрольные вопросы и упражнения
- •2 Лабораторная работа №3 «Арифметические команды и команды переходов»
- •2.1 Получение символов с клавиатуры
- •2.2 Вывод символов на экран
- •2.3 Безусловные переходы
- •2.4 Условные переходы
- •2.5 Пример
- •2.6 Задания к лабораторной работе
- •2.7 Требования к отчету
- •2.8 Контрольные вопросы и упражнения
- •3 Лабораторная работа №4 «Программирование на языке ассемблер задач с использованием массивов строковых данных»
- •3.2 Цепочные команды
- •3.2.1 Инструкция lods
- •3.2.2 Инструкция stos
- •3.2.3 Инструкция movs
- •3.2.4 Повторение строковой инструкции
- •3.2.4 Сравнение строк
- •3.3 Режимы адресации к памяти
- •3.4 Ввод-вывод
- •3.6 Задания к лабораторной работе
- •3.7 Требования к отчету
- •3.8 Контрольные вопросы и упражнения
- •4 Лабораторная работа №5 « Работа с массивами и стеком на языке ассемблера»
- •4.1 Общие сведения о массивах
- •4.2 Ввод – вывод массива
- •4.3 Способы сортировки массивов.
- •4.4 Работа со стеком в ассемблере
- •4.4.1 Команды работы со стеком
- •4.4.2 Передача параметров в стеке
- •4.4.3 Передача параметров в потоке кода
- •4.5 Задание
- •4.6 Требования к отчету
- •4.7 Контрольные вопросы и упражнения
- •5 Лабораторная работа №6 «Работа с математическим сопроцессором в среде Assembler»
- •5.1 Основные сведения
- •5.2 Команды сопроцессора
- •5.2.1 Команды пересылки данных
- •5.2.2 Арифметические команды
- •5.3 Пример
- •5.4 Задание
- •5.5 Требования к отчету
- •5.6 Контрольные вопросы и упражнения
- •6 Лабораторная работа №7 «Программирование на языке ассемблера задач с использованием системных ресурсов bios. Работа в графическом режиме»
- •6.1 Графический режим
- •6.2 Прерывание bios int 10h для графики
- •6.3 Задание
- •6.4 Требования к отчету
- •6.5 Контрольные вопросы и упражнения
- •7 Лабораторная работа №8 «Работа с файлами в языке Assembler»
- •7.1 Создание файла
- •7.3 Создание и открытие файла.
- •7.4 Чтение, запись и переименование файла
- •7.7 Переименование файла
- •7.8 Закрытие и удаление файла
- •7.8.2 Удаление
- •7.10 Поиск файлов
- •7.10.1 Найти первый файл
- •7.10.2 Найти следующий файл
- •7.11 Задание
- •7.12 Требования к отчету
- •7.13 Контрольные вопросы и упражнения
- •Список литературы:
5.3 Пример
.286
.model small
.data
buf_st db 10,0
buf db 10 dup (0)
c dw 0 ;целая часть числа
d dw 0 ;дробная часть числа
p dw 1 ;порядок числа
res dd ?
.stack 128
.code
.startup
mov ah, 0ah
lea dx, buf_st
int 21h
lea si,[buf]
l_celoe:
cmp byte ptr [si], 13
je l_end
cmp byte ptr [si], '.'
je l_drob
mov bl, [si]
sub bl, 30h
mov bh, 0
mov cx, 10
mov ax, c
mul cx
add ax, bx
mov c, ax
inc si
jmp l_celoe
l_drob:
inc si
cmp byte ptr [si], 13
je l_end
mov bl, [si]
sub bl, 30h
mov bh, 0
mov cx, 10
mov ax, d
mul cx
add ax, bx
mov d, ax
mov ax, p
mul cx
mov p, ax
jmp l_drob
l_end:
finit
fild d
fidiv p
fiadd c
fst res
fwait
mov ax, 4c00h
int 21h
end
5.4 Задание
Рассчитать и вывести значение выражения, при заданных пользователем значениях x и a.
5.5 Требования к отчету
Отчет лабораторной работы представляется в печатном виде.
Отчет должен содержать:
- титульный лист;
- содержание;
- цель лабораторной работы;
- вариант задания;
- исходный текст программы;
- результат в 16-тиричном и 10-тичном виде.
5.6 Контрольные вопросы и упражнения
1) Нарисуйте программную архитектуру математического сопроцессора.
2) Перечислите регистры математического сопроцессора, подробно опишите работу регистра тегов.
3) Опишите подробно регистр состояния математического сопроцессора.
4) Опишите подробно регистр управления математического сопроцессора.
5) Перечислите основные типы арифметических команд математического сопроцессора.
6) Перечислите основные арифметические команды математического сопроцессора.
7) Перечислите основные трансцендентные команды математического сопроцессора.
8) Перечислите и подробно опишите особые случаи математического сопроцессора.
9) Опишите способы обработки особых случаев математического сопроцессора.
6 Лабораторная работа №7 «Программирование на языке ассемблера задач с использованием системных ресурсов bios. Работа в графическом режиме»
Цель работы: освоить работу в графическом режиме, изучить основные команды построения графических изображений.