Команды организации циклов на языке Ассемблер.
Для организации циклов используются и команды: LOOP, LOOPNE, LOOPE, JCXZ. При этом данные команды опираются на регистр счетчика CX.
Команда 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 – ближайший тип, переход осуществляется только по смещению в пределах текущего сегмента.
Типы перехода могут быть явно не указаны, в команде в этом случае он будет определяться компилятором самостоятельно.
Условный переходы. Инструкция условного перехода осуществляет переход в случае выполнения того или иного условия и определяется, как бит в регистре флагов, т.е. к моменту выполнения команды условного перехода необходимо выполнять команды проверки условия. Синтаксическая диаграмма аналогичная команде 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. Логические действия на языке Ассемблер.
Выполняются над операндами побитно. Логические операции выполняет процессор. Команды побитовых сдвигов. Бывают четырех видов: пример: 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|