И АРМ (или чак к 86) МЦУ / ЦПУ са вон Неуманновом структуром, његов адресни простор је обједињен и континуиран, меморија кода / РАМ / ЦПУ регистри, па чак и ПЦ видео меморија су сви адресирани једнолико. Управо ГГ # 39; та меморија са различитим функцијама заузима различите блокове адреса и они раде своје.
У реду, вратимо се ГГ # 39; МЦС-51.
За програмску меморију постоје два дела: на чипу и ван чипа. Без обзира на програмску меморију на чипу или програмску меморију ван чипа, њихове адресе се деле. Ако је на чипу 4к РОМ, адреса је 0к0000-0к0ФФФ, а 0к1000-0кФФФФ је адресни простор спољног РОМ-а. Да ли се користи 0к0000-0к0ФФФ део спољног РОМ-а, то зависи од вредности нивоа ЕА пина микроконтролера. Када је ЕА=1, користи се овај део унутрашњег РОМ-а, а овај део спољног РОМ-а се троши и не користи; када је ЕА=0, користи се овај део спољног РОМ-а, а унутрашњи РОМ се троши и не користи. Да бисте прочитали податке из сегмента ЦОДЕ, користите састављену МОВЦ упуту. Микрорачунало са једним чипом аутоматски ће одредити из које меморије ће се преузимати подаци према упутству МОВЦ, статусу ЕА и вредности адресе коју треба прочитати
За меморију података подељена је на два дела: интерна меморија података (ИДАТА / РАМ) и екстерна меморија података (КСДАТА), али ове две меморије не деле адресни простор попут меморије кода. Општи чип 8051, унутрашња РАМ меморија је само 128Б, од 0к00-0к7Ф, а од 0к80-0кФФ је подручје СФР (овде су радни регистри ЦПУ-а и различити периферни регистри). За 8052, интерна РАМ меморија има 256Б, тако да је 0к80-0кФФ велика 128Б РАМ меморија која се користи. Али није ли ГГ # 39; овај део посвећен СФР-у? ГГ # 39 је посвећен СФР-у, али имајте на уму да СФР приступ може да користи само ГГ „директно адресирање ГГ“; (имплементирано помоћу посебних упутстава за склапање), разлика је овде. СФР је само адреса којој се приступа директним адресирањем, иначе је то обична РАМ меморија. Што се тиче проширеног РАМ-а (КСДАТА), адреса је такође од 0к0000-0кФФФФ, а 0к0000 се овде разликује од 0к00 интерне РАМ-а и они су потпуно независни од два простора. Њихови начини приступа су такође различити. МЦС-51 користи МОВКС инструкције за читање и писање КСДАТА подручја. Штавише, приступ подручју КСДАТА захтева помоћ ДПТР регистра. Јер само ДПТР може да садржи следећу 16-битну КСДАТА адресу.
Дакле, МЦС-51 има најбржу брзину читања и писања у ИДАТА подручју и највише метода приступа. Брзина приступа подручју КСДАТА је релативно спора. Стек МЦС-51 треба прво развити у ИДАТА подручју, а стек отворен у ИДАТА подручју може се контролисати помоћу регистра показивача стека СП. Ако је стек заиста превелик и може се отворити само у КСДАТА подручју, тада ће бити тешко позајмити СП регистар ЦПУ-а, а структуру стека и показивач стека можемо конструисати само сами. Будући да су спољни програмски простор и простор података 0-64К (0к0000-0кФФФФ), тада заправо могу да уштедим проблеме / погодно преписивање програма и из других разлога, спољни КОД и ПОДАЦИ могу делити меморију за поновно уписивање (као што су различити Шта РАМ може бити избрисани и записивати). На пример, систем има 64К спољног МЕМОРИ-а. Доњи 32К користи се за чување КОДА, а микроконтролер може читати и покретати програм у овом 32К, а виши 32К се користи као место за складиштење корисничких података. Али у овом тренутку, првобитно потпуно независан КОД и ПОДАЦИ простор, јер се МЕМОРИЈА дели на хардверском чипу, они могу утицати једни на друге, а програм може сам да препише програм. На пример, 0к0020 је инструкција, а ја преписујем 0к0020 кроз МОВКС, а затим користим МОВЦ за очитавање 0к0020 и подаци се разликују од оригинала.
Суштина забуне је у томе што је простор за складиштење микрочипа са једним чипом логичан концепт, а то су два одвојена простора која су вештачки подељена. Чип МЕМОРИ на хардверском колу је концепт у стварности. Простор за складиштење микрочипа са једним чипом на крају ће бити имплементиран на чип на нивоу кола, тако да ће се логички простор за складиштење преклапати због везе физичког кола. Али на логичком нивоу, ова два простора су и даље потпуно независна.
Прилог: Дефиниција различитих назива простора за складиштење:
Подаци: фиксно се позивају на 128 РАМ-а од 0к00-0к7ф са предње стране, који се могу директно читати и писати помоћу регистра, најбржег и најмање генерисаног кода.
Идата: фиксно се односи на 256 РАМ-а од 0к00-0кфф у предњем делу, од којих је првих 128 потпуно исто као 128 података, само због различитих метода приступа. идата се приступа помоћу показивача сличног Ц. Изјава у склопу је: мов АЦЦ, @ Рк. (није важан додатак: идата у ц има добар ефекат приступа показивачу) кдата: екстерни проширени РАМ, обично се односи на спољни 0к0000-0кфффф простор којем приступа ДПТР. пдата: доњих 256 бајтова екстерне проширене РАМ меморије, читајте и пишите када се адреса појави на А0-А7, користите мовк АЦЦ, @Рк за читање и писање. Ово је сасвим посебно, а чини се да Ц51 има ову грешку, препоручује се употреба мање. Али ту су и његове предности. Конкретна употреба је средњи проблем, не знам ГГ # 39; не знам како да га користим, па сам победио у ГГ # 39; овде то не спомињем.







