Шістнадцяткове уявлення

Двійкове: 0101 1001 0011 0101 1011 1001 1100 1110

Десятичне: 5 9 3 5 11 9 12 14

Оскільки для деяких чисел потрібно дві цифри, розширимо систему числення те щоб 10=A, 11=B, 12=C, 13=D, 14=E, 15=F. Таким чином отримаємо більш скорочену форму, яка представляє вміст вищезгаданих байт:

Така система числення включає «цифри» від 0 до F, так як таких цифр 16, вона називається шістнадцятковим уявленням.

Якщо трохи попрацювати з шістнадцятковим форматом, то можна швидко звикнути до нього. Розглянемо кілька простих прикладів шістнадцяткової арифметики. Слід пам'ятати, що після шістнадцяткового числа F слідує шістнадцяткове 10, що дорівнює десятковому числу 16.

Зауважте також, що шістнадцяткове 20 еквівалентно десятковому 32, шістнадцяткове 100 - десятковому 256 і шістнадцяткове 100 - десятковому 4096.

Шістнадцяткові числа записуються, наприклад, як шіст. 4B , двійкові числа якдв.01001011, а десяткові числа, як75 (відсутність будь-якого опису передбачає десяткове число). Для індикації шістнадцяткові числа в асемблерній програмі безпосередньо після числа ставиться символH, наприклад,25H (десяткове значення 37). Шістнадцяткове число завжди починається з деcятичної цифри від 0 до 9, таким чином,B8H записується як0B8H.

Сегменти

Сегмент кодів

Сегмент даних

Сегмент стеку

Ще один сегментний регістр, регістр додаткового сегмента (ES) призначений для спеціального використання. Послідовність регістрів і сегментів практично може бути інший.

Адреса в DS: 045F0

Якщо ви сумніваєтеся, то декодуйтекожне шест.F як двійкове 1111, врахуйте нульові біти та складіть значення для одиничних біт.

Розширення набору команд

Команди поділяються на такі групи:

u передачі даних;

u виклику підпрограми;

u повернення з підпрограми;

Типи операндів для кожного типу команд обговорюються у порядку:

u десятковий операнд;

u складовий операнд.

u непряма з попереднім індексуванням;

u непряма з наступним індексуванням.

Арифметичні команди

До цієї групи включені такі команди:

u додавання з прапором перенесення;

u віднімання при перестановці операндів;

u віднімання з прапором перенесення (позика);

u збільшення на 1;

u зменшення на 1;

u отримання доповнення до двох (негативного числа);

Логічні команди

Ця група включає такі команди:

u логічнеІ

u логічнеАБО

u логічнещо виключає АБО

u логічнеНЕ (доповнення)

u циклічний зсув

Вона включає також ті арифметичні команди (такі, як додавання з акумулятора із самим собою), які виконують логічні функції.

Команда передачі даних

Ця група включає команди:

Крім того, вона включає арифметичні команди (такі як віднімання акумулятора з самого себе), які заносять певне значення або вміст будь-якого регістра в акумулятор або інший регістр призначення, не змінюючи при цьому даних.

Команди переходу

Ця група включає такі види переходів:

Команди безумовного переходу

u Перейти побічно;

Команди умовного переходу

u Перейтиза рівності нулю;

u Перейти при нерівності нулю;

u Перейти, якщо значення дорівнюють;

u Перейти, якщо значення не рівні;

u Перейти, якщо значення позитивне;

u Перейти, якщо значення від'ємне;

u Переходи з урахуванням знака;

u Перейти, якщо більше (без урахування знака), тобто якщо операнди не рівні і при порівнянні не потрібна позика;

u Перейти, якщо значення не більше (без урахування знака), тобто якщо порівнювані операнди рівні або при їх порівнянні потрібна позика;

u Перейти, якщо значення менше (без урахування знака), тобто якщо порівняння без знака вимагає позики;

u Перейти, якщо значення не менше (без урахування знака), тобто якщо порівняння без знака не потребує позики.

Команди пропуску

Дійсна кількість байтів, що пропускаються, буде змінюватися, оскільки команди можуть мати довжину 1-3 байти.