Mortorola 68k: как строка ASCII хранится в адресном регистре a0

Я очень новичок в программировании на ассемблере в 68k. Я использую Easy68k.

У меня есть программа:

    ORG    $1000
START:                

* Put program code here

    lea MSG,a1      ; loads MSG into address register a1
    move.b #14,d0   ; 14 gets coverted to hex E
    trap #15

    move.b #9,d1    ; 9 decimal gets converted t hex 9
    SIMHALT             ; halt simulator

* Put variables and constants here

MSG dc.b    'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout',0 

    END    START        ; last line of source

Насколько мне известно, адресный регистр a1 может хранить элементы длинного слова. Но вы видите строку

«Это давно установленный факт, что читатель будет отвлекаться на удобочитаемое содержание страницы при просмотре ее макета».

преобразовав его в формат ASCII, вы увидите, что шестнадцатеричный размер каждого слова превысит длину длинного слова.

Итак, как хранится эта строка? Я хочу понять, как сборка хранит и отображает строку на экране.

Может кто-нибудь объяснить?


person Saad A    schedule 14.02.2016    source источник


Ответы (1)


Комментарий "загружает MSG в адресный регистр a1" несколько вводит в заблуждение. То, что вы загружаете в a1, не является содержимым MSG; вы загружаете адрес MSG. Метка (например, MSG) — это просто имя для некоторого места в вашей программе, которое делает удобным обращение к этому месту.

Адрес имеет фиксированный размер, который помещается в регистр и не зависит от данных, хранящихся по этому адресу.

person Michael    schedule 14.02.2016
comment
хорошо, спасибо, это проясняет это. Но как тогда хранятся данные. также, сколько памяти у 68k с точки зрения памяти в строках и столбцах? - person Saad A; 14.02.2016
comment
Данные хранятся где-то в памяти в любой подходящей кодировке. ЦП не имеет никакого объема памяти. Объем ОЗУ/ПЗУ, доступный для кода и данных, зависит от целевой системы (которой для процессора 68 КБ может быть, например, Amiga 500, Atari ST520 или Macintosh IIx). - person Michael; 14.02.2016