Аналитический обзор книги "Программирование на языке ассемблера..." — страница 4
таких специальных команд, как SPHL, PCHL, XTHL и XTHG. Благодаря тому, что существует команда XCHG, для второго адреса берут регистры D и Е , а не В и С. Регистры В и С используют обычно как отдельные 8-разрядные регистры для временного хранения данных. Воздействие различных команд на флаги весьма непоследовательно. К некоторым особенно необычным действиям относятся следующие: a) логические команды очищают флаг переноса; b) команды сдвига не действуют на другие флаги, кроме флага переноса; c) команды загрузки, записи, пересылки, увеличивают на 1 пары регистров и уменьшают на 1 пары регистров вообще не оказывают влияния на флаги; d) 16-разрядное сложение действует только на флаг переноса. 5. L. Действительная косвенная адресация, таким образом, является двухшаговым процессом. При желании загрузить или записать в память аккумулятор можно также загрузить косвенный адрес в регистры В и С или D и Е. Отсутствие индексной адресации компенсируется добавлением пары регистров с помощью команды DAD. Эта команда добавляет пару регистров к Н и L. Таким образом, индексация требует нескольких шагов: a) b) загрузить базовый адрес в другую пару (одной из пар регистров должны быть Н и L), в) используя команду DAD, сложить две пары и г) использовать сумму как косвенный адрес (при помощи обращения к регистру М). Индексация в 8080 и 8085 - долгий и неудобный процесс. 5. 6. SUB A или XRA A), логический сдвиг аккумулятора влево (с помощью ADD A), очистка флага переноса (ANA A или ORA A) и проверка аккумулятора (ANA A или ORA A). Команда ANA A и ORA A очищают флаг переноса и устанавливают остальные флаги в соответствии с содержимым аккумулятора. Причем загрузка регистра не действует на флаги. 7. PCHL, по которой загружается счетчик команд из регистров Н и L и, таким образом, производится косвенный переход. 8. DCR и INR применяются к 8-разрядным регистрам и действуют на все флаги, за исключением флага переноса. Команды DCX и INX применяются к 16-различным парам регистров и вообще не действуют на флаги. Можно использовать 16-разрядные пары регистров как обыкновенные счетчики, но единственным способом проверки пары на 0 является использование команды логическое ИЛИ к двум регистрам вместе с аккумулятором. 9. RRC, RLC, RAR и RAL) и команд сложения (ADD A, ADC A и DAD H). Флаг переноса может быть установлен с помощью STC, а очищен с помощью ANA A (или ORA A). 10.MOV ( пересылка содержимого в другой регистр или из другого регистра), MVI (загрузка непосредственного операнда), DCR (уменьшает на 1) и INR (увеличение на 1). Эти команды могут оперировать также с регистром М, т.е. байтом из памяти, адресуемым через регистры Н и L. 11.PSW), которое
Похожие работы
- Рефераты