Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » Объясните как адресуется память ОЗУ в микр-ре 8051

Страниц (1): [1]
 

1. Fraktal - 12 Июля, 2013 - 20:17:12 - перейти к сообщению
Здраво Знатоки!!! Ребят просветите пожалуйста, отлаживаю программку для микроконтроллера 8051, отлаживаю и пишу в программе Keil uvision5.
Так вот ни как не пойму как присваиваются адреса или точнее адресацию памяти ОЗУ в отладчике. Далее вопросы поэтапно
1)У микрухи 8051 ОЗУ 128 байтовое - почему отладчик номерует : первый адрес D:0X00:0
.........
.........
.........
.........
D:0XF5:5
то есть получается 246 байт ??? но как же так если всего 128 байт.

2)загружаю данные в ОЗУ ,через цикл , с адреса 0х08 и (почему то) по 0х80 то есть загружается
в общей сумме где то 123 байта - как такое может быть если первые 32 байта это банки регистров ,
следующие 16 байт это область памяти битовых адресов и только дальше следует 80 байт СВОБОДНОЙ ОБЛАСТИ
которую программист может использовать по своему усмотрению
3) D:0x00:0-что означает последний ноль ИЛИ КАКОВО ЕГО НАЗНАЧЕНИЕ?
CODE:

NAME PROGS
_CODE_ SEGMENT CODE

CSEG AT 0
USING 0
JMP BEGIN
RSEG _CODE_
BEGIN:
MOV R0,#0ffh//
MOV R1,#0x08//
MOV R2,#0beh//
MOV R3,#23H
MOV R4,#52H
MOV R5,#87H
MOV R6,#69H
MOV R7,#58H
FOR_1:
MOV A,#255
MOV @R1,A
INC R1
DJNZ R2,FOR_1
DJNZ R3,FOR_1
DJNZ R4,FOR_1

END
2. elmot - 13 Июля, 2013 - 01:31:16 - перейти к сообщению
Я не спец по 51м, но попробую. Судя по вики:
1) Озу 128 или 256, т.е. c 0x00 по 0xFF. D-вероятно признак того, что все в сегменте данных
2) банк регистров ничего не в начале, а начиная с 0x81
3) 16 байт - это побитно-адресуемая память, т.е. к ней возможен доступ и побайтно, и побитно. Она не является "занятой"
Что есть последний ноль - не знаю.
3. Predator - 13 Июля, 2013 - 13:41:29 - перейти к сообщению
вот, первый раз вижу, чтобы под кейлом на ассемблере писали, там-же С комплятор.
4. Fraktal - 13 Июля, 2013 - 16:21:36 - перейти к сообщению
elmot Если смотреть на область памяти при отладке то регистры заполняются начиная с адреса 0х00 и по 0х79 включительно.
"банк регистров ничего не в начале, а начиная с 0x81" - С АДРЕСА 0Х80 идет область регистров специальных функций - не путайте с банками регистров; про D я знал;
Благодарю за подсказку о свободном использовании побитовой области памяти. Predator Всю жизнь живи и учись и .........Улыбка