Команды управления процессором 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команды управления процессором



за исключением ESC являются однобайтовыми и могут быть разделены на две группы: команды, изменяющие содержимое регистра флагов, и команды, предназначенные для работы с внешними устройствами и не воздействующие на флаги.

 

 


Команды обработки строк

Все команды обработки строк символов имеют длину один байт. Бит 0 показывает операцию с байтом (бит 0=0) или словом (бит 0=1).

 

Пример: movsw

 

Пример: rep movsw

 


Типы данных.

 

Простые типы данных в ассемблере:

 

Синтаксис декларирования данных в ассемблере следующий:

<имя>             <директива>       <выражение>

<имя> - некоторое символическое имя метки или ячейки памяти в сегменте данных, используемое в программе;

<директива> - зарезервированное слово для указания типа объявляемых данных;

<выражение> - может содержать константу или «?» (неопределенное значение).

Таким образом:

 

Определение последовательности повторяющихся данных:

выражение1 DUP (выражение2)

 

ЕСЛИ

выражение2 =?

ТО это неинициализируемые данные

 

ДИРЕКТИВА ОПРЕДЕЛЕНИЯ БАЙТА (DB)

 

Из различных директив, определяющих элементы данных, наиболее полезной является DB (определить байт). Символьное выражение в диpективе DB может содержать строку символов любой длины, вплоть до конца строки.

Числовое выражение в директиве DB может содержать одну или более однобайтовых констант. Один байт выражается двумя шестнадцатеричными цифpами. Наибольшее положительное шестнадцатеричное число в одном байте это 7f, все "большие" числа от 80 до ff представляют отрицательные значения. В десятичном исчислении эти пределы выражаются числами +127 и -128.

 

ДИРЕКТИВА ОПРЕДЕЛЕНИЯ СЛОВА (DW)

 

Директива DW определяет элементы, которые имеют длину в одно слово (два байта). Символьное выражение в DW ограничено двумя символами, которые ассемблер представляет в объектном коде так, что, например, 'pc' становится 'cp'. Для определения символьных строк директива DW имеет ограниченное применение.

Числовое выражение в DW может содержать одно или более двухбайтовых констант. Два байта представляются четырьмя шестнадцатеричными цифрами. Наибольшее положительное шестнадцатеричное число в двух байтах это 7fff; все "большие" числа от 8000 до ffff представляют отрицательные значения. В десятичном исчислении эти пределы выражаются числами +32767 и -32768.

Для форматов директив DW, DD и DQ ассемблер преобразует константы в шестнадцатеричный объектный код, но записывает его в обратной последовательности.

Таким образом, десятичное значение 12345 преобразуется в шестнадцатеричное 3039, но записывается в объектном коде как 3930.

 

ДИРЕКТИВА ОПРЕДЕЛЕНИЯ ДВОЙНОГО СЛОВА (DD)

 

Директива DD определяет элементы, которые имеют длину в два cлова (четыре байта). Числовое выражение может содержать одну или более констант, каждая из которых имеет максимум четыре байта (восемь шестнадцатеричных цифр). Наибольшее положительное шестнадцатеричное число в четырех байтах это 7fffffff; все "большие" числа от 80000000 до ffffffff представляют отрицательные значения. В десятичном исчислении эти пределы выражаются числами +2147483647 и -2147483648.

Ассемблер преобразует все числовые константы в директиве DD в шестнадцатеричное представление, но записывает объектный код в обратной последовательности.

Таким образом, десятичное значение 12345 преобразуется в шестнадцатеричное 00003039, но записывается в oбъектном коде как 39300000.

Символьное выражение директивы DD ограничено двумя символами. Ассемблер преобразует символы и выравнивает их слева в четырехбайтовом двойном слове в объектном коде.

 

ДИРЕКТИВА ОПРЕДЕЛЕНИЯ УЧЕТВЕРЕННОГО СЛОВА (DQ)

 

Директива DQ определяет элементы, имеющие длину четыре слова (восемь байт). Числовое выражение может содержать одну или более констант, каждая из которых имеет максимум восемь байт или 16 шестнадцатеричных цифр. Наибольшее положительное шестнадцатеричное число - это семерка и 15 цифр f. Для получения представления о величине этого числа, покажем, что шестнадцатеричное 1 и 15 нулей эквивалентен следующему десятичному числу:

1152921504606846976

Обработка ассемблером символьных строк в директиве DQ aналогично директивам DD и DW.

 

ДИРЕКТИВА ОПРЕДЕЛЕНИЯ ДЕСЯТИ БАЙТ (DT)

 

Директива DT определяет элементы данных, имеющие длину в десять байт. Назначение этой директивы связано с "упакованными десятичными" числовыми величинами. По директиве DT генерируются различные константы, в зависимости от версии ассемблера.

 

Константные выражения.

 

Символьные строки.

 

Символьная строка используются для описания данных, таких как, например, имена людей или заголовки страниц. Содержимое строки oтмечается одиночными кавычками, например, 'pc' или двойными кавычками - "pc". Ассемблер переводит символьные строки в объектный код в обычном формате ASCII.

Символьная строка определяется только директивой DB, в котоpой указывается более двух символов в нормальной последовательности слева направо. Следовательно, директива DB представляет единственно возможный формат для определения символьных данных.

 

Целые числа:

[ знак ] последовательность_цифр [ признак_системы_счисления ]

Признак системы счисления (СС):

1. B -двоичная,

2. Q или O - восьмеричная,

3. D - десятичная,

4. H - шестнадцатеричная(если число начинается с цифр A..F, то впереди должна быть вставлена цифра 0).

Например:

 

42q

00100010b

22h

34d

34

0A34h

 

       По умолчанию в ASM86 считается обычно десятичная. В MACRO-11 - восьмеричная. Умалчиваемая система счисления может быть переопределена директивой .RADIX.

Например:

RADIX     8

 

Вообще, числовые константы используются для арифметических величин и для aдресов памяти. Для описания константы кавычки не ставятся. Ассемблер преобразует все числовые константы в шестнадцатеричные и записывает байты в объектном коде в обратной последовательности - справа налево. Ниже показаны различные числовые форматы.

 

Десятичный формат.

 

Десятичный формат допускает десятичные цифры от 0 до 9 и обозначается последней буквой d, которую можно не указывать, например, или 125d. Несмотря на то, что ассемблер позволяет кодирование в десятичном формате, он преобразует эти значения в шестнадцатеричный объектный код. Например, десятичное число 125 преобразуется в шестнадцатеричное 7d.

 

Шестнадцатиричный формат.

 

Шестнадцатиричный формат допускает шестнадцатеричные цифры от 0 до f и обозначается последней буквой h. Так как ассемблер полагает, что с буквы начинаются идентификаторы, то первой цифрой шестнадцатеричной константы должна быть цифра от 0 до 9. Например, 2eh или 0fffh, которые ассемблер преобразует соответственно в 2e и ff0f (байты во втором примере записываются в объектный код в обратной последовательности).

 

Двоичный формат.

 

Двоичный формат допускает двоичные цифры 0 и 1 и обозначается последней буквой b. Двоичный формат обычно используется для более четкого представления битовых значений в логических командах and, or, xor и test. Десятичное 12, шестнадцатеричное c и двоичное 1100b все

генерируют один и тот же код: шестнадцатеричное 0c или двоичное 0000 1100 в зависимости от того, как вы рассматриваете содержимое байта.

 

Восьмеричный формат.

 

Восьмеричный формат допускает восьмеричные цифры от 0 до 7 и обозначается последней буквой q или o, например, 253q. На сегодня восьмеричный формат используется весьма редко.



Поделиться:


Последнее изменение этой страницы: 2021-06-14; просмотров: 87; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.230.107 (0.016 с.)