КАТЕГОРИИ: Архитектура-(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.
Дата добавления: 2014-01-04; Просмотров: 752; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |