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

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

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

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

Функция DOS 0Bh - Проверить состояние клавиатуры

Ввод:

АН = 0Bh

Вывод:

AL = 0, если не была нажата клавиша

AL = 0FFh, если была нажата клавиша

Эту функцию удобно использовать перед функциями 01, 07 и 08, чтобы не ждать нажатия клавиши. Кроме того, вызов этой функции позволяет проверить, не считывая символ с клавиатуры, была ли нажата комбинация клавиш Ctrl-Break; если это произошло, выполнится прерывание 23h.

Функция DOS 0Ch - Очистить буфер и считать символ

Ввод:

АН = 0Ch

AL = Номер функции DOS (01, 06, 07, 08, 0Ah)

Вывод:

Зависит от вызванной функции

Функция 0Ch очищает буфер клавиатуры, так что следующая функция чтения символа будет ждать ввода с клавиатуры, а не использовать нажатый ранее и еще не обработанный символ. Например, именно эта функция используется для считывания ответа на вопрос "Уверен ли пользователь в том, что он хочет отформатировать диск?".

Функции посимвольного ввода без эха можно использовать для интерактивного управления программой.

. model tiny

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

. code

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

org 100h

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

Begin:

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

call Wait_key

; вызываем подпрограмму

cmp al,27

; сравниваем значение в al с кодом 27 (ESC)

; если да - то на метку Quit_prog

je Quit_prog

cmp al,0

; код клавиши расширенный? (F1-F12 и т.п.)

je Begin

; да - повторим запрос...

call Out_char

; вызываем процедуру вывода нажатой клавиши на экран

jmp Begin

; ждем дальше...

Quit_prog:

; метка, на которую придет программа в случае нажатия ESC

mov al,32

; помещаем в AL

call Out_char

; вызываем процедуру вывода символа в AL

int 20h

; выходим...

Wait_key proc

; процедура ожидания клавиши от пользователя

mov ah,10h

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

int 16h

; прерывание DOS

ret

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

Wait_key endp

; окончание процедуры Wait_key

Out_char proc

; начало процедуры out_char

push cx

; сохраним все регистры, которые будут изменены подпрограммой...

push ax

;... сделаем это для того, чтобы в последствии не было путаницы

push es

; сохраним сегментный регистр

push ax

; сохраним AX, т.к в нем код нажатой клавиши...

mov ax,0B800h

; установим ES на сегмент видеобуфера

mov es,ax

mov di,0

; DI - первый символ первой строки

mov cx, 2000

; выводим 2000 символов (80 символов в строке 25 строк)

pop ax

; восстановим код клавиши

mov ah,31

; цвет символа

Next_sym:

; метка для цикла

mov es: [di],ax

; заносим код клавиши и ее цвет (цвет всегда 31)

inc di

; увеличиваем указатель на 2 (первый байт - символ, второй байт - цвет)

inc di

loop Next_sym

; обработка следующего символа

pop es

; восстановим сохраненные регистры и выровним стек

pop ax

pop cx

ret

; вернемся из процедуры

Out_char endp

; окончание процедуры Out_char

end Begin

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

Программа делает следующее:

Ждет от пользователя клавиши;

если это расширенный ASCII (F1-F12, стрелки), то игнорирует ее;

если это не расширенный ASCII (A-Z, 0-9 и т.п.) - заполнить экран данным символом;

если нажимаем ESC (27 или 1Bh), то заполнить экран пробелами (mov al,32) и выйти.

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

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

3.2 Создайте исполняемые файлы типа *.com.

3.3 Изучите работу полученных программ.

3.4 Напишите программу для вывода на экран содержимого регистра DS (на основе примера №2.1). Сравните результат работы своей программы и того, что показывает отладчик.

3.5 Опишите работу команд DIV, PUSH, POP, SHL, TEST.

3.6 Установите (найдите адреса и запишите), где находятся числа, помещенные в стек.

3.7 Напишите программу для вывода на экран содержимого регистра СS (на основе примера №3.1).

3.8 Предложите другие способы решения поставленных задач.

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

Преимущества использования команды SHL вместо TEST (пример №1.1)?

Чем отличаются команды

SHL dx,1

и

SHL dx, cl

Как переслать содержимое X в стек и получить обратно?

Опишите методику вывода значения байта в десятеричной системе счисления?

Опишите методику вывода значения байта в шестнадцатеричной системе счисления?

Опишите методику вывода двоичного кода числа, записанного в регистр X

Стек. Принцип работы. Команды работы со стеком.

Укажите отличия в работе тандема команд.

push DS

pop ES

от

push DS

pop ES

Приложение №1

Основные Скан-Коды клавиш клавиатуры.

Клавиша

Код

Клавиша

Код

Клавиша

Код

Клавиша

Код

Esc

01h

Enter

1Ch

K*

37h

Ins

52h

1!

02h

Ctrl

1Dh

Alt

38h

Del

53h

2 @

03h

A

1Eh

SP

39h

SysRq

54h

3 #

04h

S

1Fh

Caps

3Ah

Macro

56h

4 $

05h

D

20h

F1

3Bh

F11

57h

5%

06h

F

21h

F2

3Ch

F12

58h

6 ^

07h

G

22h

F3

3Dh

PA1

5Ah

7 &

08h

H

23h

F4

3Eh

F13/LWin

5Bh

8 *

09h

J

24h

F5

3Fh

F14/RWin

5Ch

9 (

0Ah

K

25h

F6

40h

F15/Menu

5Dh

0)

0Bh

L

26h

F7

41h

F16

63h

- _

0Ch

;:

27h

F8

42h

F17

64h

= +

0Dh

' "

28h

F9

43h

F18

65h

BS

0Eh

` ~

29h

F10

44h

F19

66h

Tab

0Fh

LShift

2Ah

Num

45h

F20

67h

Q

10h

\ |

2Bh

Scroll

46h

F21

68h

W

11h

Z

2Ch

Home

47h

F22

69h

E

12h

X

2Dh

-

48h

F23

6Ah

R

13h

C

3Eh

PgUp

49h

F24

6Bh

T

14h

V

2Fh

K-

4Ah

EraseEOF

6Dh

Y

15h

B

30h

4Bh

Copy/Play

6Fh

U

16h

N

31h

K5

4Ch

CrSel

72h

I

17h

M

32h

®

4Dh

Delta

73h

O

18h

, <

33h

K+

4Eh

ExSel

74h

P

19h

. >

34h

End

4Fh

Clear

76h

[{

1Ah

/?

35h

I

50h

] }

1Bh

RShift

36h

PgDn

51h

3. Создание лабораторного практикума "Операционная система"

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

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

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

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