вторник, 24 мая 2011 г.

Макросы это классно

Первое моё знакомство с макросам было случайным. Я обладаю плохим свойством засыпать за чтением учебников. Поэтому учебники я не читаю, и впервые узнал про макросы от преподавателя, который посмотрел что я в сотый раз пишу цикл по 2 переменным и посоветовал мне создать макрос.
Оказалось теперь с помощью
 #define F for(i=0;i<n;i++)
я могу вместо обыкновенного цикла писать просто буковку F. Любопытно также то что Си вполне поддерживает кирилицу в макросах, так что можно по извращатся и набить что-то типа 
#define сделать_10_раз for (i=0; i<10;i++)
Вообще можно весёлый исходник составить.
А теперь макросы в ассемблере, они мне невероятно облегчили жизнь.
Как я задолбался с вечной отладкой и выводом символов порчей регистров, и так далее, но вот ВНЕЗАПНО наткнулся на макрос.
И теперь вместо

push si
push ax
push dx
tabl db '0123456789'
mov si,A
mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,tabl[si]
int 21h
mov ah,2
mov dl,10
int 21h
pop dx
pop ax
pop si 

Я пишу просто
ToVisual A
где A - то число которое мне надо отобразить.
Классно ещё то что макросам можно сообщать параметры. Да, согласен. Процедуры лучше макросов по занимаемому месту, но по скорости работы макросы выигрывают. Макрос - простая замена текста. Теперь мои программы даже на ассемблере гораздо больше человечны.






















1 комментарий: