MCS-51 (1031646), страница 18

Файл №1031646 MCS-51 (Раздаточный материал к курсовому проекту) 18 страницаMCS-51 (1031646) страница 182017-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 18)

Начальное значение 00Н перейдет в 0FFH. Команда DEC не влияет на флаги. Этой командой допускается четырережима адресации операнда:1) к аккумулятору2) регистровый3) прямой4) косвенно-регистровый1) Ассемблер:DEC A00010100Код:1 циклВремя:(А):=(А)-1Алгоритм:;(А)=11Н, (С)=1, (АС)=1Пример:;(А)=10Н, (С)=1, (АС)=1DEC А2) Ассемблер:DEC Rn;где п=0-700011rrr, где rrr=0 0 0-l l lКод:1 циклВремя:(Rn):=(Rn)-lАлгоритм:;(R1)=7FH,Пример:;(O3y[7F])=40H, (O3Y[7F])=00HDEC @R1DEC RlDEC @R1;(R1)=7EH,;(03У[7F])=3FH, (03Y[7F])=FFH3) Ассемблер:Код:Время:Алгоритм:Пример:DEC <direct>00010101 <direct address>1 цикл(direct):=(direct)-l4) Ассемблер:Код:Время:Алгоритм:Пример:DEC @Ri0001011i1 цикл((Ri)):=((R)-1)DEC SCON;(SCON)=A0H, (C)=l, (AC)=1;(SC0N)=9FH, (C)=l, (AC)=1; где i=0, l;(R1)=7FH,;(O3У[7F])=40H, (O3Y[7E])=00HDEC @R1;(03Y[7F])=3FHDEC Rl;(R1)=7EHDEC @R1;(O3У[7Е])=FFHПримечание: Если эта команда используется для изменения информации на выходе порта,значение, используемое как исходные данные, считывается из "защелки"' порта, а не с выводовБИС.Команда DIV ABКоманда "деление" делит 8-битовое целое без знака из аккумулятора А на 8-битовое целоебез знака в регистре В.

Аккумулятору присваивается целая часть частного (старшие разряды), арегистру В — остаток. Флаги переноса (С) и переполнения (OV) сбрасываются. Если (А) < (В), тофлаг дополнительного переноса (АС) не сбрасывается. Флаг переноса сбрасывается в любом случае.Ассемблер:DIV AB10000100Код:4 циклаВремя:(А):=((А)/(В))[15-8],Алгоритм:(В):=((А)/(В))[7-0],81Пусть аккумулятор содержит число 251 (0FBH или 11111011В),а регистр В - число 18 (12Н или 00010010В).После выполнения командыDIV ABв аккумуляторе будет число 13 (0DH или 00001101В), а в регистре В- число 17 (ПН или 00010001В), т.к.

251=(13*18)+17. Флаги С и 0Vбудут сброшены.Примечание: Если В содержит 00, то после команды DIV содержимое аккумулятора А ирегистра В будут не определены. Флаг переноса сбрасывается, а флаг переполнения устанавливается в "1".Пример:Команда DJNZ <байт>.<смещение>Команда "декремент и переход, если не равно нулю" выполняет вычитание "1" из указанной ячейки и осуществляет ветвление по вычисляемому адресу, если результат не равен нулю.Начальное значение 00Н перейдет в 0FFH. Адрес перехода (ветвления) вычисляется сложениемзначения смещения (со знаком), указанного Е, последнем байте команды, с содержимым счетчикакоманд, увеличенным на длину команды DJNZ.

На флаги эта команда не влияет и допускает следующие режимы адресации:1)регистровый2)прямой1) Ассемблер:DJNZ Rn,<метка>; где n=0-711011rrr <rel8>Код:2 циклаВремя:(РС):=(РС)+2,Алгоритм:(Rn):=(Rn)-l,если ((Rn)>0 или (Rn)<0), то (PC):=(PC)+<rel8>Пример:2) Ассемблер:Код:Время:Алгоритм:;(R2)=08H, (P1)=FFH (11111111В)LAB4: CPL PI.7;(R2)={07-00}DJNZ R2.LAB4;Эта последовательность команд переключает Р1.7;восемь раз и приводит к появлению четырех импульсов;на выводе БИС, соответствующем биту Р1.7.DJNZ <direct>, <метка>11010101<direct address> <rel8>2 цикла(РС):=(РС)+3,(direct) : = (directM, если ((direct)>0 или (direct)<0), то(PC):=(PC)+<rel8>Пример:DJNZ 40H, LAB1DJNZ 50H, LAB2DJNZ 60H, LAB3…..LAB1: CLR…..LAB2: DEC Rl;(ОЗУ[40])=01Н,(ОЗУ[50])=80Н, ;(ОЗУ[60])=25Н;(ОЗУ[40]):=00Н;(O3У[50]):=7FH;(ОЗУ[60]):=25Носуществился переход на меткуLAB2Примечание: Если команда DJNZ используется для изменения выхода порта, значение, используемое как операнд, считывается из "защелки" порта, а не с выводов БИС.Команда INC <байт>Команда "инкремент" выполняет прибавление "1" к указанной переменной ■•> не влияетна флаги.

Начальное значение 0FFH перейдет в 00H. Эта команда допускает четыре режима адресации:1) к аккумулятору2) регистровый3) прямой824) косвенно-регистровый1) Ассемблер:INC A00000100Код:1 циклВремя:(A):=(A)+1Алгоритм:Пример:2) Ассемблер:Код:Время:Алгоритм:Пример:3) Ассемблер:Код:Время:Алгоритм:Пример:4) Ассемблер:Код:Время:Алгоритм:Пример:INC АINC Rn00001rrr1 цикл(Rn):=(Rn)+l;(A)=1FH, (АС)=0;(А)=20Н, (АС)=0;где n = 0-7, где rrr = 000-111;(R4)=FFH, (C)=0, (AC)=0;(R4)=00H, (C)=0, (АС)=0INC R4INC <direct>00000101 <direct address>1 цикл(direct):=(direct)+lINC 43HINC @Ri;(ОЗУ[43])=22Н;(03У[43])=23Н; где i=0,l0000011i , где i= 0,l1 цикл((Ri)):=((Ri)+l);(R1)=41H, (O3У[41])=4FH, (AC)=0;(R1)=41H, (ОЗУ[41])=50H, (AC)=0INC @R1Примечание.

При использовании команды INC для изменения содержимого порта, величина, используемая как операнд, считывается из "защелки" порта, а не с выводов БИС.Команда INC DPTRКоманда "инкремент указателя данных" выполняет инкремент (прибавление "1") содержимого 16-битового указателя данных (DPTR). Прибавление "1" осуществляется к 16 битам, причемпереполнение младшего байта указателя данных (DPL) из FFH в 00Н приводит к инкрементустаршего байта указателя данных (DPH). На флаги эта команда не влияет.Ассемблер:INC DPTR10100011Код:2 циклаВремя:(DPTR):=(DPTR)+1Алгоритм:Пример:;(DPH)=12H, (DPL)=FEHINCINCINCDPTRDPTRDPTR;(DPH)=13H, (DPL)=01HКоманда JB <bit>.<rel8>Команда "переход, если бит установлен" выполняет переход по адресу ветвления, еслиуказанный бит равен'Ч", в противном случае выполняется следующая команда.

Адрес ветвлениявычисляется с помощью прибавления относительного смещения со знаком в третьем байте команды (ге18) к содержимому счетчика команд после прибавления к нему 3. Проверяемый бит не изменяется. Эта команда на флаги не влияет.Ассемблер:JB (bit),<метка>00100000 <bit address> <rel8>Код:2 циклаВремя:(РС):=(РС)+3,Алгоритм:если (bit)=l, то (PC):=(PC)+<rel8>Пример:;(А)=96Н (10010110В)JB ACC.2, LAB5……LAB5: INC A;эта команда обеспечивает;переход на метку LAB583Команда JBC <bit>.<геl8>Команда "переход, если бит установлен и сброс этого бита", выполняет ветвлениепо вычисляемому адресу, если бит равен "1". В противном случае выполняется следующаяза JBC команда. В любом случае указанный бит сбрасывается. Адрес перехода вычисляется сложением относительного смещения со знаком в третьем байте команды (ге18) и содержимого счетчика команд после прибавления к нему 3.

Эта команда не влияет на флаги.Ассемблер:Код:Время:Алгоритм:JBC (bit), <метка>00010000 <bit address> <rel8>2 цикла(РС):=(РС)+3,если (bit)=l, то (bit):=0, (PC):=(PC)+<rel8>;(А)=76Н (0111 0110В);Перехода на LAB6 нет, т.к.;(А[31]) = 0;переход на адрес,JBC ACC.2, LAB7;соответствующий метке LAB7.Примечание. Если эта команда используется для проверки бит порта, то значение,используемое как операнд, считывается из "защелки" порта, а не с вывода БИС.Команда JC <геl8>Команда "переход, если перенос установлен" выполняет ветвление по адресу, еслифлаг переноса равен "1", в противном случае выполняется следующая команда.

Адресветвления вычисляется с помощью сложения относительного смещения со знакомво втором байте команды (rel8) и содержимого счетчика команд, после прибавления кнему 2. Эта команда на флаги не влияет.Пример:JBC ACC.3, LAB6Ассемблер:Код:Время:Алгоритм:JC <метка>01000000 <геl8>2 цикла(РС):=(РС)+2,если (С)=1, то (РС):=(РС)+<ге18>Пример:JC LAB8CPL CLAB8: JC LAB9;(С)=0;нет перехода на метку LAB8; (С):=1;переход на метку LAB9, т.к.

(С)=1…LAB9: N0PКоманда JHP @A+DPTRКоманда "косвенный переход" складывает 8-битовое содержимое аккумулятора беззнака с 16-битовым указателем данных (DPTR) и загружает полученный результат в счетчик команд, содержимое которого является адресом для выборки следующей команды. 16битовое сложение выполняется по модулю 2 , перенос из младших восьми бит распространяется на старшие биты программного счетчика. Содержимое аккумулятора и указателя данных не изменяется. Эта команда на флаги не влияет.Ассемблер:Код:Время:Алгоритм:Пример:JMP @A+DPTR011100112 цикла(PC):=(A)[7-0]+(DPTR)[15-0];(РС)=034ЕН, (А)=86Н, DPTR)=0329H;(PC)=03AFH, (A)=86H, (DPTR)=0329HJMP @A+DPTRКоманда JNB <bit>, <rel8>Команда "переход, если бит не установлен" выполняет ветвление по адресу, еслиуказанный бит равен "нулю", в противном случае выполняется следующая команда Адресветвления вычисляется с помощью сложения относительного смещения со знаком в84третьем байте команды (геl8) и содержимого счетчика команд после прибавления к нему3.

Проверяемый бит не изменяется. Эта команда на флаги не влияет.Ассемблер:Код:Время:Алгоритм:Пример:JNB(bit), <метка>00110000 <bit address>2 цикла(РС):=(РС)+3, если (bit)=0 (РС):=(РС)+<rel8>JNB P1.3, LAB10JNB ACC.3, LAB11LAB11: INC A;(Р2)=САН (11001010В),; (А)=56Н (0101 0110В);нет перехода на LAB10;переход на метку LAB11Команда JNC <геl8>Команда "переход, если перенос не установлен" выполняет ветвление по адресу,если флаг переноса равен нулю, в противном случае выполняется следующая команда.Адрес ветвления вычисляется с помощью сложения относительного смещения со знакомво втором байте команды (ге18) и содержимого счетчика команд после прибавления к нему 2.

Флаг переноса не изменяется. Эта команда на другие флаги не влияет.Ассемблер:Код:Время:Алгоритм:Пример:JNC <метка>01010000 <геl8>2 цикла(PC):=(РС)+2, если (С)=0, то (PC):=(PC)+<rel8>JNC LAB12CPL СLAB12: JNC LAB13;(С)=1;нет перехода на LAB12;(С)=0;переход на метку LAB13Команда JNZ <геl8>Команда "переход, если содержимое аккумулятора не равно нулю" выполняетветвление по адресу, если хотя бы один бит аккумулятора равен "1", в противном случаевыполняется следующая команда. Адрес ветвления вычисляется сложением относительного смещения со знаком во втором байте команды (rel8) и содержимого счетчика команд(PC) после прибавления к нему 2. Содержимое аккумулятора не изменяется.

Эта командана флаги не влияет.Ассемблер:Код:Время:Алгоритм:Пример:JNZ <метка>01110000 <rеl8>2 цикла(РС):=(РС)+2, если (A)=0 то (РС):=(РС)+<ге18>JNZ LAB14INC ALAB14: JNZ LAB15…LAB15: NOP;(А)=00Н;нет перехода на LAB14;переход на метку LAB15Команда JZ <геl8>Команда "переход, если содержимое аккумулятора равно "0" выполняет ветвлениепо адресу, если все биты аккумулятора равны "0", в противном случае выполняется следующая команда.

Адрес ветвления вычисляется сложением относительного смещения сознаком во втором байте команды (rel8) и содержимым счетчика команд после прибавления к нему 2. Содержимое аккумулятора не изменяется. Эта команда на флаги не влияет.Ассемблер:Код:Время:Алгоритм:Пример:JZ <метка>01100000<rе18>2 цикла(РС):=(РС)+2, если (А)=0, то (РС):=(РС)+<ге18>;(А)=01Н85;нет перехода на LAB16JZ LAB16DEC ALAB16: JZ LAB17LAB17: CLR А;переход на метку LAB17Команда LCALL <addr16>Команда "длинный вызов" вызывает подпрограмму, находящуюся по указанномуадресу. По команде LCALL к счетчику команд (PC) прибавляется 3 для получения адресаследующей команды и после этого полученный 16-битовый результат помещается в СТЕК(сначала следует младший байт, за ним — старший), а содержимое указателя СТЕКа (SP)увеличивается на 2. Затем старший и младший байты счетчика команд загружаются соответственно вторым и третьим байтами команды LCALL.

Характеристики

Тип файла
PDF-файл
Размер
21,12 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее