Научная литература
booksshare.net -> Добавить материал -> Физика -> Джонс М.Х. -> "Электроника - практический курс" -> 168

Электроника - практический курс - Джонс М.Х.

Джонс М.Х. Электроника - практический курс — М.: Постмаркет, 1999. — 528 c.
ISBN 5-901095-01-4
Скачать (прямая ссылка): elektronika1999.djvu
Предыдущая << 1 .. 162 163 164 165 166 167 < 168 > 169 170 171 172 173 174 .. 195 >> Следующая

вызов каждой подпрограммы поставлен в соответствие отдельной
программируемой функциональной клавише в строках 560-650. Символ I М в
конце каждой строки программирования клавиши эквивалентен нажатию клавиши
<retum>, так что достаточно одиночного касания функциональной клавиши для
вызова требуемой подпрограммы. Автоматическое повторение при удерживании
клавиши в нажатом состоянии обеспечивает быстрое повторение подпрограммы,
соответствующей выбранной функциональной клавише, в результате чего
происходит периодически повторяющийся опрос порта ввода и выполнение
действия, предусмотренного данной подпрограммой.
После ввода программы в компьютер следует сразу же запомнить ее на диске
на тот случай, если какие-либо ошибки вызовут "фатальный сбой". Затем,
набрав RUN <retum>, оттранслируйте программу в машинный код. Теперь можно
использовать функциональные клавиши для вызова подпрограмм по мере
надобности. Можно наблюдать в действии различные логические и
арифметические функции, а также операции, относящиеся к счету.
Экспериментатор будет поражен тем, с какой легкостью можно
воспользоваться микроЭВМ для выполнения этих функций по сравнению с
длительной и трудоемкой аппаратной реализацией эквивалентных логических
схем.
10 MODE 6
20 REM EXPLORE - программа на языке ассемблера для непос-
30 Зак. 4729.
466 МикроЭВМ и их применения
редственной демонстрации основных логических и арифметических операций в
процессоре компьютера 30 Р% = &1800 : REM установка программного счетчика
на адрес &1800, где располагается программа 40 [
50 .input
60 LDA#&00 \ начальная загрузка нуля в аккумулятор
70 STA&FE62 \ копирование аккумулятора (нуля) в ячейку
&FE62 для установки порта &FE60 в режим ввода
\ возврат в Бейсик
\ загрузка аккумулятора данными из порта ввода &FE60
\ копирование аккумулятора в порт вывода &FE61
\ возврат в Бейсик
\ загрузка аккумулятора данными из порта ввода
\ поразрядное И с двоичным словом из порта вывода
\ копирование результата в порт вывода \ возврат в Бейсик
\ загрузка аккумулятора данными из порта ввода
\ поразрядное ИЛИ с двоичным словом из порта вывода
\ копирование результата в порт вывода \ возврат в Бейсик
\ загрузка аккумулятора данными из порта ввода
\ поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ с двоичным словом из порта вывода \
копирование результата в порт вывода \ возврат в Бейсик
\ добавление 1 к числу на порте вывода \ возврат в Бейсик
\ вычитание 1 из числа на порте вывода \ возврат в Бейсик
\ сдвиг слова на порте вывода на один разряд вправо
80 RTS
90 .data
100 LDA&FE60
110 STA&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 .exor
240 LDA&FE60
250 EOR&FE61
260 STA&FE61
270 RTS
280 .countup
290 INC&FE61
300 RTS
310 .countdown
320 DEC&FE61
330 RTS
340 .shiftright
350 LSR&FE61
Изучение процессора 467
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 \ возврат в Бейсик
520 ]
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 shiftleft |M 640
*KEY8 CALL add |M 650 *KEY9 CALL subtract |M
Главное достоинство этой программы заключается в том, что она является
занимательной иллюстрацией к тому факту, что основные логические и
арифметические функции, а также операции счета, рассмотренные нами в
главе 13 с точки зрения их схемной реализации на логических элементах,
составляют также суть того, что происходит в процессоре. Приобретя опыт в
отношении логических И и ИЛИ, а также в сложении, вычитании и сдвиге, мы
можем видеть теперь, что вся внушающая благоговение мощь компьютера своим
происхождением обязана эффективному расположению в нужном порядке простых
логических функций.
468 МикроЭВМ и их применения
Хотя язык ассемблера, на котором написана программа "EXPLORE", специфичен
для процессора 6502 и микроЭВМ ВВС Micro, ее можно адаптировать
применительно к компьютерам семейства IBM. Читатель, у которого есть
такой персональный компьютер с портами ввода и вывода и возможность
работать на языке ассемблера, может поэкспериментировать с переписыванием
Предыдущая << 1 .. 162 163 164 165 166 167 < 168 > 169 170 171 172 173 174 .. 195 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed