|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[18] Пример. Выполним сложение двух двухбайтовых чисел: 00010010 11111011 и 01101000 10000001: а)сложим младшие восемь разрядов: 11111011 * 10000001 01111100. единица переноса пересылается в разряд С; б)сложим старшие восемь разрядов: 00010010 +01101000 1 (из флажка С) 01111011 В результате получим 01111111 01111100. При выполнении команды вычитания флажок С устанавливается в нуль, если был заем, и устанавливается в единицу, если займа не было. Вычитание выполняется путем сложения уменьшаемого с вычитаемым в дополнительном коде, так что перенос при сложении в дополнительном коде служит той же цели, что и заем в обычном вычитании. Представим инвертированный сигнал С (С) в качестве сигнала заема при выполнении вычитания двух и более однобайтовых чисел. Так, при вычитании двух 16-разрядных чисел необходимо заполнить разряд переноса при сложении младших восьми разрядов и учесть этот сигнал в качестве сигнала входного переноса при сложении следующих восьми разрядов. Выполним в качестве примера вычитание следующих 16-разрядных чисел: 01100001 10001001 уменьшаемое 01000001 00010001 вычитаемое. Сначала находим представление числа 01000001 OOOlOOOlg в дополнительном коде, для чего к обратному коду прибавим единицу: обратный код вычитаемого числа 10111110 11101110 +1 дополнительный код10111110 11101111 .Выполним сложение: 01100001 10001001 + 10111110 11101111 перенос 1 перенос 1 Полученный ответ является положительной разностью двух 16-разрядных чисел, а имеющийся перенос из крайнего левого разряда указывает на то, что знак результата совпадает со знаком уменьшаемого (С=1). Заема не было, так как уменьшаемое было больше вычитаемого. Если по окончании каждого процесса вычисления сигнал окончательного переноса отсутствует, то С=0, т.е. должен был быть окончательный заем. Это означает, что вычитаемое было больше уменьшаемого. Флажок С используется в командах сдвига ASL, LSR, ROL, ROR как девятый разряд. Команда SEC устанавливает грлажок С в единицу, а команда CLC - в нуль. Z - флажок нулевого результата. Разряд Z устанавливается в единицу, когда результат выполнения команды равен 0000 0000. Если результат отличен от нуля, то флажок устанавливается в нуль. I - блокировка прерывания IRQ. Этот флажок устанавливается в единицу командой SEI и в нуль командой CLI. Когда I = 1, запрещается обработка прерывания IRQ; когда I = 0, разрешается прерывание по входу IRQ. На вход NMI этот разряд влияния не оказывает. Начав обработку прерывания IRQ, микропроцессор автоматически устанавливает I = 1. Если нужно еще раз повторить обработку IRQ, то предварительно необходимо установить I = 0. Команда BRK (программное прерывание) устанавливает 1=1. D - флажок десятичного режима. Микропроцессор 6502 в отличие от других микропроцессоров (6800, 8080, Z80 и т.д.) может работать в двух режимах -двоичном и двоично-десятичном. Выбор режима определяется состоянием флажка D: при D = 0 микропроцессор складывает и вычитает в двоичном коде; при D = 1 - в двоично-десятичном. Команда CLD сбрасывает флажок D в нуль, команда SED устанавливает D = 1. В - флажок исполнения команды BRK. При исполнении этой команды флажок В= 1. V- флажок переполнения. Используется при сложении и вычитании со знаком. В восьмибитовом числе указателем знака числа служит старший 7-й разряд: нулевое значение определяет положительное число; единичное значение - отрицательное число. Следовательно, для представления числа отводится только семь битов. Флажок V устанавливается в единицу, когда результатом сложения двух отрицательных чисел является положительное число, или когда при сложении положительных чисел получено отрицательное число. Флажок V устанавливается в единицу и в следующих случаях: у результата нет переноса из 6-го разряда в 7-й, но есть перенос из 7-го разряда во флажок С; есть перенос из 6-го разряда в 7-й и нет переноса из 7-го разряда во флажок С. Флажки V и С имеют следующие различия: Vиспользуется в арифметических операциях над числами со знаком и показывает перенос из 6-го разряда в 7-й; флажок С используется, в арифметических операциях над числами без знака, а также указывает на перенос из старшего 7-го разряда результата; V, в отличие от С, не участвует в командах сдвига; есть команда установки в нуль флажка V(CLV), но нет команды установки V в единицу; флажок С устанавливается в единицу командой CLC; Vможет быть установлен в единицу внешним сигналом, подаваемым на вход S.O. микропроцессора 6502; флажок С используется только программно. N - отрицательный флажок. Устанавливается 7-м разрядом (знаковым битом) результата выполнения команды. Команд установки флажка N нет. Существуют две команды BMI и BPL, которые проверяют состояние флажка N и осуществляют переходы по его значениям. 4.3. МЕТОДЫ АДРЕСАЦИИ МИКРОПРОЦЕССОРА 6502 (СМ630) Число и структура способов адресации определяют возможности микропро цессора по обработке данных. Исполнительный (действительный) адрес - это реальный номер ячейки памяти, начиная с которой располагаются адресуемые данные или команды. Микропроцессор 6502 обладает наиболее мошной системой адресации из всех микропроцессоров второго и третьего поколений. Микропроцессор К580 (INTEL 8080/8085) насчитывает четыре способа адресации, MS 6800 (СМ601) - семь, Z80/Z80A (U880) - четыре, К1801 - шесть, а микропроцессор 6502 - 13 способов адресации: аккумуляторная (Accumulator Addressing) - АСС; неявная (Implied Addressing) - LMPL; непосредственная (Immediate Addressing) - IMM; прямая длинная (Absolute Addressing) - ABS; прямая короткая (Zero Page Addressing) - ZP; индексированная по X, короткая (Indexed Zero Page Addressing with Register X) - ZP.X; индексированная no Y, короткая (Indexed zero Pade Addressing wiht Register Y) - ZP.Y; индексированная по X, длинная (Indexed Absolute Addressing with Register X) - ABS.X; индексированная no Y, длинная (Indexed Absolute Addressing with Register Y) - ABS.Y; относительная адресация (Relative Addressing) - REL; индексно-косвенная по X (Indexed Indirect Addressing with Register X) -IND.X; косвенно-индексная no Y (Indexed Indirect Addressing with Register Y) -IND.Y; косвенная длинная (Absolute Indirect Addressing) - IND. На рисунках, иллюстрирующих методы адресации, используются следующие сокращения: КК - код команды; КСК - код следующей команды; • PC - счетчик команд; РСН - старший байт PC; PCL - младший байт,PC; ВА - базовый адрес, т.е. адрес, к которому прибавляется смещение (индекс); BAL - младший байт базового адреса; ВАН - старший байт базового адреса; |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||