русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Команда NOP


Дата добавления: 2015-08-31; просмотров: 1241; Нарушение авторских прав


Команда "нет операции" выполняет холостой ход и не влияет на регистры и флаги, кроме как на счетчик команд (РС).

Ассемблер: NOP
Код:
0 0 0 0 0 0 0 0
 
Время: 1 цикл
Алгоритм: (PC):=(PC)+1
Пример: Пусть требуется создать отрицательный выходной импульс на порте P1[6] длительностью 3 цикла. Это выполнит следующая последовательность команд: CLR P1.6 ;P1[6]:=0 NOP NOP NOP SETB P1.6 ;P1[6]:=1    
 

Команда ORL <байт-назначения>,
<байт-источникa>

Команда "логическое "ИЛИ" для переменных байтов" выполняет операцию логического "ИЛИ" над битами указанных переменных, записывая результат в байт назначения. Эта команда на флаги не влияет. Допускается шесть комбинаций режимов адресации:

    • если байтом назначения является аккумулятор :
  1. регистровый
  2. прямой
  3. косвенно-регистровый
  4. непосредственный
    • если байтом назначения является прямой адрес :
  5. к аккумулятору
  6. к константе

Рассмотрим их.

Ассемблер: ORL A,Rn ; где n=0-7
Код:
0 1 0 0 1 rrr
, где rrr=000-111  
Время: 1 цикл
Алгоритм: (A) : = (A) OR (Rn), где OR - операция логического "ИЛИ"
Пример: ;(A)=15H, (R5)=6CH ORL A,R5 ;(A)=7DH, (R5)=6CH  
Ассемблер: ORL A,<direct>
Код:
0 1 0 0 0 1 0 1
direct address
 
Время: 1 цикл
Алгоритм: (A) : =(A) OR (direct)
Пример: ;(A)=84H, (PSW)=C2H ORL A,PSW ;(A)=C6H, (PSW)=C2H  
Ассемблер: ORL A,@Ri ; где i=0,1
Код:
0 1 0 0 0 1 1 i
 
Время: 1 цикл
Алгоритм: (A) : =(A) OR ((Ri))
Пример: ;(A)=52H, (R0)=6DH, (ОЗУ [6D])=49H ORL A,@R0 ;(A)=58H, (ОЗУ [6D])=49H
Ассемблер: ORL A, #data
Код:
0 1 0 0 0 1 0 0
#data8
 
Время: 1 цикл
Алгоритм: (A) : = (A) OR #data
Пример: ;(A)=FOH ORL A,#0AH ;(A)=FAH  
Ассемблер: ORL <direct>, A
Код:
0 1 0 0 0 0 1 0
direct address
 
Время: 1 цикл
Алгоритм: (direct) : = (direct) OR (A)
Пример: ;(A)=34H, (IP)=23H ORL IP,A ;(IP)=37H, (A)=34H  
Ассемблер: ORL (direct), #<data>
Код:
0 1 0 0 0 0 1 1
direct address
#data8
 
Время: 2 циклa
Алгоритм: (direct) : = (direct) OR #<data>
Пример: ;(P1)=00H ORL P1,#0C4H ;(P1)=11000100B (C4H)  

Примечание. Если команда используется для работы с портом, величина, используемая в качестве исходных данных порта, считывается из "защелки" порта, а не с выводов БИС.



 

Команда ORL C, <бит источникa>

Команда "логическое "ИЛИ" для переменных битов" устанавливает флаг переноса С, если булева величина равна логической "1", в противном случае устанавлиается флаг С в "0". Косая дробь ("/") перед операндом на языке ассемблера указывает на то, что в качестве операнда используется логическое отрицание значения адресуемого бита, но сам бит источника не изменяется. Эта команда на другие флаги не влияет.

Ассемблер: ORL C,<bit>
Код:
0 1 1 1 0 0 1 0
bit address
 
Время: 2 циклa
Алгоритм: (C) : =(C) OR (bit)
Пример: ;(C)=0, (P1)=53H (01010011B) ORL C,P1.4 ;(C)=1, (P1)=53H (01010011B)  
Ассемблер: ORL C,/ <bit>
Код:
1 0 1 0 0 0 0 0
bit address
 
Время: 2 циклa
Алгоритм: (C) : = (C) OR /(bit)
Пример: ;(C)=0, (ОЗУ[25])39H (0011100B) ORL C,/2A ;(C)=1, (ОЗУ[25])39H (0011100B)
 
   

Команда POP <direct>

Команда "чтение из стека" считывает содержимое ячейки, которая адресуется с помощью указателя стека, в прямо адресуемую ячейку ОЗУ, при этом указатель стека уменьшается на единицу.

Эта команда не воздействует на флаги и часто используется для чтения из стека промежуточных данных.

Ассемблер: POP <direct>
Код:
1 1 0 1 0 0 0 0
direct address
 
Время: 2 циклa
Алгоритм: (direct):=((SP)), (SP):=(SP)-1
Пример: ;(SP)=32H, (DPH)=01, (DPL)=ABH, ;(ОЗУ[32])=12H, (ОЗУ[32])=56H, POP DPH POP DPL ;(SP)=30H, (DPH)=12H, (DPL)=56H, ;(ОЗУ[32])=12H, (ОЗУ[31])=56H POP SP ;(SP)=20H, (ОЗУ[30])=20H  

Команда PUSH <direct>

Команда "запись в стек" увеличивает указатель стека на единицу и после этого содержимое указанной прямо адресуемой перемнной копируется в ячейку внутреннего ОЗУ, адресуемого с помощью указателя стека. На флаги эта команда не влияет и используется для записи промежуточных данных в стек.

Ассемблер: PUSH <direct>
Код:
1 1 0 0 0 0 0 0
direct address
 
Время: 2 циклa
Алгоритм: (SP):=(SP)+1
Пример: ;(SP)=09H, (DPTR)=1279H PUSH DPL PUSH DPH ;(SP)=0BH, (DPTR)=1279H, ;(ОЗУ[0A])=79H, (ОЗУ[0B])=12H


<== предыдущая лекция | следующая лекция ==>
Команда MOV DPTR,#data16 | Команда RET


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.