Изучение процессора

January 23, 2012 by admin Комментировать »

Теперь, применяя наши новые средства ввода и вывода, мы можем глубже покопаться в том, как функционирует процессор. Для микроЭВМ ВВС Micro имеется написанная на языке ассемблера программа EXPLORE, демонстрирующая выполнение процессором основных арифметических и логических функций, на основе которых строятся все более сложные операции. Главной составной частью программы является набор подпрограмм между строками 40-й и 520-й. Каждая подпрограмма начинается с метки (например, and) и заканчивается командой RTS (возвращение из подпрограммы в Бейсик). Каждая подпрограмма иллюстрирует один аспект функционирования процессора, используя данные, вводимые вручную ключами на входах порта ввода, и высвечивая результат на светодиодах, подключенных к выходам порта вывода. Комментарий в каждой строке, следующий за символом «\», объясняет ее назначение. Для удобства вызов каждой подпрограммы поставлен в соответствие отдельной программируемой функциональной клавише в строках 560-650. Символ | М в конце каждой строки программирования клавиши эквивалентен нажатию клавиши <return>, так что достаточно одиночного касания функциональной клавиши для вызова требуемой подпрограммы. Автоматическое повторение при удерживании клавиши в нажатом состоянии обеспечивает быстрое повторение подпрограммы, соответствующей выбранной функциональной клавише, в результате чего происходит периодически повторяющийся опрос порта ввода и выполнение действия, предусмотренного данной подпрограммой.

После ввода программы в компьютер следует сразу же запомнить ее на диске на тот случай, если какие-либо ошибки вызовут «фатальный сбой». Затем, набрав RUN <return>, оттранслируйте программу в машинный код. Теперь можно использовать функциональные клавиши для вызова подпрограмм по мере надобности. Можно наблюдать в действии различные логические и арифметические функции, а также операции, относящиеся к счету. Экспериментатор будет поражен тем, с какой легкостью можно воспользоваться микроЭВМ для выполнения этих функций по сравнению с длительной и трудоемкой аппаратной реализацией эквивалентных логических схем.

10 MODE 6

20 REM EXPLORE — программа на языке ассемблера для непосредственной демонстрации основных логических и арифметических операций в процессоре компьютера

30 Р% = &1800 : REM установка программного счетчика на адрес &1800, где располагается программа

40 [

50 .input

60 LDA#&00 \начальная загрузка нуля в аккумулятор

^ STA&FE62 \копирование аккумулятора (нуля) в ячейку &FE62 для установки порта &FE60 в режим ввода

80       RTS                         \возврат в Бейсик

90       .data

100     LDA&FE60            \загрузка аккумулятора данными из порта ввода &FE60

110     STA&FE61             \копирование аккумулятора в порт вывода &FE61

120     RTS                          \возврат в Бейсик

130     .and

140     LDA&FE60            \загрузка аккумулятора данными из порта ввода

150     AND&FE61            \поразрядное И с двоичным словом из порта вывода

160     STA&FE61             \копирование результата в порт вывода

170     RTS                         \возврат в Бейсик

180     .or

190  LDA&FE60                        \загрузка аккумулятора данными из порта ввода

200  ORA&FE61                       \поразрядное ИЛИ с двоичным словом из порта вывода

210  STA&FE61                        \копирование результата в порт вывода

220  RTS      \возврат в Бейсик

230  .ехог

240  LDA&FE60                        \загрузка аккумулятора данными из порта ввода

250  EOR&FE61                        \поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ с двоичным сло-вом из порта вывода

260  STA&FE61                        \копирование результата в порт вывода

270  RTS      \возврат в Бейсик

280  .countup

290  INC&FE61                         \добавление 1 к числу на порте вывода

300  RTS      \возврат в Бейсик

310  .countdown

320  DEC&FE61                       \вычитание 1 из числа на порте вывода

330  RTS      \возврат в Бейсик

340  .shiftright

350  LSR&FE61                        \сдвиг слова на порте вывода на один разряд вправо

360  RTS      \возврат в Бейсик

370  .shiftleft

380  ASL&FE61                        \сдвиг слова на порте вывода на один разряд влево

390  RTS      \возврат в Бейсик

400  .add

410  LDA&FE60                       \загрузка аккумулятора данными из порта ввода

420  CLC     \запись 0 в признак переноса

430  ADC&FE61                       \сложение числа на порте вывода с содержимым аккумулятора

440  STA&FE61                        \копирование результата в порт вывода

450  RTS      \возврат в Бейсик

460  subtract

470  LDA&FE61                       \загрузка аккумулятора данными из порта вывода

480  SEC      \запись 1 в признак переноса

490  SBC&FE60                        \вычитание числа на порте ввода из содержимого аккумулятора

500  STA&FE61                        \копирование результата в порт вывода

510  RTS     \возврат в Бейсик

530  REM программа начинает исполняться с запуска подпрограммы <input> для инициализации порта ввода

540     CALL input

550  REM далее функциональные клавиши программируются на вызов логических подпрограмм

560     *KEY0 CALL data | М

570     *KEY1 CALL and | M

580     *KEY2 CALL or | M

590     *KEY3 CALL exor | M

600     *KEY4 CALL countup | M

610     * KEY5 CALL countdown | M

620     *KEY6 CALL shiftright |M

630     *KEY7 CALL shiftleR | M

640     *KEY8 CALL add | M

650     * KEY9 CALL subtract | M

Главное достоинство этой программы заключается в том, что она является занимательной иллюстрацией к тому факту, что основные логические и арифметические функции, а также операции счета, рассмотренные нами в гл. 13 с точки зрения их схемной реализации на логических элементах, составляют также суть того, что происходит в процессоре. Приобретя опыт в отношении логических И и ИЛИ, а также в сложении, вычитании и сдвиге, мы можем видеть теперь, что вся внушающая благоговение мощь компьютера своим происхождением обязана эффективному расположению в нужном порядке простых логических функций.

Хотя язык ассемблера, на котором написана программа «EXPLORE», специфичен для процессора 6502 и микроЭВМ ВВС Micro, ее можно адаптировать применительно к компьютерам семейства IBM. Читатель, у которого есть такой персональный компьютер с портами ввода и вывода и возможность работать на языке ассемблера, может поэкспериментировать с переписыванием программы «EXPLORE» на языке ассемблера процессоров Intel 80X86. Следует проявить аккуратность при использовании подходящих адресов портов ввода и вывода (&Н0301 и &Н0300 в схеме на рис. 14.17 соответственно). Как и в микроЭВМ ВВС Micro, параллельный порт в персональном компьютере является полезным средством сопряжения для вывода данных; он располагается по адресу, лежащему в интервале &Н0378—037F.

Литература: М.Х.Джонс, Электроника — практический курс Москва: Техносфера, 2006. – 512с. ISBN 5-94836-086-5

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты