Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Команды организации циклов на языке Ассемблер.




Для организации циклов используются и команды: LOOP, LOOPNE, LOOPE, JCXZ. При этом данные команды опираются на регистр счетчика CX.

 

команда LOOP

Команда LOOP.

Команда LOOP эквивалентна следующим командам:

DEC CX // уменьшение CX на 1

JNZ МЕТКА // переход в случае CX=0

пример:

MOV CX, 10h

MOV AH, 1h

LB1: INT 21h

LOOP LB1

Команда LOOPNE.

Предназначена для анализа не только значения CX, но и флага PF.

Команда JCXZ.

Позволяет осуществить переход только в том случае если значение регистра CX=0.

Используется либо для предварительной проверки значения CX либо для выхода из цикла в произвольной точке его тела.

пример:

MOV CX, 10h?

MOV AH, 1

JCXZ LB2:

LB1: INT 21h

LOOP LB1

LB2:

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

1. Безусловный переход.

Осуществляется командой JMP, с указанием метки, на которую будет осуществляться переход. В зависимости от типа перехода после мнемоники JMP может осуществляться переход этих типов: а) SHORT – точка перехода задается в виде восьми битного смещения со знаком, который будет суммировать. Преимущество: адресная часть сокращается до байта, недостаток: переход всего на 127 байт.

б) FAR – переход осуществляется по абсолютному адресу заданному сегментом и смещением. Преимущество: перемещается в любой сегмент, недостаток: большая адресная часть пространства. в) NEAR – ближайший тип, переход осуществляется только по смещению в пределах текущего сегмента.

мнемоника условие флаги
JB/JNAE если меньше CF=1
JBE/JNA если меньше или равно CF=1 и ZF=1
JAE/JNB если больше или равно 0 CF=0
JA/JNBE если больше CF=0 и ZF=0
JE/JZ если ZF=1 ZF=1
JNE/JNZ если ZF=0 ZF=0
JL/JNGE если SF=OFF SF=OF
JLE/JNLE если ZF=1 и SF=OF ZF=1 и SF=OF
JP/JPE если четно PF=1
JNP/JPO если нечетно PF=0
JS если знак - SF=1
JNS если знак + SF=0
JC если перенос CF=1
JNC если без переноса СА=0
JO если переполнение OF=1
JNO если без переполнения OF=0

Типы перехода могут быть явно не указаны, в команде в этом случае он будет определяться компилятором самостоятельно.

Условный переходы.

Инструкция условного перехода осуществляет переход в случае

выполнения того или иного условия и определяется, как бит в регистре флагов, т.е. к моменту выполнения команды условного перехода необходимо выполнять команды проверки условия. Синтаксическая диаграмма аналогичная команде JMP.

пример:

MOV AH, 1

LB2: INT 21h

CMP AL, 'A' (41h)

JE LB1

JMP LB2

LB2: MOV

 

прим.: команда CMP позволяет сравнить два числа с помощью вычитания, при этом результат не сохраняется, а суммируются только флаги.

 

 

27. Логическая организация файла.

Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 1.3 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины.

Рис. 1.3. Способы логической организации файлов

Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей.

 

 

28. Логические действия на языке Ассемблер.

Направление С влево вправо
через бит переноса С RCL RCR
циклически ROL ROR

Выполняются над операндами побитно. Логические операции выполняет процессор.

Команды побитовых сдвигов.

Бывают четырех видов:

пример: MOV AX, 11h 0001 0001 0

MOV CH, 5h 0010 0010 0

ROR AX, CH

 

Команды логических сдвигов.

Выполняют перемещение операнда на один разряд вправо/влево. При этом циклического переноса вытесняемых разрядов в начало/конец не происходит. Сдвиг может происходить только на один разряд.

пример: MOV DX, 5h

SHL DX, 1h

SHR DX, 1h

· AND

· OR

· XOR

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...