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

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

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 кг мяса...


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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

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

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

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

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