русс | укр

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

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задание


Дата добавления: 2015-08-06; просмотров: 3134; Нарушение авторских прав


Знакомство с программой-эмулятором EMU8086

Цель работы

- ознакомление с основными возможностями и интерфейсом программы-эмулятора EMU8086;

- получение начальных знаний по программированию на языке ассемблер для процессоров семейства х86.

Перечень используемого оборудования

2.1 Программа EMU8086.

2.2 ПК.

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

Программа Emu8086 представляет собой эмулятор работы процессора (совместимого с Intel и AMD) со встроенным ассемблером и предназначена для написания программы на языке ассемблер, совместимом с процессорами i8086 и старше, компилирования данной программы, загрузки ее в память и визуального наблюдения результата ее работы. Эмулятор исполняет программу в пошаговом режиме также как и реальный процессор и позволяет просматривать сведения о состоянии внутренних регистров МП, стека, памяти, переменных и флагов во время выполнения программы. Пакет программ Emu8086 включает также несколько внешних виртуальных устройств: робот, шаговый двигатель, LED дисплей, светофор и т.д.

Задание

4.1 Запустите программу EMU8086 двойным щелчком ПК мыши на соответствующий ярлык на рабочем столе. В открывшемся меню выберите пункт New > Empty workspace. В открывшемся редакторе исходного кода наберите следующую программу:

name "Privet"

org 100h

; Установка видеорижима

mov ax, 3 ; текстовый 80x25, 16 цветов, 8-ми страничный (ah=0, al=3)

int 10h ; применить видеорежим

; Убрать мигающий курсор и задействовать все 16 цветов

mov ax, 1003h

mov bx, 0

int 10h

; Установка сегментного регистра:

mov ax, 0b800h

mov ds, ax

; Печать "Privet!"

; Первый байт - код символа в ascii, второй байт - код для цвета.

mov [02h], 'P'

mov [04h], 'r'

mov [06h], 'i'

mov [08h], 'v'



mov [0ah], 'e'

mov [0ch], 't'

mov [0eh], '!'

; Задать цвет символов:

mov cx, 7 ; число символов.

mov di, 03h ; начинать с байта, следующего за 'П'

c: mov [di], 11101100b ; светло красный (1100) на желтом фоне (1110)

add di, 2 ; загрузить код следующего символа в видеопамять.

loop c

; ждать нажатия любой клавиши:

mov ah, 0

int 16h

ret

Этот пример выводит на экран надпись "Privet!". При записи непосредственно в vga область видеопамяти. Первый байт представляет собой символ в коде ascii, следующий за ним байт - это атрибут символа. Меняя этот байт, можно изменять цвет символа, даже если он уже виден на экране. Атрибут - это 8-битное значение. Старшие 4 бита - цвет фона, младшие 4 бита - цвет символа.

hex bin цвет

0 0000 черный

1 0001 синий

2 0010 зеленый

3 0011 голубой

4 0100 красный

5 0101 сиреневый

6 0110 коричневый

7 0111 светло серый

8 1000 темно серый

9 1001 светло синий

a 1010 светло зеленый

b 1011 светло голубой

c 1100 светло красный

d 1101 светло сиреневый

e 1110 желтый

f 1111 белый

Переведенная в машинные коды программа занимает в памяти около 100 байт, т.к. она не использует никаких прерываний и включает всего одну метку для раскрашивания символов. Остальная часть программы – это обычный машинный код, записываемый непосредственно в видеопамять. Размер записываемого слова в данном случае 21 байт.

Для запуска программы нажмите кнопку Emulate или клавишу F5. Если вы не допустили ошибок при наборе, то автоматически запустится эмулятор.

Далее можно нажать single step (или F8) для пошагового выполнения программы и наблюдения результата ее работы, либо можно нажать step back (или F6) для возврата к предыдущей команде.

4.2Приведенный способ вывода строки на экран не является единственным и тем более самым простым. Наберите в редакторе следующую программу:

name "hi"

org 100h

jmp start ; Перейти к описанию данных

msg: db "Privet!", 0Dh,0Ah, 24h

start: mov dx, msg ; загрузить смещение строки msg в dx.

mov ah, 09h ; функция печати (9h).

int 21h ; вывести на экран

mov ah, 0

int 16h ; ожидание нажатия любой клавиши....

ret ; возврат в операционную систему.

При ассемблировании данная программа занимает всего около 30 байт. Она гораздо меньше, т.к. в отличии от предыдущей программы все символы выводятся в автоматическом режиме, с использованием стандартных функций прерываний операционной системы.

Запустите набранную программу и наблюдайте результат ее работы.

4.3Измените содержание выводимой фразы сначала по пункту 4.1, затем по 4.2, используя один из следующих вариантов (цвета задайте для каждой буквы отдельно, по своему усмотрению)

Вариант Фраза Примечание
Veni, vidi vici Пришел, увидел, победил (Юлий Цезарь)
Omnia mea mecum porto Все мое ношу с собой (Биант)
Scio me nihil scire Я знаю, что ничего не знаю (Сократ)
Cogito, ergo sum Я мыслю, следовательно я существую (Рене Декарт)
Divide et impera Разделяй и властвуй (принцип римского права)
Dura lex, sed lex Суров закон, но это закон
Panem et circenses Хлеба и зрелищ
Per aspera ad astra Через тернии к звездам
Si vis pacem, para bellum Если хочешь мира, готовься к войне
Qui tacet – consentire videtur Молчание – знак согласия.

 



<== предыдущая лекция | следующая лекция ==>
Лабораторная работа №1-3 | Краткие теоретические сведения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.102 сек.