Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Model flat, stdcall





option casemap: none

Includelib kernel32.lib

Includelib kernel32.inc

Includelib windows.inc

Includelib user32.inc

Includelib user32.lin

Date

z dd “ ”, 13, 10

zsize db ($-z)

nz db “ne chislo null”, 13, 10

nzsize dd ($-nz)

Digit dd 1

cwritten dd?

stdout dd?

Code

start:

Invoke GetStdHandle, STD_OUTPUT_HANDLE

Mov stdout, eax

.IF digit ==0

Invoke WriteConsoleA, stdout, ADDR z, zsize, ADDR cwritten, NULL

ELSE

invoke WriteConsoleA, stdout, ADDR nz, nzsize, ADDR cwritten, \

NULL

ENDIF

Invoke ExitProcess, 0

End start

 

В операциях сравнения могут использоваться и другие условия (аналогичные языку С):

! = не равно;

< меньше;

> больше;

=< меньше или равно;

=> больше или равно.

Следует отметить, что директивы и.ELSE не являются инструкциями процессора. Поэтому компилятор ассемблера преобразут их в настоящие инструкции cmp, jnz, jmp и другие.

Замечание. В ассемблере существует два типа сравнения: для чисел со знаком используются инструкции jg и jl, и для беззнакового сравнения ja и jb.

Высокоуровневая директива.IF по умолчанию используется для сравнения беззнаковых чисел. Для того чтобы сравнивать числа со знаком следует пометь одно из сравниваемых чисел операторами SDword PTR (для двойного слова), Sword PTR (для слова) или Sbyte PTR (для байта).

Например:

.IF SDWORD PTR digit> 0

При ассемблировании использованная в примере директива преобразуется в инструкцию jle (если меньше или равно – перейти).

Ниже приведен пример использования высокоуровневых директив. Проанализировать массив данных из 16 элементов. Подсчитать и вывести на экран количество элементов, которые по значению находятся в середине диапазона от 32 до 128.

 

Текст программы:

 

 

.686; директива определения типа микропроцессора

.model flat, stdcall; задание линейной модели памяти

option casemap: none; отличие малых и больших букв

Include windows.inc

Include kernel32.inc

Include fpu.inc

Include user32.inc

Include msvcrt.inc

Includelib user32.lib

Includelib kernel32.lib

Includelib msvcrt.lib

Includelib fpu.lib

.data; директиваопределения данныx

_c dd 10; число элементов массива

Sum dd 0

op1 dd 32; дапазоны вводимых в массив чисел

op2 dd 128; дапазоны вводимых в массив чисел

frmt db " %d", 0

buf db 30 dup(?)

stdout DWORD?

stdin DWORD?

cRead dd?

temp dd?

Mas1 dd 41 dup(0)

st1 db " Vvesty masiv: "

st2 db " Вывод числа элементов массива в диапазоне (32, 128)! ", 0

St3 db 10 dup(0)

ifmt db " количество = %d", 0

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

_start:

lea esi, mas1; загрузка адреса начала массива

Mov ecx, _c

m1:

Mov ebx, ecx

Invoke GetStdHandle, STD_OUTPUT_HANDLE

Mov stdout, eax

Invoke GetStdHandle, STD_INPUT_HANDLE







Дата добавления: 2014-11-10; просмотров: 678. Нарушение авторских прав; Мы поможем в написании вашей работы!




Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

Studopedia.info - Студопедия - 2014-2026 год . (0.008 сек.) русская версия | украинская версия