Последние публикации
стили и дизайн Что выгоднее: покупать горячую воду или ..
17-03-2014
секрет успеха Профессия: риэлтор
25-12-2013
разное Мегаталантливый Мэрилин Мэнсон
25-12-2013
рыбалка и охота баллистический маятник
12-07-2013
Название
Автор
Рубрика

Анекдот
Вовочка, не качайся на дедушке, он не для этого повесился.
компьютерные технологии
Язык Макроассемблера IBM PC
В пособии рассматривается язык макроассеблера для персональных ЭВМ типа IBM PC (язык MASM, версия 4.0) .

которые и будет реагировать команда условного перехода.


В MASM команды условного перехода имеют следующую форму: Jxx op где xx - одна или несколько букв, в сокращенном виде отражающие проверяемое условие (обычно в предположении, что перед этой командой находится команда сравнения) . Примеры некоторых мнемоник: JE - переход "по равно" (jump if equal) JL переход "по меньше" (jump if less) JNL - переход "по не меньше" (jump if not less) Особеностью всех машинных команд условного перехода является то, что они реализуют внутрисегментный относительный короткий переход, т.е. добавляют к счетчику команд IP свой операнд, рассматриваемый как знаковое число от -128 до 127. В MASM этот операнд всегда должен записываться как метка, которую ассемблер заменит на соответствующий сдвиг (см. выше) .


Такая особенность команд условного перехода вызывает неудобство при переходах на "дальние" команды. Например, если надо сделать переход при A M (обход команды JMP) JMP L ;меньше --> L (длинный переход) M:...


1.5.3 Команды управление циклом


В ПК есть несколько команд, упрощающих программирование циклов с заранее известным числом повторений. Применение этих команд требует, чтобы к началу цикла в регистр CX было занесено число шагов цикла. Сами команды размещаются в конце цикла, они уменьшают значение CX на 1 и, если CX еще не равно 0, передают управление на начало цикла. Например, найти S - сумму элементов массива X из 10 чисел-слов можно так: MOV AX, 0 ;начальное значение суммы (накапливается в AX) MOV SI, 0 ;начальное значение индексного регистра MOV CX, 10 ;число повторений цикла L: ADD AX, X[SI] ;AX: =AX+X[i] ADD SI, 2 ;SI: =SI+2 LOOP L ;CX: =CX-1; if CX 0 then goto L MOV S, AX ;S: =AX Помимо команды LOOP есть еще две "циклические" команды - LOOPZ и LOOPNZ (они имеют синонимичные названия LOOPE и LOOPNE) , которых кроме регистра CX проверяют еще и флаг нуля ZF; например, команда LOOPZ "выходит" из цикла, если CX=0 или ZF=1. Эту команду можно, например, использовать при поиске в массиве первого нулевого



Дата публикации: 15-06-2007
Прочитано: 7646 раз
Страниц: 28
-22-
[<][ 1 | ... | 22 | 23 | 24 | 25 | 26 | 27 | 28 ][>]

Дополнительно на данную тему
Компьютерные сети и телекоммуникации
Корпоративная сеть
Корпоративные ЛВС
Компьютерные сети
Turbo Vision
   
Рейтинг@Mail.ru
ENQ.ru © 2005-2012
Генерация страницы: 0.041 сек. и
11 запросов к базе данных за 0.003 сек.
Designed by ZmEi