U ARM (jew saħansitra x 86) MCU / CPU bi struttura von Neumann, l-ispazju tal-indirizzi tagħha huwa unifikat u kontinwu, memorja tal-kodiċi / RAM / CPU reġistri, u anke memorja tal-vidjow tal-PC huma kollha indirizzati b'mod uniformi. Huwa biss li l-memorja b'funzjonijiet differenti tokkupa blokki ta 'indirizzi differenti, u jagħmlu l-affarijiet tagħhom stess.
Tajjeb, ħalli lil 39 jmorru lura għall-MCS-51.
Għall-memorja tal-programm, hemm żewġ partijiet: on-chip u off-chip. U irrispettivament mill-memorja tal-programm on-chip jew il-memorja tal-programm off-chip, l-indirizzi tagħhom jinqasmu. Jekk hemm 4k ROM on-chip, l-indirizz huwa 0x0000-0x0FFF, u 0x1000-0xFFFF huwa l-ispazju tal-indirizz tar-ROM esterna. Jekk tintuża l-parti 0x0000-0x0FFF tar-ROM esterna, tiddependi fuq il-valur tal-livell tal-pin EA tal-mikrokontrollur. Meta EA=1, tintuża din il-parti tar-ROM interna, u din il-parti tar-ROM esterna tinħela u ma tintużax; meta EA=0, tintuża din il-parti tar-ROM esterna, u r-ROM interna tinħela u ma tintużax. Biex taqra dejta mis-segment KODIĊI, uża l-istruzzjoni MOVC immuntata. Il-mikrokompjuter b'ċippa waħda jiddetermina awtomatikament minn liema memorja ġġib id-dejta minn skont l-istruzzjoni MOVC, l-istatus EA, u l-valur tal-indirizz li għandu jinqara
Għall-memorja tad-dejta, hija maqsuma f'żewġ partijiet: memorja tad-dejta interna (IDATA / RAM) u memorja tad-dejta esterna (XDATA), iżda dawn iż-żewġ memorji ma jaqsmux l-ispazju tal-indirizz bħall-memorja tal-kodiċi. Iċ-ċippa ġenerali 8051, il-RAM interna hija biss 128B, minn 0x00-0x7F, u minn 0x80-0xFF hija ż-żona ta 'SFR (reġistri tax-xogħol tas-CPU u diversi reġistri periferali huma hawn). Għat-8052, ir-RAM interna għandha 256B, għalhekk 0x80-0xFF hija l-128B RAM għolja li qed tintuża. Imma mhix' din il-parti ddedikata għall-SFR? Huwa' iddedikat għall-SFR, imma innota li l-aċċess SFR jista 'juża biss" indirizzi diretti" (implimentat bl-użu ta 'struzzjonijiet ta' assemblaġġ speċifiċi), id-differenza qiegħda hawn. L-indirizz aċċessat bl-indirizzar dirett biss huwa SFR, inkella huwa RAM ordinarju. Fir-rigward tar-RAM estiża (XDATA), l-indirizz huwa wkoll minn 0x0000-0xFFFF, u 0x0000 hawnhekk huwa differenti minn 0x00 tar-RAM interna, u huma kompletament indipendenti minn żewġ spazji. Il-metodi ta 'aċċess tagħhom huma wkoll differenti. MCS-51 juża struzzjoni MOVX biex jaqra u jikteb iż-żona XDATA. Barra minn hekk, aċċess għaż-żona XDATA jeħtieġ l-għajnuna tar-reġistru DPTR. Minħabba li DPTR biss jista 'jżomm l-indirizz XDATA li jmiss ta' 16-il bit.
Allura, MCS-51 għandu l-aktar veloċità ta 'qari u kitba taż-żona IDATA u l-aktar metodi ta' aċċess. Il-veloċità ta 'aċċess għaż-żona XDATA hija relattivament bil-mod. Il-munzell ta 'MCS-51 għandu jiġi żviluppat l-ewwel fiż-żona IDATA, u l-munzell miftuħ fiż-żona IDATA jista' jiġi kkontrollat mir-reġistru tal-pointer tal-munzell SP. Jekk il-munzell huwa verament kbir wisq u jista 'jinfetaħ biss fiż-żona XDATA, allura r-reġistru SP tas-CPU ikun diffiċli biex tissellef, u nistgħu nibnu biss l-istruttura tal-munzell u l-pointer tal-munzell aħna stess. Peress li l-ispazju tal-programm estern u l-ispazju tad-dejta huma t-tnejn 0-64K (0x0000-0xFFFF), allura nista 'attwalment niffranka problemi / programmi konvenjenti ta' kitba mill-ġdid u raġunijiet oħra, il-KODIĊI u d-DATA esterni jistgħu jaqsmu memorja li tista 'tinkiteb mill-ġdid (bħal varji What RAM jista' jitħassar u jinkiteb). Pereżempju, is-sistema għandha MEMORJA esterna ta '64K. It-32K l-aktar baxx jintuża biex isalva l-KODIĊI, u l-mikrokontrollur jista 'jaqra u jmexxi l-programm f'dan it-32K, u l-ogħla 32K jintuża bħala l-post tal-ħażna għad-dejta tal-utent. Iżda f'dan iż-żmien, l-ispazju KODIĊI u DATA oriġinarjament kompletament indipendenti, minħabba li MEMORJA hija maqsuma fuq iċ-ċippa tal-hardware, jistgħu jaffettwaw lil xulxin, u l-programm jista 'jikteb il-programm waħdu. Pereżempju, 0x0020 huwa struzzjoni, u nikteb mill-ġdid 0x0020 permezz ta 'MOVX, imbagħad nuża MOVC biex taqra 0x0020, u d-dejta hija differenti mill-oriġinali.
Il-qofol tal-konfużjoni huwa li l-ispazju tal-ħażna tal-mikrokompjuter b'ċippa waħda huwa kunċett loġiku, li huwa żewġ spazji separati li huma artifiċjalment maqsuma. Iċ-ċippa MEMORY fuq iċ-ċirkwit tal-hardware hija kunċett fir-realtà. L-ispazju tal-ħażna tal-mikrokompjuter b'ċippa waħda eventwalment jiġi implimentat fuq iċ-ċippa fil-livell taċ-ċirkwit, għalhekk l-ispazju tal-ħażna loġika se jikkoinċidi minħabba l-konnessjoni taċ-ċirkwit fiżiku. Iżda fil-livell loġiku, dawn iż-żewġ spazji għadhom kompletament indipendenti.
Mehmuż: Definizzjoni ta 'diversi ismijiet ta' spazju għall-ħażna:
Dejta: irreferi b'mod fiss għall-128 RAM ta '0x00-0x7f fuq quddiem, li jistgħu jinqraw u jinkitbu direttament minn reġistru, l-iktar kodiċi mgħaġġel u l-iżgħar iġġenerat.
Idata: b'mod fiss tirreferi għall-256 RAM ta '0x00-0xff fuq quddiem, li l-ewwel 128 tagħhom huma eżattament l-istess bħall-128 tad-dejta, sempliċement minħabba l-metodi ta' aċċess differenti. idata hija aċċessata bl-użu ta 'pointer simili għal C. Id-dikjarazzjoni fl-assemblea hija: mov ACC, @ Rx. (mhux suppliment importanti: idata f'ċ għandha effett tajjeb ta 'aċċess għall-pointer) xdata: RAM estiża esterna, ġeneralment tirreferi għall-ispazju estern 0x0000-0xffff, li huwa aċċessat minn DPTR. pdata: l-inqas 256 bytes tal-RAM estiż estern, aqra u tikteb meta l-indirizz jidher fuq A0-A7, uża movx ACC, @Rx biex taqra u tikteb. Dan huwa pjuttost speċjali, u C51 jidher li għandu dan il-bug, huwa rrakkomandat li tuża inqas. Iżda hemm ukoll il-vantaġġi tiegħu. L-użu speċifiku huwa problema intermedja, ma nafx kif nużah 39, allura rbaħt' ma nsemmix hawn.








