Assembler в Делфи, статии, Делфи, статии за
Основната цел на тази книга, за да запълни празнините в оригиналната документация за Borland Delphi Developer, с целия програмен код, както и теория, е напълно съвместим с всички версии на Delphi.
Основна насока статия, е запознат с монтажа в Object Pascal. Въпреки това, ние няма да пропуснете тези аспекти на програмирането, които ще изискват обяснение за конкретните примери, дадени в тази статия.
Използването на Borland Assembler в Делфи
Преди да започнем, бих искал да се определи нивото на знания, необходими за правилното усвояване на този материал. Трябва да сте запознати с вградени инструменти за отстраняване на грешки в Делфи. Необходимо е също така да има представа за такива условия и вида на изпълнение (инстанция), нулев указател и разпределение на паметта. Ако нещо от горните се съмнявате, опитайте се да бъдете много внимателни и предпазливи при въплъщението на продукта в практиката. В допълнение, само 32-битов код ще бъдат обсъдени, така че компилаторът не е необходимо да се намали Delphi 2.0.
Защо да използвате асемблер? По мое мнение, Object Pascal, инструмент за генериране на бърз и ефективен код, но използването на асемблер в някои случаи за решаване на някои проблеми, по-ефективно. За цялата работа с Delphi, дойдох до заключението, че е необходимо използването на ниско ниво код в два от случаите.
(1) Обработка на голямо количество данни. Nb. В този случай ситуацията не е включена при използване на езика на заявката данни.
(2) В операцията по високоскоростен с дисплей подпрограми. Nb. Значение на използването на опростени процедури за почистване на Паскал, но не и външни библиотеки и DirectX.
В края на статията ще разгледаме примери, които ясно отразяват важността на тези критерии, както и не само кога и къде да се използва инлайн монтаж, но също така и как да се включат този код в Делфи.
Както видяхме, процесорът манипулира стойността на регистъра. Автоматична операция под кодовото добавяне на 10 до стойността на EAX регистър е както следва
Въпреки това, такъв запис е абсолютно разбираеми и, като следствие, не е подходящ за отстраняване на грешки в програмата. Така Assembler е просто представяне на машинни инструкции в по-удобна форма. Сега нека видим как ще изглежда добавянето на 10 до EAX представителство в съвкупност:
И тук е как стойността на vychitaenie EBX на EAX
За да се запази цифра, можете просто да го постави в друг регистър
и разбира се го вземе от там
Въпреки това, има един важен момент, който е на път да се забравя, че не е желателно. Тъй като регистър 32 битов (4 байта), а след това стойността му е писано директно в четирите клетки на паметта 1536, 1537, 1538 и 1539.
А сега нека да видим как компилаторът преобразува операциите с променливи в родния код. Да предположим, че имаме низ
Компилаторът не може да използва вида на линия
се дължи на факта, че най-малко един параметър на инструкцията за експлоатация трябва да се регистрирате. Ако се вгледате в линията
За променливите, типа на която е различна от цялото, всичко е сложно. Въпреки това, погледнете тази тема малко по-късно, а сега предлагам да се консолидират на теорията с практически примери.
По този начин, ние считаме първия пример. Веднага се извинявам за тривиалното, но там трябва да се започне.