реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
yturw
сообщение Sep 16 2012, 10:28
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 2-05-10
Пользователь №: 57 020



AT89S52 по сравнению с AT89S51 имеет увеличенный вдвое объём ОЗУ. AT89S52 работает с адресами (20h-7fh) всё шикарно вопросов нет,
а вот каким образом получить доступ к дополнительным 128 байтам памяти?

Вот всё что в даташите про RAM написано:
6.2 Data Memory
The AT89S52 implements 256 bytes of on-chip RAM. The upper 128 bytes occupy a parallel
address space to the Special Function Registers. This means that the upper 128 bytes have the
same addresses as the SFR space but are physically separate from SFR space.
When an instruction accesses an internal location above address 7FH, the address mode used
in the instruction specifies whether the CPU accesses the upper 128 bytes of RAM or the SFR
space. Instructions which use direct addressing access the SFR space.
For example, the following direct addressing instruction accesses the SFR at location 0A0H
(which is P2).
MOV 0A0H, #data
Instructions that use indirect addressing accessthe upper 128 bytes of RAM. For example, the
following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at
address 0A0H, rather than P2 (whose address is 0A0H).
MOV @R0, #data
Note that stack operations are examples of indirect addressing, so the upper 128 bytes of data
RAM are available as stack space.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 16 2012, 12:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(yturw @ Sep 16 2012, 14:28) *
каким образом получить доступ к дополнительным 128 байтам памяти?

Трудности с переводом? Там ясно написано: используя косвенную адресацию.
По этой причине в верхней половине ОЗУ удобно размещать стек, буфера, массивы - всё то, к элементам которого обращение осуществляется через указатель.
Go to the top of the page
 
+Quote Post
yturw
сообщение Sep 16 2012, 14:53
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 2-05-10
Пользователь №: 57 020



Цитата
Трудности с переводом?

И да и нет, вобщем спасибо за внесённую ясность.
Что такое стек представляю, а каким образом разместить его в верхней половине? Ассемблер TASM.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 16 2012, 15:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(yturw @ Sep 16 2012, 18:53) *
каким образом разместить его в верхней половине?

Указателю стека SP присвоить значение адреса ОЗУ из верхней половины. Т.е. в регистр специальных функций SP поместить значение с единицей в старшем разряде.
Go to the top of the page
 
+Quote Post
yturw
сообщение Sep 16 2012, 16:19
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 2-05-10
Пользователь №: 57 020



Теперь всё ясно. Благодарю за помощь.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 06:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016