Главная » Просмотр файлов » 02_Написание_ассемблерных_программ_Информ_материал_СПО_ч2

02_Написание_ассемблерных_программ_Информ_материал_СПО_ч2 (1268618), страница 2

Файл №1268618 02_Написание_ассемблерных_программ_Информ_материал_СПО_ч2 (Лекция) 2 страница02_Написание_ассемблерных_программ_Информ_материал_СПО_ч2 (1268618) страница 22021-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Доступ к объекту осуществляется через метку. Для изменения выполнения программы используются метки. Метки нельзя переопределить. В одном модуле файла не может быть двух одинаковых меток. На однойстроке может располагаться только одна метка.2.3.3. КомментарийЭто текстовые строки, которые вы можете включить в вашу программу для идентификации и объяснения программы.

Комментарий предваряется символом точки с запятой («;»).Комментарии могут занимать часть строки или всю строку. Комментарии не влияют нагенерирование объектного файла или содержащийся там код.Макроассемблер A51 имеет стандартный Си-препроцессор, который почти идентичен препроцессору Сикомпилятора C51. Поэтому комментарий можно начать с пары символов /* и завершить парой символов */.Комментарий может содержать любое число строк, начинаться и заканчиваться в любом месте программы.Однако в этом случае ассемблер не включает комментарий в листинговый файл, он полностью игнорируетсяассемблером.42.3.4.

ОперандыЭто аргументы или выражения, которые указываются в ассемблерных директивах или инструкциях. Ассемблерные инструкции поддерживают более широкое разнообразие операндов, чем директивы. Некоторые инструкции не требуют операндов, а другие могуттребовать до трех операндов. Несколько операндов разделяются запятыми. Операнды винструкциях могут быть шести типов:Тип операндаНепосредственные данные (Immediate Data)Прямые адреса битов (Direct Bit Addresses)Программный адрес (Program Address)Прямоадресуемые данные (Direct Data Addresses)Косвенные адреса (Indirect Addresses)[ @R0, @R1, DPTR, … ]Специальные (зарезервированные) символическиеимена ассемблера (Special Assembler Symbol)ОписаниеСимволические имена или константы, используемые как числовые значенияСимволические имена или константы, которые указывают адрес бита (ссылаются на адрес бита)Символические имена или константы, которые указывают адрес кодаСимволические имена или константы, которые указывают адрес данныхКосвенная ссылка (указатель) на ячейку памяти,возможно со смещением (используются регистры)пример: MOV A, @R0 ↔ A ≔ [R0]Имена регистровСпециальные символические имена ассемблераЭто зарезервированные имена регистров.РегистрADPTRPCCABR0 – R7AR0 – AR7ОписаниеАккумулятор микроконтроллеров семейства 805116-разрядный указатель данных, используемый для косвенной адресации в памяти типаXDATA или CODE16-разрядный программный счетчик (счетчик команд).

Он содержит адрес следующей инструкции, которая должна быть выполненаБит (флаг) переносаРегистровая пара, используемая в инструкциях умножения (MUL) и деления (DIV)Восемь 8-разрядных регистров общего назначения текущего (активного) банка регистровАбсолютные адреса регистров R0 – R7 текущего банка, которые указывается с помощьюдирективы USINGпример: USING 2MOV AR0, #0 ; здесь регистры не переключаютсяНепосредственные данныеОперанд непосредственных данных – числовое выражение, которое кодируется как частьмашинной инструкции.

Значения непосредственных данных используются литерально(буквально) в инструкции, чтобы изменить содержимое регистра или ячейки памяти. Знак«#» должен предшествовать любое выражение, которое должно использоваться как операнд непосредственных данных.Доступ к памятиДоступ к памяти – это запись или чтение значения в/из различных областей (пространств)памяти. При прямом доступе (адресации) к памяти адрес памяти кодируется в инструкциичтения или записи. При косвенном доступе к памяти используется содержимое регистра,указанного в инструкции чтения или записи. В зависимости от способа доступа к памятипоследняя подразделяется на классы: DATA, BIT, IDATA, XDATA, CODE.5DATAЯчейки памяти класса DATA могут адресоваться как прямо, так и косвенно.

Емкость этойпамяти – 128 байт. РСФ, имеющие адреса, начиная с 0x80 и выше, допускают только прямую адресацию.BITБитовые ячейки в памяти класса BIT адресуются с помощью битовых инструкций. Емкость этой памяти – 128 бит (16 байт). Кроме того, эти же инструкции применимы к РСФ спобитовой адресацией.IDATAПеременные в этом классе памяти доступны через регистры R0 и R1.

Емкость этой памяти – 128 (256) байт. Доступ к переменным этого класса памяти осуществляется через регистры R0 и R1.XDATAДоступ к ячейкам памяти класса XDATA осуществляется с помощью команды MOVX через регистр DPTR. Одна страница, размером 256 байт, может быть доступна через регистры R0 и R1.CODEДоступ с памяти класса CODE – с помощью инструкции MOVC через регистр DPTR илиPC.Программные адресаПрограммные адреса — это абсолютные или перемещаемые выражения с классом памятиCODE.Обычно программные адреса используются в инструкциях JUMP и CALL. Для косвенных переходов и вызовов подпрограмм требуется загрузить программный адрес в регистрили таблицу переходов.Двум обобщенным мнемоникам CALL и JMP не соответствуют никакие индивидуальныекоды инструкций.

JMP может ассемблироваться в SJMP, AJMP или LJMP. CALL можетассемблироваться в ACALL или LCALL. Эти обобщенные мнемоники всегда приводятсяк инструкциям, необязательно самым коротким, которые будут достигать (доставать) указанный операнд типа программный адрес.— вызов подрограммыавтоматически— переход2.4. Система командСистему команд удобно разделить по функциональному признаку на 5 групп:команды передачи управления;команды арифметических операций;команды логических операций;команды передачи управления;команды операций с битами (команды битового процессора).6Большинство команд имеют формат один или два байта и выполняются за один или двамашинных цикла. Первый байт команды любого типа и формата всегда содержит код операции. Второй и третий байты содержат либо адреса операндов, либо непосредственныеоперанды.В таблице перечислены команды, при выполнении которых модифицируются флаги результатов.

В таблице отсутствует флаг паритета P, т.к. его значение изменяется всегда командами, изменяющими содержимое аккумулятора. Кроме того, флаги модифицируютсякомандами, в которых местом назначения результата является регистр PSW или его биты,а также командами операций над битами.2.4.1. Команды передачи данныхБольшая часть команд этой группы – команды передачи и обмена байтов во внутреннемОЗУ.

Их обобщенная мнемоника: MOV dest-byte, src_byte; dest-byte := src_byte.Способы адресации данных (определение — пример):- прямая (direct) — MOV direct, #...,- непосредственная (immediate) — direct, direct,- косвенная (indirect) — …, direct,- неявная (implicit).Пример:@R0[R0] ≔ AR0 := R0 + 1R7 := R7 – 1АR7 = 0, нетда: конец@R1При прямой адресации указанный в команде адрес представляет собой машинный адрес операнда [1].При прямой адресации адрес операнда содержится в теле самой команды. Например: MOV A, Rn.

Номеррегистра текущего банка указывается в трех младших битах кода операции. Пример с ячейкой и РСФ [2].В случае непосредственной адресации в поле адреса команды помещается значение операнда. [1].В случае непосредственной адресации операнд располагается в теле команды. Например, второй байт команды: MOV A, #3 (КОП = 74H; команда MOV A, 3 имеет КОП = E5H) [2].Косвенная адресация – способ адресации, при котором исполнительный адрес (адрес операнда) равен содержимому по адресу, указанному в команде [3].Неявная адресация – способ адресации, при котором один или несколько операндов находятся в фиксированных для данной команды регистрах и не требуют явного указания в команде [3].Неявная адресация – способ адресации, при котором в коде операции содержится неявное указание на одинили несколько операндов.

Часто таким операндом является аккумулятор [2].Центральным операндом здесь является аккумулятор. Обращение к нему может быть выполнено с использованием неявной и прямой адресации. В первом случае используетсяимя A, во втором – ACC. Использование неявной адресации эффективнее. Запрещена команда MOV A, ACC. Возможна также передача данных без участия аккумулятора.Далее рассматриваются команды до MOV DPTR, #data16 ; data16 — 16-ти разр. число7Замечание по команде MOV DPTR, #data16: как расположены в памяти слова и другие«длинные данные»?Считывание из памяти программ: MOVC A, @A+base_regЗагружает в аккумулятор байт программного кода или константу из программной памяти.Адрес – сумма беззнакового 8-битового содержимого аккумулятора плюс содержимое 16битового базового регистра, в качестве которого выступает DPTR или PC.

В последнемслучае PC инкрементируется перед сложением с аккумулятором. В альтернативном варианте содержимое базового регистра не изменяется.считывание из ПЗУ в аккумуляторПример. Программа преобразования двоично-десятичной цифры в семисегментный код:входной параметр — код двоично-десятичной цифры передается черезаккумуляторBCD_TO_7SEG: INCAMOVC A,@A+PCRETDB 3FH, 06H,..., 6FHзагрузка таблицы в DPTRBCD_TO_7SEG: MOVDPTR,#Tbl_7SegMOVC A,@A+DPTRRETTabl_7Seg:DB3FH, 06H,..., 6FHD7 D6 D5 D4 D3 D2 D1 D0000111111 3FH100000110 06H… … … … … … … … … …901101111 6FHMOVX — доступ к внешнему ОЗУ;MOVX A, @Ri — -//- через аккумуляторMOVX A, @DPTR — в аккумулятор через DPTR;MOVX @Ri, A — из аккумулятора по адресу, который указывает Ri;MOVX @DPTR, A — из аккумулятора по адресу, который указывает DPTR.Обращение к внешней памяти данных: MOVX dest_byte, src_byte (External  MOV+X).Передает данные между аккумулятором и байтом внешней памяти данных.

Последняя адресуется только косвенно через 8-разрядные регистры R0, R1 или 16-разрядный DPTR.— запись в стек— только прямая адресация— считывание из стекаPUSH ACC — заполнить аккумулятор (адрес, AR0-AR7)POP ACC — восстановление аккумулятора.8Пример:MOV SP, #STACK-1 ; STACK — сегмент стека7 ← SP —указатель стека0область для переменныхДопускается только прямоадресуемый операнд.

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

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

Список файлов лекций

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