Учене асемблер в Делфи

Учене асемблер в Делфи

Основната цел на тази книга, за да запълни празнините в оригиналната документация за Borland Delphi Developer, с целия програмен код, както и теория, е напълно съвместим с всички версии на Delphi.

Използването на Borland Assembler в Делфи

Преди да започнем, бих искал да се определи нивото на знания, необходими за правилното усвояване на този материал. Трябва да сте запознати с вградени инструменти за отстраняване на грешки в Делфи. Необходимо е също така да има представа за такива условия и вида на изпълнение (инстанция), нулев указател и разпределение на паметта. Ако нещо от горните се съмнявате, опитайте се да бъдете много внимателни и предпазливи при въплъщението на продукта в практиката. В допълнение, само 32-битов код ще бъдат обсъдени, така че компилаторът не е необходимо да се намали Delphi 2.0.

Защо да използвате асемблер?

По мое мнение, Object Pascal, инструмент за генериране на бърз и ефективен код, но използването на асемблер в някои случаи за решаване на някои проблеми, по-ефективно. За цялата работа с Delphi, дойдох до заключението, че е необходимо използването на ниско ниво код в два от случаите.

Работа големи обеми от данни. Nb. В този случай ситуацията не е включена при използване на езика на заявката данни.

В режим на работа с висока скорост с дисплей съчетания. Nb. Значение на използването на опростени процедури за почистване на Паскал, но не и външни библиотеки и DirectX.

В края на статията ще разгледаме примери, които ясно отразяват важността на тези критерии, както и не само кога и къде да се използва инлайн монтаж, но също така и как да се включат този код в Делфи.

Какво е Assembler?

Както видяхме, процесорът манипулира стойността на регистъра. Автоматична операция под кодовото добавяне на 10 до стойността на EAX регистър е както следва

Въпреки това, такъв запис е абсолютно разбираеми и, като следствие, не е подходящ за отстраняване на грешки в програмата. Така Assembler е просто представяне на машинни инструкции в по-удобна форма. Сега нека видим как ще изглежда добавянето на 10 до EAX представителство в съвкупност:

Имайте предвид, че аз използвах няколко бинарни операции. Тези операции също се определят директно в обекта Pascal.

* Забележка от Jin X

Глупости! На първо място, на параметрите трябва да се регистрира само в много редки случаи (например при четене / писане от / до пристанището: от 20 ч, ал), и второ, Delphi7 компилатор генерира точно Mov граф, 12345678h използване Брой: = $ 12345678 , Но! Когато се броят: = 0, генерирана пара XOR EAX, EAX + Mov граф, EAX. Освен това, само за да спестите памет (например запис е по-кратък в представителството на машината).

** Забележка от Jin X

той също не е вярно, компилаторът върши много по-просто: вкл граф

Случайни материали:

търсене Yandex

Въпроси за Delphi

Delphi език

Тагове

Карта на сайта