Шістнадцяткове уявлення
Двійкове: 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 байти.