- •354000 «Прикладная информатика»
- •Idiv Деление целых знаковых чисел
- •Imul Умножение целых знаковых чисел
- •In Ввод из порта
- •Inc Инкремент (увеличение на 1)
- •Int Программное прерывание
- •I into Прерывание по переполнению
- •Iret Возврат из программы обработки прерывания
- •Xchg Обмен данными между операндами
- •Xlat Табличная трансляция
- •Xor Логическое исключающее или
- •Загрузка и выполнение программ
- •Составление программы на языке Assembler и её размещение в памяти компьютера. Стандартное распределение памяти под программные сегменты.
- •Оператор Текст
- •Имя Операнд_1 ;
- •Имя Операнд_1
- •Загрузка и выполнение программ
- •Mov dl,10 ;Позиция X
- •In Считать данные из порта.
- •Исследование команд, выполняемых процессором. Программирование операций с помощью отладчика языка Assembler..
- •Исследование операций с памятью компьютера. Программирование на языка Assembler в операционной системе ms-dos. Обычная память
- •Косвенная адресация
- •Адресация по базе со сдвигом
- •Косвенная адресация с масштабированием
- •Адресация по базе с индексированием
- •Программирование прерываний на языке Assembler в операционной системе ms-dos.
- •Исследование механизмов работа с видеопамятью персонального компьютера типа ibm. Тестирование и отладка ассемблерных программ.
Mov dl,10 ;Позиция X
int 10h
mov ah,0ah ;Ввод в буфер с клавиатуры
mov dx,offset mess2 ;Смещение по которому находится буфер
int 21h
mov dx,offset mess3 ;Смещение буфера
mov ah,9 ;Вывод на экран
int 21h
ret;конец
mess2 db 10 ;максимальная длина буфера
db ? ;реальная длина буфера
db 10 dup (' ')
mess3 db 0dh,0ah,'$' ;резервируем 10 символов
end start
В результате выполнения данной программы на экране появляется курсор в заданной позиции. Пользователь может вводит на экран слова. Но длинна предложения, введенного пользователем не должна превышать место зарезервированное буфером.
Вывод на экран сообщения.
.model tiny
.code
org 100h
start:
mov ah,06h
mov al,0
mov bh,07h
mov ch,0
mov cl,0
mov dh,24
mov dl,79
int 10h
mov Ah,02h ;Номер функции позиционирование курсора
mov bh,0 ;Видео страница
mov dh,7 ;Позиция У
mov dl,75 ;Позиция Х
int 10h ;Прерывание BIOS
mov dx,offset mess2;Смещение до переменной mess2
mov ah,9 ;Вывод на экран
int 21h ;Прерывание DOS
ret ;Конец программы
mess2 db 'Asm',0dh,0ah,'$';Переменная значение которой можно ;изменить, перевод на новую строку и на начало
end start
В результате выполнения данной программы, на экране в заданной позиции появится выражение “Asm”.
JMP Безусловный переход.
JMP операнд
Команда JMP передает управление в указанную точку того же или другого программного сегмента. Адрес возврата не сохраняется. Команда JMP имеет пять разновидностей:
переход прямой короткий (в пределах –128…+127 байтов);
переход прямой ближний (в пределах текущего сегмента);
переход прямой дальний (в другой сегмент команд);
переход косвенный ближний;
переход косвенный дальний.
Все разновидности переходов имеют одну и туже мнемонику JMP, хотя и различающиеся коды операций. В некоторых случаях транслятор может определить вид перехода по контексту, в тех случаях, когда это невозможно, следует использовать атрибутные операторы:
short - переход прямой короткий;
near ptr - переход прямой ближний;
far ptr - переход прямой дальний;
word ptr - переход косвенный ближний;
dword ptr - переход косвенный дальний.
In Считать данные из порта.
IN приемник, источник
Копирует число из порта ввода-вывода, номер которого указан в источнике, в приемник. Приемником может быть только AL, AX или ЕАХ. Источник – или непосредственный операнд, или DX, причем во время использования непосредственного операнда можно указывать лишь номера портов не больше 255.
OUT Записать данные в порт.
OUT приемник, источник
Копирует число из источника (AL, AX или ЕАХ) в порт ввода-вывода, номер которого указан в приемнике. Приемник может быть либо непосредственным номером порта (не больше 255), либо регистром DX. На командах IN и OUT строится все общение процессора с устройствами ввода-вывода – клавиатурой, жесткими дисками, различными контроллерами, и используются они, в первую очередь в драйверах устройств. Например, чтобы включить динамик РС, достаточно выполнить две команды:
in al, 61h
or al, 3
out 61h, al
Последовательность выполнения работы:
Ознакомиться с теоретической частью работы.
Проанализировать предложенные примеры.
Составить алгоритм решения и набрать текст программы.
Откомпилировать программу.
Запустить её в работу.
Откорректировать программу используя команду JMP.
Составить отчет о проделанной работе и защитить его у преподавателя
Варианты заданий:
Вывести на экран в правом нижнем углу свою фамилию.
Ввести на экран с клавиатуры, в левом верхнем углу, фамилию и номер группы.
Вывести в центр экрана свою дату рождения.
Зарезервировать в буфере 20 позиций и ввести в него предложение.
Зарезервировать буфер и ввести на экран с клавиатуры команды ввода-вывода.
Вывести в нижней строке экрана три женских имени.
Вывести на экран, используя команды in и out число в шестнадцатеричном формате.
Вывести в центр экрана, используя команды in и out шестнадцатеричное число.
Зарезервировать буфер и ввести в него «ПРИВЕТ».
Вывести в верхней строке экрана слово «Ассемблер»
Содержание отчетов:
1. Цель работы и ключевые слова
2.Краткие теоретические сведения
3.Практическое задание и программный код его решения (с комментариями)
4.Результваты выполнения работы (скрин-шоты)
5 Заключение по работе
Лабораторная работа №2.