- •Лабораторная работа № 1.
- •1) Перечислите виды адресных пространств микроконтроллеров семейства Intel 8051.
- •2) Какие виды адресации операндов используются в командах передачи данных?
- •3) Перечислите возможные длины операндов, использующихся в командах передачи данных.
- •6) Какие способы адресации операндов используются для доступа к регистрам специальных функций микроконтроллера.
- •9) Каким образом обеспечить автоматическое распределение переменной (или константы) в памяти микроконтроллера по определенному физическому адресу.
- •10) Какой физический смысл имеют идентификаторы в сегментах, определенных во внутренней и внешней памяти данных?
9) Каким образом обеспечить автоматическое распределение переменной (или константы) в памяти микроконтроллера по определенному физическому адресу.
Все модули должны иметь свое представление в памяти микроконтроллера, некоторые из них должны осуществлять доступ к коду и данным, размещенным в других модулях, а на момент ассемблирования полностью известным является только один – ассемблируемый модуль. Файлы объектных модулей имеют расширение «.obj» а их имена соответствуют именам файлов исходных текстов. После ассемблирования всех используемых в программе модулей исходного текста производится редактирование связей – линкование, линкинг, (Linking – Связывание), компоновка. Линкование осуществляется программой – линкером (редактором связей, компоновщиком). Этой программе передаются все объектные модули, полученные в результате ассемблирования. Данная программа размещает код и данные из всех модулей в памяти микроконтроллера и вводит в соответствующие места кода программы фактические адреса размещенных идентификаторов.
10) Какой физический смысл имеют идентификаторы в сегментах, определенных во внутренней и внешней памяти данных?
Идентификаторы в сегментах данных имеют смысл переменных – символического описания адреса в памяти данных, по которому размещены соответствующие данные. В рассматриваемом примере это распределение памяти под переменные VAR1 и ANY_VAR во внутренней памяти данных, массив байт X_BYTE_ARRAY объемом 20 байт во внешней памяти данных, битовые переменные FLAG1 и ANY_FLAG в бит-адресуемой области памяти.
Распределение памяти под различные переменные производится по мере их объявления в каждом из сегментов данных начиная с начального адреса сегмента.
