мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| 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: | ||
| начало | начало | ||
| ненулевое значение. | ненулевое значение. | ||
| - | Не спешите пока заучивать эти команды наизусть. Запомните | + | Не спешите пока заучивать эти команды наизусть. Запомните |
| только, | только, | ||
| ниям | ниям | ||