КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Система команд
Система команд семейства MCS-51 содержит 111 базовых команд, которые по функциональному признаку можно подразделить на пять групп: - пересылки данных; - арифметических операций; - логических операций; - операций над битами; - передачи управления.
Формат команд: одно-, двух- и трехбайтовый, причем большинство команд (94) имеют формат один или два байта. Первый байт любого типа и формата, всегда содержит код операции, второй и третий байты содержат либо адреса операндов, либо непосредственные операнды. Состав операндов включает в себя операнды четырех типов: биты, ниблы (4 разряда), байты и 16-битные слова. Время исполнения команд составляет 1, 2 или 4 машинных цикла. При тактовой частоте 12 мГц длительность машинного цикла составляет 1 мкс, при этом 64 команды исполняются за 1 мкс, 45 команд - за 2 мкс и 2 команды (умножение и деление) - за 4 мкс. Флаги результата.Слово состояния программы (PSW) включает в себя четыре флага: CY - перенос, AC - вспомогательный перенос, OV - переполнение и P – паритет (рис.4).
Рис.4. Структура регистра PSW
Флаг паритета Р напрямую зависит от текущего значения аккумулятора. Если число единичных бит аккумулятора нечетное, то флаг P устанавливается, а если четное – сбрасывается. Если содержимое аккумулятора останется неизменным, изменить принудительно флаг Р невозможно. Флаг АС устанавливается в случае, если при выполнении операции сложения /вычитания между тетрадами байта возник перенос/заем. Флаг CY устанавливается, если в старшем бите результата возникает перенос или заем. При выполнении операций умножения и деления флаг CY сбрасывается. Флаг OV устанавливается, если результат операции сложения/вычитания не укладывается в семи битах и старший (восьмой) бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV устанавливается, если результат больше 255. В табл. 3 перечисляются команды, при выполнении которых модифицируются флаги результата. В таблице отсутствует флаг паритета, так как его значение изменяется всеми командами, которые изменяют содержимое аккумулятора. Кроме команд, приведенных в таблице, флаги модифицируются командами, в которых местом назначения результата определены PSW или его отдельные биты, а также командами операций над битами. Таблица 3.
|