Цифровые устройства и микропроцессор. Программирование микроконтроллеров семейства MCS-51. Жаринов О.О. - 8 стр.

UptoLike

Составители: 

8
после закрытия окна с сообщением об ошибке ввод все же производит-
ся, но константа воспринимается как введенная в десятичном формате
(например, вместо введенной константы #80 в окне «Дизассемблер»
появится число #50, так как десятичному числу 8010 соответствует 50h),
а то и вовсе заменяется числом #00h. Есть 2 способа решения этой про-
блемы: либо следует вводить числа в двоичном формате, добавляя в
конце без пробела символ «b» (например, так: MOV A,#11111111b); либо,
после появления команды в окне «Дизассемблер», можно «перебивать»
шестнадцатеричный код константы непосредственно в поле кода ко-
манды (второй столбец символов) на нужное значение. Этот способ
удобнее, особенно при корректировке команд передачи управления, –
можно быстро «подбирать» адрес перехода. Таким же образом можно
вводить и сами шестнадцатеричные коды команд.
По мере накопления опыта работы с системой команд ассемблера
метод «перебивки» шестнадцатеричных кодов непосредственно во вто-
ром столбце окна «Дизассемблер» зачастую даже значительно ускоряет
ввод программы по сравнению с вводом более длинных ассемблерных
инструкций.
Необходимо ещe заметить, что в рассматриваемой программе (как во
всех программах-отладчиках подобного типа) невозможно осуществ-
лять вставку команды в какое-либо место между двумя ассемблерными
инструкциями – можно только заменять одну инструкцию на другую.
А если после тестирования написанной программы и выявления оши-
бок все же выяснится, что без такой вставки никак не обойтись, то
обычно приходится переписывать и всю программу, расположенную
ниже места вставки. Чтобы избежать этого утомительного процесса,
при написании первых вариантов программ следует резервировать мес-
то под возможные вставки, «разбавляя» программу инструкциями типа
NOP, которые никак не влияют на логику работы программы. Следует
иметь в виду, что под вставку 3-байтовой команды понадобится три
инструкции типа NOP, идущие подряд. И лишь после полной отладки
логической структуры программы ее «ужимают»; при этом, конечно,
приходится корректировать значения адресов переходов.
Еще одна опасность, подстерегающая при написании программы на
ассемблере, состоит в том, что после замены длинной (2 или 3-байто-
вой) инструкции на инструкцию меньшей длины, остающийся «хвост»
онстанта или адрес) интерпретируется отладчиком уже как самостоя-
тельная инструкция, ничего общего не имеющая ни со старой, ни с