48552 (588566), страница 9

Файл №588566 48552 (Разработка виртуальных лабораторных работ средствами эмулятора Emu8086) 9 страница48552 (588566) страница 92016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

INT 10h, АН = 0Ah - Вывести

Ввод:

АН = 0Ah ВН = номер страницы AL = ASCII-код символа СХ = число повторений символа

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

2.3.3 Выводим символ в режиме телетайпа

INT 10h, АН = 0Eh - Вывести символ в режиме телетайпа

Ввод:

АН = 0Eh ВН = номер страницы AL = ASCII-код символа

Символы CR (0Dh), LF (0Ah), BEL (7) интерпретируются как управляющие символы. Если текст при записи выходит за пределы нижней строки, экран прокручивается вверх. В качестве атрибута используется атрибут символа, находившегося в этой позиции.

2.3.4 Выводим строку символов с заданными атрибутами

INT 10h, AH = 13h - Вывести строку символов с заданными атрибутами

Ввод:

АН = 13h AL = режим вывода:

Бит 0 - переместить курсор в конец строки после вывода бит 1 - строка содержит не только символы, но также и атрибуты, так что каждый символ описывается двумя байтами: ASCII-код и атрибут биты 2 - 7 зарезервированы

СХ = длина строки (только число символов) BL = атрибут, если строка содержит только символы DH,DL = строка и столбец, начиная с которых будет выводиться строки ES: BP = адрес начала строки в памяти

Функция 13h выводит на экран строку символов, интерпретируя управляющие символы CR (0Dh), LF (0Ah), BS (08) и BEL (07). Если строка подготовлена в формате символ, атрибут - гораздо быстрее просто скопировать ее в видеопамять.

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

3. Прямая работа с видеопамятью

Все, что изображено на мониторе - и графика, и текст, одновременно присутствует в памяти, встроенной в видеоадаптер. Для того чтобы изображение появилось на мониторе, оно должно быть записано в память видеоадаптера. Для этого отводится специальная область памяти, начинающаяся с абсолютного адреса 0B800h: 0000h (для текстовых режимов) и заканчивающаяся на 0B800h: FFFFh. Все, что программы пишут в эту область памяти, немедленно пересылается в память видеоадаптера. В текстовых режимах для хранения каждого изображенного символа используются два байта: байт с ASCII-кодом символа и байт с его атрибутом, так что по адресу 0B800h: 0000h лежит байт с кодом символа, находящимся в верхнем левом углу экрана; по адресу 0B800h: 0001h лежит атрибут этого символа; по адресу 0B800h: 0002h лежит код второго символа в верхней строке экрана и т.д.

Таким образом, любая программа может вывести текст на экран, простой командой пересылки данных, не прибегая ни к каким специальным функциям DOS или BIOS.

Пример работ с видеопамятью.

Пример № 3.1

. model tiny

; модель памяти, в которой сегменты кода, данных и стека объединены.

. code

; сегмент кода, который содержит данные.

org 100h

; начало СОМ-файла

begin:

; метка начала кода программы

mov ax,0003h

; видеорежим 3 (очистка экрана)

int 10h

; прерывание DOS - очистка экрана;

mov ax,0B800h

; загружаем в сегментный регистр ES число 0B800h

mov es,ax

mov di,0

; загружаем в регистр DI нуль

mov ah,31

; заносим в регистр ah - атрибут символа

mov al,

заносим в регистр al - любой ASCII-код символа

mov es: [di],ax

; заносим по адресу 0B800: 0000h атрибут и ASCII-код символа

mov ah,10h

; вызываем функцию 10h - чтобы можно было остановить программу до нажатия любой клавиши

int 16h

; вызываем прерывание 16h - сервис работы с клавиатурой BIOS

ret

; функция DOS "завершить программу"

end begin

; метка окончания кода программы

При подготовке данных для копирования в видеопамять в этой программе в строках (7) и (8) загружаем в сегментный регистр ES число 0B800h, которое соответствует сегменту дисплея в текстовом режиме. В строке (9) загружаем в регистр DI нуль. Это будет смещение относительно сегмента 0B800h. В строках (10) и (11) в регистр AH заносится атрибут символа (31 - ярко-белый символ на синем фоне) и в AL - ASCII-код символа (01 - рожица) соответственно.

В строке (12) заносим по адресу 0B800: 0000h (т.е. первый символ в первой строке дисплея - верхний левый угол) атрибут и ASCII-код символа (31 и 01 соответственно).

4. Задание для выполнения.

4.1 С помощью редактора эмулятора EMU 8086 напишите программы примеры, которых приведены в данной лабораторной работе.

4.2 Создайте файлы типа MZ и *.com.

4.3 Изучите структуру откомпилированных программ.

4.4 Получите задание у преподавателя (один из пяти вариантов табл. №1) напишите программу вывода на экран строки ‘Hello’.

4.5 Напишите программу работы переключения SuperVGA-видеорежимов (согласно вариантов табл. №2)

4.6 Подготовьте отчет, который должен содержать тексты программ, а также укажите описание работы команд программ.

4.7 В отчете должны содержаться ответы на следующие вопросы.

5. Контрольные вопросы

5.1 Перечислите функции вывода на экран средствами операционной системы DOS?

5.2 Принцип работы функции DOS 02h?

5.3 Укажите основные управляющие символы вывода на экран?

5.4 Каким образом осуществить вывод программы в файл?

5.5 Укажите отличие функции DOS 02h от 06h?

5.6 Прерывание int 29h. Преимущества использования?

5.7 С помощью каких функций можно установить нужный видеорежим (текстовый, цветной, монохромный)?

5.8 Отметьте основные моменты установки super VGA-видеорежимов?

5.9 Укажите функции и прерывания управления положением курсора.

5.10 Перечислите функции считывания положения и размера курсора?

5.11 Вывод символов на экран средствами BIOS. Функции?

5.12 Прямая работа с видеопамятью. Принципы работы с видеопамятью?

5.13 Укажите преимущества вывода на экран с помощью непосредственной работы с видеопамятью?

5.14 Область памяти видеоадаптера?

5.15 Укажите код третьего символа в верхней строке экрана для работы с видеопамятью?

5.16 Если в примере № 1.2 длину строку указать большую, чем указанная что в данном случае будет выводиться на экрана

Табл. №1

вар.

Функция вывода (DOS)

Функция вывода (BIOS)

Видеопамять

02h

Ah=02h

‘Hello’

06h

Ah=08h

09h

Ah=09h

40h

Ah=0Ah

29h

Ah=13h

Примечание: В примерах, в которых возможно задание различных параметров вывода (цвет символа, фона; номер строки, столбца, страницы и т.д.) выводите на экран слово "hello" с параметрами отличными от стандартных.

Табл. №2

вар.

SuperVGA-видеорежим

108h

109h

10Ah

10Bh

10Ch

Лабораторная работа № 4

КОМАНДЫ ЛОГИЧЕСКИХ ОПЕРАЦИЙ

Цель работы: ознакомиться с работой команд логических операций: and, or, xor, test, not и реализацией их работы на практике.

Краткие теоретические сведения.

Логические операции являются важным элементом в проектировании микросхем и имеют много общего в логике программирования. Команды AND, OR, XOR и TEST - являются командами логических операций. Эти команды используются для сброса и установки бит и для арифметических операций в коде ASCII. Все эти команды обрабатывают один байт или одно слово в регистре или в памяти, и устанавливают флаги CF, OF, PF, SF, ZF.

Команда AND.

Команда AND (Логическое И) осуществляет логическое (побитовое) умножение первого операнда на второй. Исходное значение первого операнда (приемника) теряется, замещаясь результатом умножения. В качестве первого операнда команды and можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами. Команда воздействует на флаги SF, ZF и PF.

Правила побитового умножения:

Первый операнд-бит 0101

Бит результата 0001

Второй операнд-бит 0011

Пример 1

mov AX,0FFEh

and AX,5555h; AX=0554h

Пример 2

mov ax,00101001b

add ax,11110111b ; ax=00100001b

Команда OR

Команда OR (Логическое ВКЛЮЧАЮЩЕЕ ИЛИ) выполняет операцию логического (побитового) сложения двух операндов. Результат замещает первый операнд (приемник); второй операнд (источник) не изменяется. В качестве первого операнда можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды команды OR могут быть байтами или словами. Команда воздействует на флаги OF, SF, ZF, PF и CF, при этом флаги CF и OF всегда сбрасываются в 0.

Правила побитового сложения:

Первый операнд-бит 0101

Бит результата 0111

Второй операнд-бит 0011

Пример 1

mov AX,000Fh

mov BX,00F0h

or AX,BX; AX=00FFh, BX=00F0h

Пример 2

mov AX,00101001b

mov BX,11110111b

or AX,BX ; mov dx,11111111b

Пример 3

mov AX,000Fh

or AX,8001h ; AX=800Fh

Команда XOR.

Команда ХОR (Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ) выполняет операцию логического (побитового) ИСКЛЮЧАЮЩЕГО ИЛИ над своими двумя операндами. Результат операции замещает первый операнд; второй операнд не изменяется. Каждый бит результата устанавливается в 1, если соответствующие биты операндов различны, и сбрасывается в 0, если соответствующие биты операндов совпадают.

В качестве первого операнда команды ХОR можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами. Команда воздействует на флаги OF, SF, ZF, PF и CF, причем флаги OF и CF всегда сбрасываются, а остальные флаги устанавливаются в зависимости от результата.

Правила побитового исключающего или:

Первый операнд-бит 0101

Бит результата 0110

Второй операнд-бит 0011

Пример 1

mov AX,0Fh

хог AX,0FFFFh; AX=FFF0h

Пример 2

Характеристики

Тип файла
Документ
Размер
5,95 Mb
Учебное заведение
Неизвестно

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
313
Средний доход
с одного платного файла
Обучение Подробнее