Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 лаба.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
22.61 Кб
Скачать

Лабораторная работа № 1.

1) Перечислите виды адресных пространств микроконтроллеров семейства Intel 8051.

Микроконтроллер с архитектурой Intel 8051 имеет четыре вида памяти (адресных пространства): память программ, внутренняя память данных, бит-адресуемая память данных, внешняя память данных. Следует отметить, что адресные пространства внутренней памяти данных и бит-адресуемой памяти данных пересекаются, бит-адресуемая память занимает 16 байт во внутренней памяти данных начиная с адреса 20h (ячейка 32 в десятичной системе счисления) и заканчивая адресом 2Fh.  В соответствии с такой моделью памяти в рассматриваемом ассемблерном модуле исходного текста определены четыре сегмента памяти:  DSEG – сегмент внутренней памяти данных по абсолютному адресу 30h;  BSEG – сегмент бит-адресуемой памяти данных по абсолютному адресу 20h, нулевой бит. XSEG – сегмент внешней памяти данных по абсолютному адресу 0h. CSEG – сегмент кода (памяти программ) по абсолютному адресу 0h. В данном случае DSEG, BSEG, XSEG, CSEG – директивы ассемблера, определяющие соответствующие сегменты. 

2) Какие виды адресации операндов используются в командах передачи данных?

Команды передачи данных как правило содержат два операнда – место размещения источника данных (или сами данные) и место назначения (приемник). В командах передачи данных как правило один из операндов задан неявно (неявная адресация) или номером регистра (регистровая адресация), а другой операнд – непосредственно, или своим прямым адресом, или косвенно в одном из регистров. Исключение – команда записи прямоадресуемого байта по прямому адресу. Признаком косвенной адресации является знак @, стоящий у обозначения регистра, который содержит адрес операнда. Число, стоящее под знаком #, рассматривается как непосредственное данное. Работа с внутренней памятью данных. Работа с внешней памятью данных. Чтение констант из памяти программ. 

3) Перечислите возможные длины операндов, использующихся в командах передачи данных.

Байтовым операндом может быть ячейка памяти программ или данных (как внутренней, так и внешней), константа (непосредственный операнд), регистры специальных функций, а также порты ввода/вывода. Порты и регистры специальных функций адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры R0, R1, DPTR и PC.  Двухбайтные операнды – это константы и прямые адреса, для представления которых используются второй и третий байты команды.  Обычно длина команды варьируется от 1 до 3 и даже 6 байт. Максимальная длина идентификатора 31 символ. 

4) Какие регистры микроконтроллера используются для косвенной адресации операндов, расположенных в различных адресных пространствах?

Косвенная адресация (Indirect Addressing) – в этом случае в инструкции содержится регистр, содержащий адрес операнда. Данный вид адресации может применяться при обращении как к внутреннему, так и внешнему ОЗУ. Для указания 8-битных адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP. Для 16-битной адресации используется только регистр "указатель данных" (DPTR – Data PoinTeR).

 

5) Доступно ли для использования какое-либо адресное пространство микроконтроллера, если в нем не определено ни одного сегмента?

Микроконтроллер с архитектурой Intel 8051 имеет четыре вида памяти (адресных пространства): память программ, внутренняя память данных, бит- адресуемая память данных, внешняя память данных. Следует отметить, что адресные пространства внутренней памяти данных и бит-адресуемой памяти данных пересекаются, бит-адресуемая память занимает 16 байт во внутренней памяти данных начиная с адреса 20h (ячейка 32 в десятичной системе счисления) и заканчивая адресом 2Fh.  В соответствии с такой моделью памяти в рассматриваемом  ассемблерном модуле исходного текста определены четыре сегмента памяти: DSEG – сегмент внутренней памяти данных по абсолютному адресу 30h; BSEG – сегмент бит-адресуемой памяти данных по абсолютному адресу  20h, нулевой бит. XSEG – сегмент внешней памяти данных по абсолютному адресу 0h. CSEG – сегмент кода (памяти программ) по абсолютному адресу 0h. В данном случае DSEG, BSEG, XSEG, CSEG – директивы ассемблера,  определяющие соответствующие сегменты. Помимо объявления соответствующего сегмента, каждая из этих директив выбирает соответствующий сегмент для использования. Для сегментов данных (DSEG, BSEG, XSEG), фактически единственно возможными являются директивы резервирования памяти под различные данные (DS – байтов, DBIT – битов). Идентификаторы в сегментах данных имеют смысл переменных.Для сегментов данных (DSEG, BSEG, XSEG), фактически единственно  возможными являются директивы резервирования памяти под различные данные (DS – байтов, DBIT – битов). Идентификаторы в сегментах данных имеют смысл переменных – символического описания адреса в памяти данных, по которому размещены соответствующие данные. В рассматриваемом примере это распределение памяти под переменные VAR1 и ANY_VAR во внутренней памяти данных, массив байт X_BYTE_ARRAY объемом 20 байт во внешней памяти данных, битовые переменные FLAG1 и ANY_FLAG в бит-адресуемой области памяти. Распределение памяти под различные переменные производится по мере их объявления в каждом из сегментов данных начиная с начального адреса сегмента.