Статьи по Assembler


@Struct.inc для mycall (ассемблер)


 

Это файл структурных макросов для приложения MyCall на ассемблере. Этот файл в текстовом формате вместе со всеми остальными файлами, необходимыми для компиляции приложения MyCall, содержится в zip-файле mycallab.zip (15913 байт). Имеется также Инструкция программиста.

Для получения комментариев щелкaйте по тексту или пользуйтесь групповым управлением:

if(dhtml){document.write("Все комментарии: [+][-]    Открывать: [несколько]");}

 


;Этот прием совместно с завершиющим ENDIF позволяет предотвратить

;ошибочное многократное включение файла @struct.inc в проект

IFNDEF @@struct_inc

@@struct_inc=1;


;Замена штатного написания структурных операторов MASM с лидирующей точкой

;на написание с лидирующим @. Повышает читаемость листингов:

;- зритильно выравнивает левый край записи, так как плотность символа @ сравнима

;с плотностью букв, чего не скажешь о точке

;- позволяет легче обнаруживать взглядом структурные операторы, так как символ @

;хорошо заметен в потоке текста

@if equ <.if>

@while equ <.while>

@break equ <.break>

@endif equ <.endif>

@endw equ <.endw>

@else equ <.else>

@elseif equ <.elseif>

@repeat equ <.repeat>


;Пара макросов, позволяющих сохранять в стеке произвольное количество регистров.

;Это очень удобно. Пара команд процессора pusha/popa, сохраняющая все регистры разом,

;применима далеко не всегда, так как восстанавливает все регистры, в том числе и те,

;содержимое которых следовало бы оставить без восстановления. А применять цепочки

;команд push и pop некрасиво - и так ассембленый листинг вытянут в длину.

;Предлагаемые макросы позволяют записывать сохраняемые регистры в строку.

;Причем порядок регистров в обоих макросах одинаков, например: @push eax,ecx,esi и

;@pop eax,ecx,esi. Это позволяет при наборе формировать команду @pop путем

;копирования строки команды @push с последующей заменой слова @push на @pop. Таким

;образом существенно снижается количество труднообнаружимых ошибок, вроде




- Начало -  - Назад -  - Вперед -



Книжный магазин