домашняя библиотека
Поиск в библиотеке
Навигация по предметам
Последние добавленные новости
Реклама

Архитектура и организация ЭВМЛекции по дисциплине - Архитектура и организация ЭВМ

Тема 7. Определение данных в ассемблерной программе

Данные для ассемблерной программы определяются в сегменте данных для EXE-формата и в сегменте команд, после первой команды JMP для COM-формата.

Формат команды для определения данных имеет вид:

[Имя] Команда Операнд

FLD DB 25

В этом примере задается десятичная константа размерностью 1 Байт с именем FLD.

FCS DB 10H

В этом примере задается шестнадцатеричная константа размерностью 1 Байт с именем FCS.

DRT DB 01100001B

В этом примере задается двоичная константа размерностью 1 Байт с именем DRT.

TOL DB ?

В этом примере задается неопределенная константа размерностью 1 Байт с именем TOL.

SSC DB 11,12,13

В этом примере задается поле с именем SSC, содержащее 3 однобайтовые десятичные константы.

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

1) DB – эта команда используется для задания констант размерностью 1 Байт.

2) DW – эта команда используется для задания констант размерностью 1 Слово (2 Байта).

3) DD – эта команда используется для задания констант размерностью Двойное слово (4 Байта).

4) DQ – эта команда используется для задания константы размерностью Два двойных слова (8 Байт).

Для повторного задания одной и той же константы используется оператор DUP.

DW 10 DUP(?)

Эта команда задает 10 неопределенных констант, размерностью 2 Байта каждая. Общий размер поля 20 Байт.

DB 5 DUP(14)

Эта команда задает 5 десятичных констант, имеющих значение 14 и размерностью 1 Байт каждая. Общий размер поля 5 Байт.

DB 3 DUP(4 DUP (8))

Эта команда задает 3 группы констант. В каждой группе по 4 десятичные константы со значением 8. Каждая константа имеет размерность 1 Байт. Общий размер поля 12 Байт.

FLK DB ‘NAME’

Эта команда задает символьную константу с именем FLK. Константа содержит 4 символа: N, A, M и E. Каждый символ кодируется 1 Байтом. Общий размер поля 4 Байта.

Команды DW, DD, DQ константы записываются в ячейки памяти побайтово в обратной последовательности.

Пример:

DW 3039H

В этом примере определяется двухбайтовая шестнадцатеричная константа, где 39Н – это младший байт константы, а 30Н – это старший байт константы.

Константа

Старший Байт

Младший Байт

№1

№0

30

39

Младший байт константы записывается в младшую нулевую ячейку, а старший байт константы записывается в старшую первую ячейку памяти.

Память

Младшая ячейка

Старшая ячейка

№0

№1

39

30

При просмотре дампа памяти на экране монитора константа будет выглядеть – 39 30.

Примеры использования регистров и данных в командах.

MOV AX,BX

Эта команда выполняет пересылку содержимого регистра BX в регистр AX.

MOV AX,WORDA

Эта команда выполняет пересылку содержимого поля с именем WORDA, определенном в сегменте данных, в регистр AX.

LEA AX,WORDA

Эта команда выполняет загрузку адреса поля с именем WORDA, определенном в сегменте данных, в регистр AX.

MOV AX,[BX]

Эта команда выполняет пересылку содержимого ячейки памяти, адрес которой указан в регистре BX, в регистр AX.

MOV AX,25

Эта команда записывает число 25 в регистр AX.

MOV AX,[25]

Эта команда выполняет пересылку содержимого 25й ячейки памяти в регистр AX, где 25 – это относительный адрес ячейки в сегменте данных.

   
 
  • Добавлен: 30-06-2011, 23:18 | Просмотров: 11882

    support: admin@sdb.su