|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[31] вательности. При Х<0 происходит запуск псевдослучайной последовательности (своей для каждого X), при Х=0 - повторение последнего результата; SGN (X) - 1 при Х<0; 0 при Х=0; 1 при XX); ABS (X) - модуль X; SQR (X) - положительный квадратный корень X; EXP (X) - экспонента X; LOG (X) - натуральный логарифм X. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА Управление ассемблированием (работой ассемблера). Фрагмент программы *{СМЕШЕНИЕ. } АДРЕС: используется для входа в режим ассемблирования. АДРЕС - выражение, задающее начальный адрес записи формируемого кода при ассемблировании. СМЕЩЕНИЕ - выражение, задающее начальное значение адреса, используемого для ссылок на формируемый код (адрес программы при исполнении). Например, в результате выполнения *ft 1234, й 1100:! МЕТКА: = МЕТКА!: по адресу ft 1100 будет записано слово ft 3412. Если указано одно выражение, адрес и смещение совпадают. ! - сигнал входа в ассемблер и разделитель команд ассемблирования внутри строки; он должен предшествовать каждой команде ассемблера; !: - пустая команда ассемблера, служит сигналом перехода на второй проход или сигналом конца ассемблирования. Ассемблирование проводится в два прохода. На первом проходе определяются форматы операндов и значения меток, форматы команд записываются на место объектного кода. Просмотр текста происходит в порядке исполнения строк интерпретатора языка БЕЙСИК, содержащих команды ассемблера. При исполнении на первом проходе пустого оператора управление передается (аналогично GOTO) первому встреченному после входа в режим ассемблирования оператору со знаком Программа должна обеспечивать второй проход операторов ассемблирования в том же порядке, что и на первом проходе (все операторы интерпретатора языка БЕЙСИК при этом исполняются второй раз). На втором проходе формируется двоичный код, значения меток сохраняются и могут быть в дальнейшем использованы в качестве операндов CALL и USR для исполнения участков кода, а также отладочными директивами для просмотра и модификации кодовых участков. Команды ассемблера могут быть помечены. Метками служат целые и вещественные переменные языка БЕЙСИК, например: 5 КОН = FDDF 10 ! DM1:M2% : LDA ft 55! STA ft 666 20 ! JSR KON RTS 30 !: Команды ассемблера подразделяются на программные команды и константы. Константы ассемблера. Имеется восемь констант ассемблера: 1)! (выражение) - загружает пять байтов вещественным значением выражения, вычисленным на втором проходе, в представлении интерпретатора; 2)< (выражение) - загружает один байт старшим байтом целого значения выражения; 3)> (выражение) - то же, но загружает младший байт; 4)= (выражение) - загружает два байта целым значением в порядке "младший, старший", т.е. в формате адреса системы команд процессора; 5)@ (выражение) - то же, что и константа », но в порядке "старший, младший", т.е. в формате данных интерпретатора; 6)Д {hex, hex} (четное число шестнадцатеричных цифр) - шестнадцатерич-ная загрузка области; 7)! ("строка длиной") - загружает байт кодами КОИ-7 символов строки (старший бит "О"); 8)# (выражение) - увеличивает значение счетчиков адреса и смещения на значение выражения. На рис. 5.3 приведен пример, иллюстрирующий применение констант. Программные команды ассемблера. Первое поле программной команды -мнемокод операции, затем может следовать операнд. Мнемокоды и виды адресации записываются так, же как описано п. 5.1. В качестве содержимого операнда могут применяться константы типа 2JL - 4), а в непосредственных операндах - также и типа 7) длиной в один символ. При использовании в качестве операндов констант типа < и > формат адресации однобайтный, типа = - двубайтный. В случае отсутствия перед операндом знаков >, <,= формат адресации определяется следующим образом. Бели в выражении имеется идентификатор, значение которого не определено на первом проходе к данному моменту, то формат адресации двубайтный. В противном случае формат адресации определяется значением выражения: при значении выражения, меньшем 256, формат адресации однобайтный; в остальных случаях - двубайтный. Предусмотрены дополнительные возможности введения комментариев в любой команде от символа ";" до конца команды или конца строки. Текст комментария при выполнении игнорируется. Пример использования комментариев приведен на рис. 5.4. Средства отладки. Здесь и в дальнейшем под адресом ячейки памяти будем понимать значение выражения. К средствам отладки относятся команды: *(выражение) - осмотр содержимого ячейки памяти по заданному адресу; например: *Д 1000 1000-ВВ *(выражение 1). (выражение 2) - осмотр интервала памяти по заданным начальному и конечному адресам; например, после директивы: * ft 100. Д 127 на экране появится следующая информация: 0100 - АААААААААААААААА 0118 - 10 10 10 10 10 10 10 10 0120 - ID ID ID ID ID ID ID 1D *(выражение) # (выражение 2) • (выражение 3) М - передвижение интервала памяти; *(выражение 1) Ф (выражение 2) • (выражение 3) V - сравнение двух интервалов памяти; 3LIST JLIST 10 20 30 40 SO 60 70 80 90 91 92 93 94 95 96 97 98 HI - *100s LNGTH - li M2 У. - Ml - LNGTHiX -1.57 * *1000i ! ! SIN <X> + COS < X) -Ml * 12 > Ml + 16 * LNGTH М2Я + 100 ♦AAB6F7FD0001 OM1 + 256 + 80 -*FDF4 «81 "ТАБЛИЦА" Ki REM ПОСЛЕ RUN СФОРМИРУ ЕТСЯ КОД REM 1000 -81 00 1A 15 68 00 ОС 45 REM 1008 -AA B6 F7 FD 00 01 02 50 REM 1010 -F4 FD 81 74 61 62 ОС 69 REM 1018 -63 61 REM ГДЕ i REM 1000-1004 -ПРЕДСТА ВЛЕНИЕ ВЕЩЕСТВЕННОГО 1.00079601 REM 1005-1006 АДРЕС *C 00(12*236) REM 1007 -МЛАДШИЙ БАЙТ ЗНАЧЕНИЯ *100+*F0+*F l+*64«*345 REM 1008-100D -ПОСЛЕДО ВАТЕЛЬНОСТЬ БАЙТ AAB6 F7FD0001 REM 100E-100F -ЦЕЛОЕ П РЕДСТАВЛЕНИЕ 592-*250 100 REM 1010-1011 -АДРЕС *FDF4 110 REM 1012-БАЙТ * 81 120 REM 1013-1019 -ТЕКСТ ТАБЛИЦА К ПОЛУЧИЛА ЗН АЧЕНИЕ «101А-4122 Рис. 5.3. Использование констант 5 GOTO 65 10 REM МАКРООПРЕДЕЛЕНИЕ 20 ! PLA STA 10 PLA STA1 30 RETURN 4 0 REM МАКРООПРЕДЕЛЕНИЕ Д ЛЯ ВОЗВРАТА 50! LDA1 РНА LDA 0 РНА RTS 60 RETURN 65 * 4096i ! BEGINiNOPlTPEByET СЯ ДЛЯ ПРАВИЛЬНОГО HA ЧАЛА ВТОРОГО ПРОХОДА 70 REM ПОДПРОГРАММА ПЕЧАТ И И ВЫБРАСЫВАНИЯ 3-Х БАЙТ ИЗ СТЕКА 80 GOSUB 10 90 FOR I - 1 ТО 3 100 ! PLA ! JSR*FDF4I ПОДПРОГР AMMA COUT СИСТЕМНОГО МОНИТОРА 110NEXT I GOSUB 4 0 130 MJ - Oi REM ИСПОЛЬЗОВ АНИЕ МАКРООПРЕДЕЛЕНИЯ С МЕТКАМИ 140 SR - 5000i DS « 8000i LN - 33IИСТОЧНИК,ПОЛ УЧАТЕЛЬ.ДЛИНАПЕРЕПИСИ 150 GOSUB 1000 160 SR - 5100: DS - 7000: LN - 99: GOSUB 1000 ! : END MJ « MJ + 1 : REM HA ЧАЛО МАКРООПРЕДЕЛЕНИЯ ПЕРЕПИСИ LDX**0SL< MJ)1 LDA - SR,XIПРИКАЖДОМНОВ ОММАКРОВЫЗОВЕМЕТКОЙБУ ДЕТОЧЕРЕДНОЙЭЛЕМЕНТМА ССИВА STA - DS,X INX: CPX* > LN BNE - L< MJ)(ПЕРЕХ ОД ВНУТРИ МАКРООПРЕДЕ ЛЕНИЯ 1040 RETURN 170 1000 1010 1020 1030 Рнс. 5.4. Применение комментариев 4 Зак. 34 I |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||