КАТЕГОРИИ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) П Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военно дело (14632) Висока технологиите (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къщи- (47672) журналистика и SMI- (912) Izobretatelstvo- (14524) на външните >(4268) Informatika- (17799) Iskusstvo- (1338) История- (13644) Компютри- (11121) Kosmetika- (55) Kulinariya- (373) култура (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23,702) Matematika- (16,968) инженерно (1700) медицина-(12,668) Management- (24,684) Mehanika- (15423) Naukovedenie- (506) образование-(11,852) защита truda- (3308) Pedagogika- (5571) п Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) oligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97182) от промишлеността (8706) Psihologiya- (18,388) Religiya- (3217) с комуникацията (10668) Agriculture- (299) Sotsiologiya- (6455) спортно-(42,831) Изграждане, (4793) Torgovlya- (5050) превозът (2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596 ) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Telephones- (8441) Elektrotehnika- (4623) Мощност инженерно (12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Директива Определяне на данни




За описание на променливите, използвани в езика монтаж на директивите на детайлност на данните.

Директива DB (Дефиниране Byte, определи байт) определя размера на данни в байтове:

[<Име>] DB <операнд> {, <операнд>}

Натъкват директива DB, асемблер изчислява операнди и съхранява ценностите на последователни байта памет. Първият байт на дадено името, с което той може да бъде посочен по-късно.

Има два основни начина за определяне на операнди директива DB:

- неподготвен за първоначална стойност? (Знакът с неопределено значение);

- постоянна експресия на стойност между -128 и 255.

X DB?

Според тази директива, променливата X се дава един байт от паметта, в която нищо не е написано. Assembler помня адреса на променлива, а когато той се запознава с текста и да го замени с адреса (изпълнява име излъчване). Cell адрес разпределени променлива наречена X, наречена определяне на X (за разлика от съдържанието на адреса на клетката) името.

Според описанието на променливата асемблер определя колко байта са променливи в паметта. Тази сума се нарича типа на променливата. Стойност (адрес) и тип (размер) на променливата еднозначно дефинират определен името на клетката.

От същите адреси могат да започнат размер байт клетка, дума или двойна дума, така че освен първоначалните клетъчни адресите, обикновено трябва да знаят, както и резолюцията си. В асемблер там е оператор на тип:

ТИП <име>

Стойността на оператора е с размерите (в байтове) на клетки, разпределени за променливата с посоченото име. Ако променливата е описан от директивата за DB, то е за името на оператора е равно на 1. В езика на монтаж е стандартна константа с името и стойност BYTE 1:

ТИП X = байт = 1

За определяне на променливата с първоначална стойност като операнд в директива DB определен израз, който оценява асемблер, а стойността на които ще напиша в клетката памет. В най-общия случай, началната стойност на променливата на байт дефинира като брой на стойност от -128 до 255:

А DB 254; 0FEh

В DB -2; 0FEh (256-2 = 254)

За всяка една от директивите на монтажен премахва един байт и да го пише в посочения брой. Където отрицателни числа се записват като неподписан, и отрицателен, записана в допълнителен код.

Първоначалната стойност на променливата, можете да укажете характер, като напишете номера на кода или самият характер в кавички. Така например, в кодирането ASCII «*» код символ е 2AH, така че следващите две директиви са еквивалентни:

S DB 2AH



S DB "*"

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

С директива DB може да се опише чрез двоичен-десетични числа:

ОПАКОВКА DB 01h, 23h; броят 123 в пълен формат

UNPACK DB 1, 2, 3; номер 123 в празната формат

Да представлява номера в пълен формат е необходимо да се определят две цифри винаги в шестнайсетична система за излъчване на всяка цифра в тетрадка.

Друг по-удобен начин да се опише е да се използва ASCII-номер - рекорден брой формата на символен низ (например, "123"). В герой номера на ASCII от "0" до "9" са кодове от 30h до 39h. Следователно, превръщането на номера на символите в BCD се извършва чрез разпределяне нисш хапане код и обратната трансформация - чрез добавяне на 30h.

Използване на директивата DB може да бъде описан като масив. Например, един байт масив от 8 елементи с начална стойност 0 за всеки от тях може да бъде дефинирана, както следва:

А db 0, 0, 0, 0, 0, 0, 0, 0

Директива могат да бъдат написани по различен начин:

А DB 8 DUP (0)

Както се използва тук операнд структура повторение, в която е показан първи повторение фактор, след това функция дума DUP а (дубликат, копие) и в скоби повторяеми стойност:

к ПУП (P1, P2, ..., р-н)

където

к - постоянна експресия с положителна стойност, п ³ 1;

р аз - валидни насоки операнд DB (наличен отново повтарям дизайн).

Този запис е съкращение за к пъти повторени последователности, посочени в скоби операнди.

DUP структури Разполагане ви позволява да дефинирате многомерни масиви. Например, размерът на байт на матрицата е 5x10 (10 байта на линия, линии 5) има формата:

А DB 5 DUP (10 DUP (?))

Директива DW (Дефиниране Word, дефинират думата) дефинира променлива размер дума.

Помислете допустимите видове своите операнди.

Определяне на на неподготвен променлива:

А DW?

В пример сглобяването на присвоява на променлива Дума памет и променливата не получава от първоначалната стойност. Променлива Тип е 2, т.е. Той заема два байта.

Езикът на монтаж е стандартен постоянно с името и стойност ДУМА 2:

И TYPE = WORD = 2

Директивата за операнд може да бъде константен израз със стойност от -32 768 до 65 535.

В DW 1234b

В рамките на променливата В е дадена памет дума и пише номера на клетката, която се превръща в първоначалната си стойност. Що се отнася до директиви DB отрицателно число номера, съхранени в паметта като число без знак, и отрицателни числа - в допълнителния код. Следователно, числа, които могат да бъдат определени като операнди Директива за DW, трябва да бъде в интервала [-2 15 -1 16 февруари]. размер дума от номерата се съхраняват в паметта в обратен ред.

Както директиви операнд DW могат да бъдат определени адрес експресия, т.е. израз, чиято стойност е адреса:

А DB?

В DW A

В примера на асемблер запис дума избран под променлива В, променлива адрес, който се превръща в първоначалната стойност на променливата В.

От дясната страна директиви DW могат да посочат произволен брой операнди, както и повторението на структурата:

А DW 100, 3 DUP (?)

Директива DD (Дефиниране Double Word, определи двойна дума) дефинира променлива, която се обозначава с двойна дума. Променливата е от тип DWORD (постоянна стойност е броят 4).

Определяне на на неподготвен променлива:

А DD?

В рамките на променлива се разпределя двойна дума и променлива не получава от първоначалната стойност.

директива за операнд може да бъде постоянна експресия на стойност -2 31-2 32 -1.

В DD 123456h

Променливата получава първоначалната стойност, и тази стойност е записи монтажен в паметта в обратен ред.

Директива операнд може да бъде число в интервала от -2 15 до 16 февруари -1. Всички изрази се оценяват в областта на 16-битови цели числа (модул 2) 16. Така например, на директивата:

А DD 8000h + 8002h

първоначалната стойност на променливата А е числото 2, вместо 10002h номер.

Както директиви операнд DD могат да бъдат определени адрес изразяване. В този случай, операнда определя абсолютен адрес.

повторение дизайн DUP:

DW 10 ПУП (?), 12345h

Директива EQU равностойност (Равно, равно), за да се определи постоянен и има следния синтаксис:

<Име> об <операнд>

Директивата е подобно на описанието на константите в Паскал. Тя уточнява, че операнда е дадено име и изисква всички срещания на име в текста на асемблер програма се заменят с операнда. директива EQU е за информационни цели, а не за монтажен си записи в машина програма нищо. Затова директива EQU може да се използва навсякъде в програмата.

Ако правото на директивата е посочено името на регистъра, променлива или постоянна, а след това името на ляво обявен синоним на името и всички бъдещи събития в текста на името, програмата синоним асемблер ще бъде заменен от наименованието, обозначено в дясно, като например:

А DW?

В EQU A

С DW V; С еквивалент DW A

Имена, синоними обикновено се използват за въвеждане на етикети. Например, ако регистъра на акумулатор се използва за съхраняване на сумата, тя може да се дефинира като сума:

SUM EQU AX

и след това да се използва по-описателно име.

Операнд на директива EQU може да бъде константен израз, например:

N EQU 100

Чрез EQU 2 * N-1

Ако правото на директива EQU е константен израз, а от лявата име се нарича именувани константи. Стойността на тази константа е декларирана стойност на израза. Така например, от N - константа на стойност от 100, K - със стойност 199. Всички бъдещи събития в името на текст на постоянна събрание ще бъдат заменени от стойността на тази константа.

Операндът може да бъде всеки текст:

и EQU "грешка"

Тя е в този текст ще бъде заменен всяка поява на името в програмата. Тази директива вариант EQU обикновено се използва за въвеждане на по-кратък нотация за чести дълги текстове.

директива Задание определя константа с името, посочено в лявата ръка и числена стойност, равна на стойността на израза в дясно:

<Име> = <постоянна експресия>

За разлика от константите, определени от директива EQU, постоянно да промените стойността им, с посочване на различните части от текста на програмата на различни номера. Само числова константа може да се определи чрез възлагане на директивата, като например:

С = 10

А DW С; А DW е еквивалентно на 10

С = С + 2

В DB C; В DB 12 еквивалент