1

Тема: Резидентна пам'ять даних, пам'ять програм

Вітаю форумчани, я тільки-но почав вчити ассемблер, а точніше сказати мову A51 середовища Keil для МК Intel 8051AH.
Для зневадження використовую віртуальний пристрій і хочу розібратися із пам'яттю.
Знаю, що є 4 блоки пам'яті CODE, XCODE, DATA, XDATA.
І за завданням виконую ось такий код:

NAME LAB_2_examples

CSEG    AT    0C000h
    ORG    0C000h

    MOV    R0, #41H    ; Завантаження в R0 покажчика РПД
    MOV    @R0, #1CH    ; Завантаження в РПД числа 1Ch
    INC    R0        ; Просування покажчика в РПД
    MOV    @R0, #3AH    ; Завантадення в наступну комірку РПД числа 3Ah

END

Запускаючи зневаджувач бачу от таке, як в докладеному файлі.
Там я обвів чотири блоки пам'яті і хочу запитати чи дійсно вони і є ті самі CODE, XCODE, DATA, XDATA, а також я не можу знайти числа, які ми записали в РПД, де їх шукати?

Post's attachments

keil_debugger_interface.png 105.46 kb, 329 downloads since 2013-10-21 

2

Re: Резидентна пам'ять даних, пам'ять програм

Memory#1 - це пам'ять кодів. Її можна вручну редагувати. Якщо там зробити всі нулі - то програма зітреться і нічого не виконається. Значить пам'яттю даних може бути Memory#2, Memory#3, Memory#4.
Однак в жодній із них за адресою 41h, або ж 0x41 після виконання програми нічого немає.

3

Re: Резидентна пам'ять даних, пам'ять програм

Завдяки однокурснику вдалося розібратись що і до чого.
Насправді Memory#1,2,3,4 - це просто чотири вікна із, типово, однаковим вмістом.
Тобто в кожному із них за типовими налаштуваннями відображається пам'ять кодів, про це свідчить велика літера C, якщо треба отримати доступ до пам'яті даних, то потрібно вводити адресу так: D: 0x41.
Пробором по алфавіту вдалось отримати доступ до таких типів пам'яті
С - CODE
D - DATA
I - ?
S - ?
T - ?
U - ?
V - ?
X - XDATA або XCODE, але точно не впевнений.