Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_указания по проведению лаборат_работ ЭВМ.doc
Скачиваний:
9
Добавлен:
09.04.2015
Размер:
102.91 Кб
Скачать

6. Основной теоретический материал для выполнения лабораторных работ Общий формат команды Ассемблера

[Метка:] Код_операции [Операнд1 [,Операнд2] ] [;Комментарий ]

Адреса памяти в командах м.б. записаны так:

  • А

  • А[М]

  • А[М1] [М2]

Где А – адрес, М – регистр ВХ, ВР, M2 - регистр SI или DI. В случае 2 и 3 компонента А может отсутствовать (т.е. А=0).

Примеры:

Mov Ax, Si

Mov Bh, 5

Mov Di, Size X

Mov X, Ah

Mov X[Bx][Di], 5

Mov [Bx], Cl

Mov Ah, 5

Mov Ax, 5

Mov [Bx], 300

Mov Ds, Ax

Mov Cx, Bh

Mov Dl, 300

Mov [Bx], 5 - Некорректный вариант - Не Определён Тип Операнда

Mov Byte Ptr [Bx], 5 - корректный вариант

Mov Word Ptr [Bx], 5 - корректный вариант

X Dw 999

Mov Ah, X

Mov Ah, Byte Ptr X

Mov Ax, 80h

Mov Ax, -128 ;0ff80h

Mov Ax, 128 ;0080h

Mov Ax, 80h ;0080h

Структура простейшего программного модуля. Сегментирование

Модуль программы на языке ассемблера состоит из сегментов следующих типов:

  • сегмент кода

  • сегмент данных

  • сегмент стека

  • расширенный сегмент

Assume CS: Code, DS: Data

Code SEGMENT

org 100h

Start: … ;точка входа в программу

Code ENDS

Data Segment

….

Data ENDS

END Start

Dt1 Segment

A Db 0

B Dw ?

Dt1 Ends

;

Dt2 Segment

C Db ‘Hallo’

Dt2 Ends

;

Code Segment

Assume Cs:Code, Ds:Dt1, Es:Dt2

Beg: Mov Ax, Dt2

Mov Ds,Ax

Mov Bh, C

Code Ends

End Beg

В простейшей программе может быть всего один сегмент - кодовый, тогда необходимо в директиве Assume указать его использование и для адресации данных, а также загрузить в регистр ds его фактический адрес.

Assume CS: Code, DS: Code

Code SEGMENT

org 100h

Start: mov ax,cs

mov ds,ax

Функции bios

Функции BIOS – это функции, вызываемые по команде INT с номерами в диапазоне от 0 до 20h для обработки различных событий в ЭВМ. Детализация вызываемого сервиса обычно вводится в регистре АН.

Int 10h: Видео сервис

Ниже приведен перечень функций видеосервиса, предоставляемых подпрограммами BIOS. Номер функции определяется значением регистра АН при вызове int 10.

  1. Функция

00h

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

01h

Установить размер и форму курсора

02h

Установить позицию курсора

03h

Читать позицию курсора

04h

Читать световое перо

05h

Выбрать активную страницу дисплея

06h

Скроллинг окна вверх (или очистка его)

07h

Скроллинг окна вниз (или очистка его)

08h

Читать символ/атрибут

09h

Вывести символ/атрибут

0ah

Вывести символ

0bh

Выбрать палитру/цвет рамки

0ch

Вывести графическую точку

0dh

Читать графическую точку

0fh

Вывести символ в режиме TTY

10h

Читать видео режим

Здесь детализированы функции INT 10H стандартного видеосервиса ROM-BIOS.

AH = 00H Установка видеорежима.

Вход: AL = видеорежим

AL

Тип

Формат

Цветов

0

текст

40 х 25

16/8

1

текст

40 х 25

16/8

2

текст

80 х 25

16/8

3

текст

80 х 25

16/8

4

графика

320 х 200

4

5

графика

320 х 200

4

6

графика

640 х 200

2

7

текст

80 х 25

3

0dh

графика

320 х 200

16

0eh

графика

640 х 200

16

0fh

графика

640 х 350

3