и pushr, за одним исключением:
;Работает так же, как и pushr, за одним исключением: очередность проверки ;обратная. Это позволяет программисту не менять очередности упоминания ;параметров при использовании макроса в программе. ;==================================================================== popr MACRO R1,R2,R3,R4,R5,R6,R7,R8 IFNB <R8> pop R8 ENDIF IFNB <R7> pop R7 ENDIF IFNB <R6> pop R6 ENDIF IFNB <R5> pop R5 ENDIF IFNB <R4> pop R4 ENDIF IFNB <R3> pop R3 ENDIF IFNB <R2> pop R2 ENDIF IFNB <R1> pop R1 ENDIF ENDM ;#################################################################### ;
Вариант SECOND
;//////////////////////////////////////////////////////////////////// ;
Вспомогательные макросы
;==================================================================== makevar MACRO name,ext,val ;формирует имя операнда &name&ext EQU
ENDM
makevarn MACRO name,ext ;формирует команду push push &name&ext ENDM
makevarm MACRO name,ext ;формирует команду pop pop &name&ext ENDM ;==================================================================== ;
Макрос pushr
;В отличие от варианта First, макрос производит опрос параметров в цикле, ;построенном на директиве IRP. Благодаря этому больше не существует ;ограничения на число параметров. ;==================================================================== pushr MACRO args ;синтаксис указания параметров: <eax,ebx,ecx,...> fcnt=0 ;создание списка операндов IRP s,&args fcnt=fcnt+1 makevar t1,%fcnt,s ENDM fcnt=0 ;создание набора команд push операнд
IRP s,&args fcnt=fcnt+1 makevarn t1,%fcnt ENDM ENDM ;==================================================================== ;
Макрос popr
;==================================================================== popr MACRO args ;синтаксис указания параметров: <eax,ebx,ecx,...> fcnt=0 ;создание списка операндов IRP s,&args fcnt=fcnt+1 makevar t2,%fcnt,s ENDM IRP s,&args ;создание набора команд pop операнд
makevarm t2,%fcnt fcnt=fcnt-1 ;знак "-" обеспечивает обратный порядок следования команд! ENDM ENDM
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий