ПредишенСледващото

Полетата удобно разделени от раздели.

Имената на данни, процедури, команди сегменти или етикети могат да се състоят от не повече от 255 латински букви или цифри, където първият символ трябва да се изисква писмо. По подразбиране името е смислено за първите 32 символи. Главни и малки букви асемблер може да варира или не варира (ключове: / ML, / MU и / MX). Tags машинни команди трябва да завършват с двоеточие.

Когато излъчвате всяко име се свързва с редица атрибути.

Това поле съдържа инструкция мнемониката на работата на машината, директор tivy или макроси. Главни и малки букви в операциите код монтажен мнемониката не се различават.

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

Ако няколко операнди обикновено са разделени с пета.

На асемблер програми са допустими няколко типа константи:

· Знак - поредица от цифри от 0 до 9;

· Hex - поредица от цифри шестнадесетична 0-9 и А до F или или F, завършващ с буквата Н или Н, трябва да бъде първият знак цифри;

· Осмичната - номера на последователност 0 до 7, като кулминацията букви Q, Q, О или О;

· Binary - номера на последователност 0 или 1, прекратени с буквата Б или В.

По-долу е типична структура на една проста програма на асемблер.

QUIT: ExitCode 0

Директива комин, dataseg codeseg и служат за изолиране на сегментите.

Макро startupcode състои инициализиране код, който осигурява зареждането на ДС и СС сегментни регистри.

макро ExitCode <код возврата> извършва приключване на програмата и прехвърлянето на управлението на околната среда. Незадължителен параметър, NY <код возврата> Тя трябва да връща стойност, която можете да проверите в отбора файловете на операционната система.

Директива край <метка точки входа> Той бележи края на текста про-грама и казва на асемблер, където да завърши превода. Затова директива край трябва да присъства във всеки един от про-грам. Факултативния <метка точки входа> Той обозначава указания, които трябва да започнат програмата.

<имя> DW <выражение>,<выражение>. и

<имя> DB <выражение>,<выражение>.

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

<выражение> То може да бъде постоянен, или ако стойността не е определено, можете да използвате символа въпросителен знак.

дизайн <число> мезонети (<выражение>,<выражение>. ) Ispol'uet-предава показания за повтаряне на последователност на изрази, дадени в скоби <число> време.

Лечение програми за DOS

Лечение програми в асемблер в DOS се състои от не-колко етапа:

· Излъчване на програми, използващи TASM асемблер;

· Run и проверявате програмите.

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

TASM [[] [[] [[]]]] [<ключи>]

Забележка. име на файла NUL, показва, че съответният файл не е създаден.

TASM за входни и изходни файлове използва следните настройки по подразбиране:

· Разширяване Източник на файла - ASM;

· Файл на обекта: същото име като на оригиналния файл разширение - OBJ;

· Име Обява файла - NUL, ако сте задали / L и / или LA - името на списъка файл със същото име като на оригиналния файл, ако е посочен или задайте / L и / LA, разширение по подразбиране името - LST;

· Препратка име на файла - NUL, ако зададете ключ / C - името на препратка файл със същото име като на оригиналния файл, ако е посочен или определен ключ / C, разширение по подразбиране името - CRF.

Assembler има различни режими на излъчване, определени с ключовете, като най-често се използва, са следните:

· / L и / LA - генерира списък на списъка на файловете или удължен;

· / C - за формиране на файл с препратка маса, Легнете-сок идентификатор модул източник посочва номера на програма линия, които съдържат определянето Тор;

· / ZI - поставен в обект модул пълна информация за отстраняване на грешки: идентификатори на данни и етикетите, номерата на редовете и др

TASM праймер / L / ЗИ

Broadcast PRIMER.ASM файлове, създадени PRIMER.LST списък на файлове и ако няма грешка, обект PRIMER.OBJ по делото. Файлът с предмет включва пълна информация за отстраняване на грешки.

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

tlink [[] [[] [[<библиотеки>]]]] [<ключи>]

TLINK за ​​входни и изходни файлове използва следните настройки по подразбиране:

· Обект на файла: разширение - OBJ;

· Изпълним файл име съвпада с името на разширението на обект на файла - EXE;

· Модул име план на файла - NUL, ако зададете ключ / M - име модул файл план съответства на името на файла, обект, ако е посочен или определен ключ / M, разширението на името по подразбиране - MAP.

Свръзката има различни начини на разпространение, постановката mye чрез бутони, като най-често се използва, са следните:

· / V - да се сложи в един изпълним изчерпателна информация за отстраняване на грешки: идентификатори данни и етикети, номерата на редовете и др

tlink праймер / M / V

Изграждане на обект PRIMER.OBJ файл. Execu-nyaemy файл ще има име - PRIMER.EXE, тя ще включва информация за отстраняване на грешки. файл ще бъде създаден с името на PRIMER.MAP модула план.

Стартирайте програмата за извършване може да бъде направено, като напишете в командния ред на името на програмата файл (разширение EXE AUC-свързващ по избор):

За да се движат при корекция на грешки, трябва да се работи за отстраняване на грешки с името на своите програмни файлове:

Използване на дебъгер TD

Без да претендира за описване на пълнота, да се даде описание на основите-ценни функции и TD Debugger способности.

Как да стартирате програмата под дебъгер

Работещи в рамките на програма дебъгер се извършва чрез набор от команден ред

Какво може и какво не може да дебъгер TD

· Трейс (засилване) - може да се извърши про-грама на един оператор, пропускане (или пропускане) в същото време призовава процедури и функции;

· Гранични - за изпълнение на програмата, посочена в точка на програмата;

· Промяна - Можете да промените съдържанието на променливите;

· Проследяване - можете да отпусне някои променливи и за проследяване на промените в стойностите им по време на изпълнение.

· Не може да компилирате вашата програма. За да направите това, трябва да имате компилатор или асемблер (например, TASM);

· И най-важното, за отстраняване на грешки не може да замени процес obdu-myvaniya. Turbootladchik е мощен инструмент, но в отсъствието на мисли, той не пощади нито време, нито усилия.

В модула (модул) се извежда текстово-за отстраняване на грешки моята програма. Можете да се придвижвате в текста, от програмата и да видите данните и кода.

Window CPU (CPU) показва текущото състояние на централния процесор (CPU). То съдържа пет панели (площи), в които:

· Разтоварване на паметта (обикновено сегмент данни);

· Съдържанието на регистрите на процесора;

· Съдържание на процесора знамена.

Местна менюто Watch Window (Alt + F10 или Ctrl + F10) съдържа следните елементи:

· Edit (Редактиране) ви позволява да редактирате израз в прозореца за часовници. Можете да промените факта, че има, или въведете нова стойност;

· Премахване (Изтриване) премахва от прозореца на часовници текущо избрания запис;

· Delete All (Изтриване на всички) изтрива от прозореца Часовници всички записи;

· Проверявайте (Тест) отваря квадратчето (прозорец инспектор), който показва съдържанието на текущата подчертава в записа на прозорец часовници;

· Промяна (Промяна) се променя стойността на маркираните записи в момента в прозореца на часовници на стойност, която сте написали в отговор на бързо.

Зареже прозорец (самосвал) се появява под формата на директно zhimoe съдържа области на паметта. (Този прозорец е еквивалентна площ на сметището на прозореца на процесора.) Можете да покажете данните под формата на символи, шестнадесетичен-dtsaterichnyh байтове, думи, двойни думи, или който и да е плаваща запетая формат. Този прозорец може да се използва за про-директен шоуто под формата на някои данни, които не се нуждаят от останалата част на прозореца на процесора. В този прозорец, от локалното меню съдържа команди, които ви позволяват да променя данните на vyvo-Сари, променят своя изходен формат, както и ДДС манипулирани информационните блокове.

Местна прозорец меню самосвал (Alt + F10 или Ctrl + F10) съдържа следните елементи:

· Display As (изход) - задава режима на сметище изход: байт, дума и т.н.

екрана на потребителя - се появява в програмата си. Този екран ще има точно същата форма като това би имало, ако сте Статус Затворен си програма без дебъгер (директно под DOS).

Можете да използвате този екран, за да проверите RIT, независимо дали това става вашата програма, и то съответства на това, което трябва да бъде на екрана. За да превключите на потребителя Екранът на сигнално изберете Window + Потребителят Screen (или натиснете Alt + F5).

Изпълнете команда (Изпълнение, F9) започва вашата програма да се изпълнява. Когато се появи някое от следните събития, управлението се предава на дебъгер:

· Вашата програма е завършил изпълнение;

· Установена прекъсване прекъсване на действието;

· Вие спира да тече, като натиснете Ctrl + Break.

Екип Отиди на курсора

Екип Отиди на курсора (Отиди на курсора, за F4) извършва про-грама на линията, където се намира курсора (в текущия прозорец или зона Модул Код прозореца CPU).

Екип на Трейс Into

Трейс Into команда (Трейс дълбочина, F7) изпълнява една линия на изходния код или машинно обучение. Ако текущият ред съдържа призив към процедура или функция, дебъгер-изпълва проследим тази процедура. Въпреки това, ако токът е около г-н CPU поле, след което работи една машина инструкция.

Command прекрача (Стъпка пропуснете, F8) изпълнява една линия на изходния код или машинно обучение, заобикаляйки Трейс фокусиране на наречената процедура или функция. Това обикновено се извършва един ред код. Въпреки това, ако текущия прозорец е CPU поле, а след това на само една машина инструкция.

Когато тази команда се изпълнява в продължение на една инструкция машина, Turbootladchik интерпретира някои инструкции, като един, дори и да доведе до прилагането на MULTI-кал инструкции:

· Покана - подпрограма повикване;

· Int - прекъсване повикване;

· Loop, Loopz, loopnz - управление на цикъла;

· Rep, repnz или repz, последвани CMPS инструкции, ДБТ, MOVs, СОКИ, КСН.

Екип Инструкция Трейс

Екип Инструкция Trace (инструкции Трейс, Alt + F7) ви и една изпълва инструкция. Може да се използва, когато искате да се проследи прекъсване, или когато сте в модула за прозорец и искате да се проследи процедурата или функцията, която се намира в модула без информация за отстраняване на грешки (например, библиотека съчетания).

Програма на отбора Reset

Програма на отбора Reset (Възстановяване на програма, Ctrl + F2) Reboot-zhaet дебъгва програма от вас диск.

Пример РАБОТА ИЗПЪЛНЕНИЕ

Като се има предвид масив от десет думи, съдържащи числа. Изискване etsya намери максималната стойност.

MASS ст, 10h, 20h, 30h, 5 часа, 40 часа, 15 часа, 20 часа 70 h 35h, 34h

ÖÈÊËÈ×ÅÑÊÈÅ È ÐÀÇÂÅÒÂËßÞÙÈÅÑß ÏÐÎÃÐÀÌÌÛ

Целта на тази работа - да се развият умения за разработване на прости програми цикъл в асемблер.

За да се развие състояние код може да се използва Кома редове СМР, тест. Освен това, условията на кодовете, произведени от Ариф-meticheskimi и логически инструкции.

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

Пример РАБОТА ИЗПЪЛНЕНИЕ

Като се има предвид масив от десет думи, съдържащи числа. Изискване etsya намери максималната стойност.

MASS ст, 10h, 20h, 30h, 5 часа, 40 часа, 15 часа, 20 часа 70 h 35h, 34h

Примери за използване на логически команди

Разположен на 3 и 0 бита в регистър AL, останалите битове не променят

или AL, 00001001b.

Reset 4 и 6 бита в регистъра ПВК, останалите битове не променят

и AL, 10101111b.

Обръщане на 4 и 2 бита в регистър AL, останалите битове не променят

XOR AL, 00010100b.

Отиди на етикет LAB ако има 4 битов регистър AL, в противен случай да продължи изпълнението на програмата

тест AL, 00010000b
jnz LAB
; продължавам
.
LAB:

Изчислява се броят на такива в един байт - регистрирай AL

Mov CX, 8
XOR BX, BX
LL: SHL AL, 1
JNC NO
вкл BX
NO: контур LL

Пример РАБОТА ИЗПЪЛНЕНИЕ

Като се има предвид масив от 10 байта. Всички байта са нулеви високи бита. Трябва всеки байт, съдържащ 1 в 0th малко, удължен до четен брой единици от инсталирането на 7-ия битови байтове, всеки байт, съдържащ 0 в 0th малко, за да добавите към нечетен брой единици от инсталирането на 7-ия битови байтове.

MB db 04h, 07h, 11h, 23h, 04h, 38h, 3FH, 2AH, 0DH, 34h

Mov CX, 10; CX - брои броя на повторенията

Mov AL, [BX]; обмисли следващия байт масив

тества AL, 00000001b; инсталиран, ако битът 0?

JZ BIT0CLR; Не, бит 0 се изчиства

; Бит 0 е настроено

тества AL, 0FFh; четен брой хора?

JP ОК; Да повече какво друго да правя

или AL, 80h; странно, дори и да се разшири

BIT0CLR :; бит 0 се изчиства

тества AL, 0FFh; четен брой хора?

JNP ОК; Вече не трябва да правите нищо

или AL, 80h; дори, странно допълнение към

Mov [BX], AL; Напиши промени масив от байтове

QUIT: ExitCode 0

1. Като се има предвид масив от 10 байта. Изчислява се броят на байтовете, в които презареждането на 6 и 4 бита.

2. Като се има предвид масив от 8 байта. Що се отнася до това като масив от 64 бита, за да преброите колко единици.

3. Като се има предвид масив от 8 байта. това отношение като масив от 64 бита, броят на дължината на най-дългите последователности единици.

4. Като се има предвид масив от 8 байта. това отношение като масив-Ing логически стойности x0 x1 x2 x3 x4 Х5 Х6 Х7 (вярно - не е нула бита в един байт, фалшиви - всички битове са нула) за да се изчисли логически VOR муле е = (х7

x6x3x1) V (x6x4x2x1

5. Като се има предвид масив от 5 байта. лекуващия го като масив от 10 тетради намерите "изключителни или" на всички 10 тетрадки.

6. Като се има предвид масив от 10 байта. Изчислете броя на байтовете в Koto-нулиране ryh 5 или 1 бита.

7. Като се има предвид байта като набор от логически стойности х7 x6 Х5 x4 x3 х2 x1 x0 (вярно - 1, фалшиво - 0), компютърна логическа-тират формула е = (х7

x6x3x1) V (x6x4x2x1

8. Като се има предвид масив от 10 байта. Изчислете броя байтове, в кото-ryh настроен 3 и 7 бита.

1. Каква е разликата между отборите тества DST, SRC и и DST, SRC?

2. Как да рестартирам пета малко променлива - Байт ББ?

3. Как да се определи на 5-ти малко променлива - Байт ББ?

4. Как да се обърнете малко променлива 5-ти - Байт ББ?

5. Как да се уверите, че имате малко променлива 5-ти - Байт ББ?

6. За проверка е четен или нечетен брой комплект битове в една променлива байт-BB?

7. Какви са условията на знамената са променени след изпълнението на команди и, или, XOR?

8. Каква е основната разлика между отборите на логически и аритметични смени?

9. Посочете максималния брой на битовете в операнд които могат да бъдат изтласкани само с една смяна на отбора?

10. В двойката линии
Mov CL, 8
"Shift" BL, CL
кои команди могат да бъдат заместени, а не "промяна" на съдържанието на BL не се променя?

11. В двойката линии
"Преместване наляво" BL, 1
"Десният смяна" BL, 1
кои команди могат да бъдат заместени вместо "изместване на ляво" и "дясно изместване" на съдържанието на BL не се променя?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!