Win32asm обучение

Лучшие услуги сантехников сантехуслуги.

Урок 10 - Преимущества MASM


        Win32Asm Tutorial

       

назад 10- Преимущества MASM вперед

10.0 - Преимущества masm

Если вы не используете masm, то можете пропустить этот раздел и попробовать преобразовать все примеры, или прочитать это и пробовать убедить себя, использовать masm. Конечно это ваш собственный выбор. Но masm делает действительно ассемблер намного проще.


10.1 - Конструкции сравнения и повтора

Masm имеет некоторый синтаксис псевдовысокого уровня, чтобы легко создавать конструкции сравнения и повтора:

.IF, .ELSE, .ELSEIF, .ENDIF

.REPEAT, .UNTIL

.WHILE, .ENDW, .BREAK

.CONTINUE

If

Если у вас есть опыт в языках программирования, возможно вы видели что-то вроде if/else конструкций:

.IF eax==1

;eax равен 1

.ELSEIF eax=3

; eax равен 3

.ELSE

; eax не равен 1 и 3

.ENDIF

Эта конструкция очень полезна. Вам не нужно вставлять сравнения и переходы, а только вставте директиву .IF (не забудьте точку перед .IF и .ELSE и т.д.). Вложенности if позволяются:

.IF eax==1

.IF ecx!=2

; eax= 1 и ecx не равно 2

.ENDIF

.ENDIF

Это может быть сделано проще:

.IF (eax==1 && ecx!=2)

; eax = 1 и ecx не равно 2

.ENDIF

А вот и операторы, которые вы можете использовать:

== равно
!= не равно
> больше
< меньше
>= больше или равно
<= меньше или равно
& проверка бита
! инверсия ( NOT )
&& логическое 'И' ( AND )
|| логическое 'ИЛИ' ( OR )
CARRY? флаг переноса (cf) установлен?
OVERFLOW? флаг переполнения (of) установлен?
PARITY флаг паритета (pf) установлен?
SIGN? флаг знака (sf) установлен?
ZERO? флаг нуля (zf) установлен?

Repeat

Эта конструкция выполняет блок, пока условие не истинно:

.REPEAT

; код здесь

.UNTIL eax==1

Эта конструкция повторяет код между repeat и until, пока eax не станет равным 1.

While

Конструкция while это инверсия конструкции repeat. Она выполняет блок, пока условие истинно:

.WHILE eax==1

; код здесь

.ENDW

Вы можете использовать директиву .BREAK, чтобы прервать цикл и выйти.




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



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