it-place.net > Уроци > Други
Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Асемблер за начинаещи: Глава 4 - Програма по лесния начин...
  1. Макроси - съвсем малко теория...
  2. Първо пишем, после обясняваме
  3. Първо пишем, после обясняваме-2
  4. Първо пишем, после обясняваме-3
  5. Заключение
     
Автор  johnfound (10.06.2004 17:17)  съобщение до автора
Погледнат  4593 пъти  добави към любими
Оценка  добави коментар
Гласове  1  изпрати на приятел
Коментари  (1)  абонирай се за Други
    Страница 1 / 5

 



    В тази глава ще се върнем отново на първата програма, която написахме и ще видим как можем да я напишем буквално само на няколко реда. В края на краищата това е наистина една много малка програмка и защо трябва да правим нещата трудно, когато можем да ги правим лесно.
   
1. Макроси - съвсем малко теория...

    Макросите са един изключително мощен инструмент при писане на асемблер.

    За да разберем как работи цялата работа, още отначало трябва да възприемем правилен подход към макросите. И той е: "Макросите са просто начин да вмъкваме автоматично текст, в сорса на програмата."

    Нищо повече, просто там където трябва да напишем много еднообразни редове текст, макросите го правят само с един ред. По време на компилацията, първата работа на асемблера е да замести името на макроса със текста, който макроса генерира. След това се компилира именно сорса със вече заместените макроси. Ето и един елементарен пример, за да ви стане ясно:

CODE
1
2
3
4
5
6
7
8
; дефиниция на макрос.
macro myname arg1 {
 
db 'My name is ', arg1, '.', 0
}

; използване на макрос.
   
myname 'John Found'
   
myname 'Петър Петров'

Този сорс ще се компилира на две стъпки - първо компилаторът ще замести навсякъде макросът "myname" със текста от дефиницията на този макрос. Забележете, че е възможно предаването на параметри към макроса, които се заместват в текста който трябва да се генерира.

Резултатът след заместването ще бъде следният сорс:
CODE
1
2
      db 'My name is ', 'John Found', '.', 0
     
db 'My name is ', 'Петър Петров', '.', 0

    След това се компилира именно този текст. Разбира се,с използването на макроси може да се правят много по-сложни неща, отколкото даденият пример, но винаги става въпрос за генериране на текст, който иначе ще е досадно да се пише на ръка.

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

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

    Предназначението на тази глава е да покаже как с използването на стандартната макро библиотека на FASM може да се улесни писането на програми за Windows.



  Следваща страница >> 


Ключови думи: асемблер начинаещи програма


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: johnfound  
Занимавам се с програмиране от 1983 година. Експерт по програмиране на Delphi и Assembler. Разбира се понякога работя и на PHP, Perl и др.под. В момента се занимавам с програмиране на автоматизирани системи за производство в голяма немска фирма в България. От 2003г започнах проект с отворен код, целта на който е разработката на съвременна среда и средства за програмиране на асемблер под Windows, конкурентна на езиците от високо ниво. Подробности за проекта можете да намерите на: http://fresh.flatassembler.net
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Сорсовете излизат вече по-добре, но ако ги копирате директно от страницата, най-вероятно ще получите грешки при компилацията. Това се дължи на факта, че енджина на сайта слага по един допълнителен празен ред след всеки ред от сорс кода и редовете са с продължение (завършват със "\") няма да могат да се свържат правилно със следващият ред при компилацията.

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

  johnfound на 10.06.2004 23:13

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008