Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

DT (10 байт).

Легатом называли завещательный отказ, или безвозмездное завещательное распоряжение о выдаче наследником определенных денежных сумм или вещей определенному лицу. В своем классическом варианте легат тотчас по открытии наследства становился собственником легатария и мог быть истребован из любого владения с помощью виндикационного иска. Для того, чтобы гарантировать интересы наследника, размер легата не должен был превышать ¾ наследственной массы.

Фидеикомиссы (обращение к чести другого) – неформальные легаты, заключавшие в себе устную или письменную просьбу умирающего, дать или сделать что-либо для другого лица, не упомянутого в завещании, под честное слово.

 


 

DT (10 байт).

 

- Вираз може містити константу, наприклад: FLD1 DB 25,

- або знак питання для невизначеного значення, наприклад: FLDB DB?

Вираз може містити кілька констант, розділених комами й обмеженими тільки довжиною рядка:

FLD3 DB 11, 12, 13, 14, 15, 16,...

Асемблер визначає ці константи у вигляді послідовності сусідніх байт. Звертання за FLD3 вказує на першу константу 11, за FLD3+1 - на другу 12. (FLD3 можна представити як FLD3+0).

Наприклад команда MOV AL,FLD3+3 завантажує в регістр AL значення 14 (0Eh).

Вираз допускає також повторення константи в наступному форматі:

[ім’я] Dn кількість повторень DUP (вираз)...

Символьні рядки

Символьний рядок використаються для опису даних, таких як, наприклад, імена людей або заголовки сторінок. Вміст рядка виділяється одинарними лапками, наприклад, ‘PC’ або подвійними лапками - "PC". Асемблер переводить символьні рядки в об’єктний код у звичайному форматі ASCII.

Символьний рядок визначається тільки директивою DB, в якій вказується більше двох символів у нормальній послідовності зліва направо. Отже, директива DB є єдиним можливим форматом для визначення символьних даних.

Числові константи

Числові константи використаються для арифметичних величин і для aдрес пам’яті. Для опису константи лапки не ставляться. Асемблер перетворить всі числові константи в шістнадцятковий формат і записує байти в об’єктному коді в зворотної послідовності - справа наліво

Формат з рухомою комою. Числові константи з рухомою комою задаються у форматі ціла_частина.дробова_частина Е степінь. Де Е – основа системи лічби (10). Стандарт IEEE 754-2008 визначає кілька форматів представлень чисел з рухомою комою. Розглянемо 3 з них:

· одинарної точності (32 біти): біт 31 – знак мантиси, біти 30-23 – 8-ми бітна зміщена на +127 експонента (порядок), біти 22-0 – 23-бітна мантиса без першої цифри. Для представлення у 10-тковій системі лічби використовується формула: , де S–знак, E – зміщена експонента, М – нормалізована мантиса.

· подвійної точності (64 біти): біт 63 – знак мантиси, біти 62-52 – 11-ти бітна зміщена на +1023 експонента (порядок), біти 51-0 – 52-бітна мантиса без першої цифри (нормалізована мантиса). Для представлення у 10-тковій системі лічби використовується формула: , де S–знак, E – зміщена експонента, М – нормалізована мантиса.

· розширеної точності (80 біт): біт 79 – знак мантиси, біти 78-64 – 15-ти бітна зміщена на +16383 експонента (порядок), біти 63-0 – 64-бітна мантиса з першою цифрою (біт 63 рівний 1). Для представлення у 10-тковій системі лічби використовується формула: , де S–знак, E – зміщена експонента, М – мантиса.

Беззнакові й знакові дані.

Числові поля можуть трактуватися як знакові, або як беззнакові. Це контролюється при написанні програми самостійно. Для беззнакових величин всі біти є бітами даних Для знакових величин лівий біт є знаковим.

Директива визначення байта (DB)

Один байт виражається двома шістнадцятковими цифрами. Для беззнакових величин за допомогою цієї директиви можна представити числа від 0 до 255 (FFh). Для знакових даних найбільше додатне число в одному байті це 7F, всі "більші" числа від 80 до FF представляють від’ємні значення. У десятковому виразі ці межі визначаються числами +127 і -128.

 

Директива визначення слова (DW)

Директива DW визначає елементи, які мають довжину в одне слово (два байти).. Два байти представляються чотирма шістнадцятковими цифрами. Для беззнакових величин за допомогою цієї директиви можна представити числа від 0 до 65535 (FFh). Для знакових даних найбільше додатне шістнадцяткове число у двох байтах це 7FFF; всі "більші" числа від 8000 до FFFF представляють від’ємні значення. У десятковому форматі ці межі визначаються числами +32767 і -32768.

Символьний вираз в DW обмежений двома символами, які асемблер представляє в об’єктному коді так, що, наприклад, ‘PC’ стає ‘CP’. Для визначення символьних рядків директива DW має обмежене застосування.

Директиви визначення DD,DQ та є аналогічними до DW з відповідними довжинами даних.

Директива EQU

Директива EQU не визначає елемент даних, але визначає значення, що може бути використане для підстановки в інших командах. Припустимо, що в сегменті даних закодовано наступну директиву EQU:

TIMES EQU 10

Ім’я, у цьому випадку TIMES, може бути представлено будь-яким припустимим в асемблері ім’ям. Тепер, у якій би команді або директиві не використалося слово TIMES асемблер підставить значення 10. Наприклад, асемблер перетворить директиву

FIELDA DB TIMES DUP (?)

в директиву

FIELDA DB 10 DUP (?)

Директива LABEL

Директива LABEL створює мітку, яка не займає місця в пам’яті, а просто вказує на адресу команди або дані, що слідують за нею. Має наступний формат:

мітка LABEL тип

Мітка – це назва містки, параметр тип може приймати одне з значень: BYTE (1 байт), WORD (2 байти), DWORD (4 байти), FWORD (6 байт), QWORD (8 байт), TBYTE (10 байт), NEAR (ближня мітка), FAR (дальня мітка). Мітка отримує значення рівне зміщенню в сегменті адрес наступної за нею команди або зміщенню в сегменті даних наступного за нею операнду і тип вказаний явно. За допомогою міток з різними типами зручно організовувати доступ до одних і тих самих даних, що інтерпретуватимуться по різному в залежності від типу мітки. Наприклад, як байти чи як слова. Або здійснювати ближні чи дальні перерходи.

Вирівнювання сегментів

Оголошення сегменту має наступну структуру:

 

ім’я_сегменту segment readonly вирівнювання тип розрядність ’клас’

.....

ім’я_сегменту ends

П’ять операндів директиви segment, що відображені курсивом є необов’язковими. Для того, щоб задати вирівнювання сегментів в адресному просторі необхідно задати параметру вирівнювання одне з значень:

· BYTE – адреса сегменту може починатися з будь-якої адреси;

· WORD – адреса сегменту може починатися з парної адреси;

· DWORD – адреса сегменту може починатися з адреси, кратної 4;

· PARA – адреса сегменту може починатися з адреси, кратної 16 (границя параграфа);

· PAGE – адреса сегменту може починатися з адреси, кратної 256 (границя сторінки).

По замовчуванню вирівнювання відбувається по границі параграфу.

Задавши ’клас’ сегменту можна забезпечити послідовне розташування сегментів у пам’яті. Клас сегменту – це будь-яка мітка, що розташована в лапках. Всі сегменти з однаковим класом розташовуються в пам’яті один за одним.

 

АРИФМЕТИЧНІ ОПЕРАЦІЇ

Арифметичні операції в Асемблері

Для виконання даної роботи слід розглянути наступні команди арифметики: ADD ADC INC SUB SBB DEC CMP NEG MUL DIV

Команди ADD і SUB виконують додавання й віднімання байтів або слів, що містять двійкові дані. Віднімання виконується у комп’ютері по методу додавання із двійковим доповненням: для другого операнда встановлюються зворотні значення бітів і додається 1, а потім відбувається додавання з першим операндом. У всьому, крім першого кроку, операції додавання й віднімання ідентичні. Можливі п’ять ситуацій:

ADD / SUB регістр-регістр;

ADD / SUB пам'ять-регістр;

ADD / SUB регістр-пам'ять;

ADD / SUB регістр-безпосереднє значення;




Дата добавления: 2014-12-19; просмотров: 71 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав