Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Mov es, ax

Mov ax, seg mas

Codeseg segment

Dataseg end

Mas dw 0

Dataseg segment

Jmp m1

Code

Mov si,2

Mas dw 48, 56, 67

……………………

mov ax, mas[SI]; Пересылка слова 56 по адресу mas+(si) в регистр ax

 

v Оператор переопределения типа, ptr.

Тип может принимать значения:

байт (byte), word (слово), dword (двойное слово), qword (8 байт), tbyte (10 байт).

near и far – определяет близкий или дальний переход.

 

Форат оператора

<Тип> ptr <Выражение>

Пример.

var dd 0abcd1234h; двойное слово в сегменте данных

mov al, byte ptr var+1;в регистр al загрузить байт (число cdh)

 

v Оператор переопределения сегмента (двоеточие).

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

 

Фрагмент программы:

…….

ind db 5; поле данных в сегменте команд

 

m1:

mov al, cs:ind;адрес начала сегмента кода в регистре cs

;в регистр al загрузить число 5.

 

v Оператор получения сегментной составляющей адреса - seg.

Оператор возвращает сегментный адрес для выражения в качестве которого может выступать: метка, переменная, имя сегмента, имя группы сегментов, некоторое символическое имя.

Пример:

mov ds, ax; в ds загружается адрес начала сегмента данных

 

v Оператор получения смещения в сегменте памяти некоторого выражения – offset.

Смещение – это адрес операнда относительно начала сегмента.

 

Пример

.data; начало сегмента данных

mas dw 5; в сегменте данных число 5

 

.code; начало сегмента кода

mov ax, seg mas; запись в ax начало сегмента данных

mov dx, offset mas; в dx загружаем смещение

mov bx, es:[dx]; загрузили в bx число 5

 

Типы данных, которые поддерживает ассемблер:

1) Байт (byte) – 8 разрядов, младший разряд справа

2) Слово (word) – 2 байта, 16 разрядов. Делится на 2 части: справа младший байт, слева – старший байт. Адресом слова в памяти является адрес младшего байта.

3) Двойное слово (dword). Состоит из младшего и старшего слов. Адресом является адрес младшего слова.

МП кроме разрядности поддерживает логическую интерпретацию типов:

a) Целый тип без знака

Байт: 0….255

b) Целый тип со знаком

Байт: -128….+127

Слово: -32768…+32768

c) Цепочка – непрерывный набор байтов, слов или двойных слов (максимальная длина до 4 Гбайт).

d) Битовое поле – непрерывная последовательность бит, в которой каждый бит является независимым и может рассматриваться как независимая переменная (максимальная длина 32 бита).

 

Ввод информации с клавиатуры и вывод ее на экран осуществляется в символьном виде. Кодирование этой информации производят согласно таблице. Каждый символ кодируется байтом.

При вводе чисел в программу необходимо преобразование кода символа в двоичный формат. При выводе результатов необходимо выполнить обратное преобразование (чисел в символьные коды).

                   
         


Символ Код ASCII Двоичное представление Разность

0 30h 0000 30h

::::

9 39h 1001 30h


Для преобразования в двоичный код достаточно вычесть из кода ASCII 30h (для чисел от 0 до 9)

 

А(а) 41h(61h) 1010 37h(57h)

::::

F(f) 46h(66h) 1111 37h(57h)


Программа должна опознать, в каких границах находится код ASCII данного числа и в зависимости от принятого решения, вычесть из кода ASCII либо 37h, либо 57h.

 

<== предыдущая лекция | следующая лекция ==>
Flag equ 10010011b | Data ends
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 721; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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