мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
asm:lesson5 [13/10/2010 19:53] – создано arabusov | asm:lesson5 [14/10/2010 15:17] (текущий) – arabusov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Урок 5 ====== | ====== Урок 5 ====== | ||
===== Логика и организация программы ===== | ===== Логика и организация программы ===== | ||
- | До этой главы примеры выполнялись последовательно команда | + | На прошлом уроке для |
- | за командой. Однако, программируемые задачи редко бывают так | + | требования, |
- | просты. Большинство программ содержат ряд циклов, | + | |
- | несколько | + | |
- | требования, | + | |
нескольких действий | нескольких действий | ||
является | является | ||
- | выполнение. | + | выполнение. Эти требования |
- | Эти требования | + | |
команды, | команды, | ||
- | в текущий момент командой. Передача управления может осущест | + | в текущий момент командой. Передача управления может осуществляться вперед для выполнения новой группы команд |
- | вляться вперед для выполнения новой группы команд | + | |
для повторения уже выполненных команд. | для повторения уже выполненных команд. | ||
- | Некоторые команды | + | Некоторые команды |
нормальную | нормальную | ||
модификацией | модификацией | ||
Строка 35: | Строка 30: | ||
==== Команда JMP ==== | ==== Команда JMP ==== | ||
- | Одной из команд обычно используемых | + | Одной из команд, обычно используемых |
ния является команда JMP. Эта команда выполняет безусловный | ния является команда JMP. Эта команда выполняет безусловный | ||
переход, | переход, | ||
Строка 162: | Строка 157: | ||
команда под пользовательским управлением. | команда под пользовательским управлением. | ||
- | IF (Interrupt Flag) - флаг прерывания. При нулевом состоя | + | == IF (Interrupt Flag) == |
+ | флаг прерывания. При нулевом состоя | ||
нии | нии | ||
разрешены. | разрешены. | ||
- | + | == DF (DIrection | |
- | DF (DIrection | + | флаг направления. Используется в |
строковых операциях | строковых операциях | ||
данных. При нулевом состоянии команда увеличивает содержимое | данных. При нулевом состоянии команда увеличивает содержимое | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Ассемблер для IBM PC. Глава 7 137 | ||
- | |||
- | |||
регистров SI и DI, | регистров SI и DI, | ||
при нулевом | при нулевом | ||
- | передачу данных справа налево | + | передачу данных справа налево. |
- | OF (Overflow Flag) | + | == OF (Overflow Flag) == |
+ | флаг переполнения. Фиксирует арифме | ||
тическое | тическое | ||
го) бита при знаковых арифметических операциях. | го) бита при знаковых арифметических операциях. | ||
- | В качестве примера: | + | В качестве примера: |
и воздействуте на флаги AF, CF, OF, PF, SF, ZF. Однако, | и воздействуте на флаги AF, CF, OF, PF, SF, ZF. Однако, | ||
необходимости проверять все эти флаги по отдельности. В сле- | необходимости проверять все эти флаги по отдельности. В сле- | ||
Строка 202: | Строка 191: | ||
нулевой | нулевой | ||
указанный в ее операнде, | указанный в ее операнде, | ||
- | + | В предыдущих | |
- | КОМАНДЫ УСЛОВНОГО ПЕРЕХОДА | + | |
- | ------------------------------------------------------------ | + | |
- | + | ||
- | В предыдущих | + | |
уменьшает на единицу содержимое регистра CX и проверяет его: | уменьшает на единицу содержимое регистра CX и проверяет его: | ||
если не ноль, то управление передается по адресу, | если не ноль, то управление передается по адресу, | ||
Строка 215: | Строка 200: | ||
регистра. | регистра. | ||
последующий переход зависит от значения флага. | последующий переход зависит от значения флага. | ||
- | Команду LOOP в программе на рис.7.2 можно заменить на две | + | Команду LOOP в программе на рис.7.2 можно заменить на две |
команды: | команды: | ||
выполняет условный переход: | выполняет условный переход: | ||
Строка 230: | Строка 215: | ||
ренном примере команда LOOP хотя и имеет огпаниченное исполь | ренном примере команда LOOP хотя и имеет огпаниченное исполь | ||
зование, | зование, | ||
- | + | Аналогично | |
- | + | ||
- | + | ||
- | Ассемблер для IBM PC. Глава 7 138 | + | |
- | + | ||
- | + | ||
- | Аналогично | + | |
cодержит | cодержит | ||
адресом | адресом | ||
Строка 244: | Строка 223: | ||
цы перехода). | цы перехода). | ||
- | Знаковые и беззнаковые данные. | + | ==== Знаковые и беззнаковые данные |
- | + | Рассматривая назначение команд условного перехода следует | |
- | Рассматривая назначение команд условного перехода следует | + | |
пояснить характер их использования. | пояснить характер их использования. | ||
ми выполняются арифметические операции и операции сравнения | ми выполняются арифметические операции и операции сравнения | ||
Строка 257: | Строка 235: | ||
отрицательное. | отрицательное. | ||
положительными так и отрицательными. | положительными так и отрицательными. | ||
- | В качестве примера предположим, | + | В качестве примера предположим, |
11000110, а BX - 00010110. Команда | 11000110, а BX - 00010110. Команда | ||
Строка 266: | Строка 244: | ||
меньше. | меньше. | ||
- | Переходы | + | ==== Условные переходы |
- | Мнемоника Описание | + | === Переходы для беззнаковых данных === |
- | JE/JZ | + | |
- | JNE/ | + | |
- | JA/ | + | |
- | JAE/ | + | |
- | JB/ | + | |
- | JBE/ | + | |
- | | + | JE/JZ |
+ | JNE/ | ||
+ | JA/ | ||
+ | JAE/ | ||
+ | JB/ | ||
+ | JBE/ | ||
+ | |||
+ | Любую проверку можно кодировать одним из двух мнемоничес | ||
ких | ких | ||
объектный код, | объектный код, | ||
чем отрицательную JNAE. | чем отрицательную JNAE. | ||
- | Переходыдля знаковых данных | + | === Переходы для знаковых данных |
- | Мнемоника | + | |
- | JE/JZ | + | |
- | JNE/ | + | JNE/ |
- | JG/ | + | JG/ |
- | + | JGE/ | |
- | + | JL/ | |
- | + | JLE/ | |
- | Ассемблер для IBM PC. Глава 7 139 | + | Команды перехода для условия равно или ноль (JE/ |
- | + | ||
- | + | ||
- | JGE/ | + | |
- | JL/ | + | |
- | JLE/ | + | |
- | + | ||
- | Команды перехода для условия равно или ноль (JE/ | + | |
равно | равно | ||
для беззнаковых | для беззнаковых | ||
происходит вне зависимости от наличия знака. | происходит вне зависимости от наличия знака. | ||
- | Специальныеарифметическиепроверки | + | === Специальные арифметические проверки |
- | + | ||
- | Мнемоника | + | |
- | | + | Мнемоника |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | JS |
+ | JNS Переход, | ||
+ | JC | ||
+ | JNC Переход, | ||
+ | JO | ||
+ | JNO Переход, | ||
+ | JP/JPE Переход, | ||
+ | JNP/JP Переход, | ||
+ | Еще | ||
содержимое | содержимое | ||
должна pасполагаться непосредственно | должна pасполагаться непосредственно | ||
Строка 323: | Строка 295: | ||
начало | начало | ||
ненулевое значение. | ненулевое значение. | ||
- | Не спешите пока заучивать эти команды наизусть. Запомните | + | Не спешите пока заучивать эти команды наизусть. Запомните |
только, | только, | ||
ниям | ниям |