Шестнадесетично представяне

Двоично: 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.

Имайте предвид също, че шестнадесетичен шрифт е еквивалентен на десетична 32, шестнадесетичен е еквивалентен на десетична 256, а шестнадесетичен 100 е еквивалентен на десетична 4096.

Шестнадесетичните числа се изписват например като полюс. 4В, двоични числа като dv.01001011, и десетични числа като 75 (липсата на каквото и да е описание предполага десетично число). За да посочите шестнадесетични числа в програмата на асемблера, веднага след числото се поставя символът З., напр, 25H (десетична стойност 37). Шестнадесетичното число винаги започва с десетична цифра от 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 boolean И

u boolean ИЛИ

u boolean изключително ИЛИ

u boolean НЕ (допълнение)

u циклично изместване

Включва и онези аритметични инструкции (като добавяне от акумулатора към себе си), които изпълняват логически функции.

Команди за пренос на данни

Тази група включва команди:

В допълнение, той включва аритметични инструкции (като изваждане на акумулатор от себе си), които съхраняват определена стойност или съдържанието на регистър в акумулатор или друг регистър на местоназначението, без да променят данните.

Команди за скок

Тази група включва следните видове преходи:

Безусловни команди за скок

u Скочи непряко;

Команди за условен скок

u Скок, когато е равен на нула;

u Скочи, когато не е равно на нула;

u Направете, ако стойностите са равни;

u Направете, ако стойностите не са равни;

u Направете, ако стойността е положителна;

u Направете, ако стойността е отрицателна;

u Преходи с отчитане на знака;

u Прескачане, ако е по-голямо (без знак), т.е. ако операндите не са равни и сравнението не изисква заем;

u Направете, ако стойността не е по-голяма от (без оглед на знака), т.е. ако сравнените операнди са равни или се изисква заем при сравняването им;

u Прескачане, ако стойността е по-малка (без знак), т.е. ако неподписаното сравнение изисква заем;

u Направете, ако стойността е най-малко (без знак), т.е. ако неподписаното сравнение не изисква заемане.

Пропуснете командите

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