asm

Статьи про асемблер

Задержка на МК AVR ATmega на asm

Как вы понимаете задержка в микроконтроллерном программировании весч не просто нужная, а просто необходимая.

И если написать на C может и дурак (в виде цикла конечно), то на asm не все начинающие..

Итак. Задержка делается путём реализации вложенного цикла.

Нам понадобиться 2 регистра и немного команд из набора ассемблера для AVR.

При помощи директив ассемблера зададим 2 параметра. Количество проходов внешнего и внутренного циклов.

Первый проект на ассемблере AVR ATmega в AVR Studio

Так уж сложилось, что к большинству статей я прикладываю исходники в виде проекта, или схему или ещё чего... Долго думал, что же "приложить" к этой статье.. Ох уж этот асм..

Проект на языке ассемблера для AVR контроллеров создать не особо сложно (утверждение касается только этого - "пилотного" проекта). Буду предполагать, что читатель знаком с основами языка ассемблера, и различает команды от директив.

Вычисление логических функций в МП методом таблиц истинности на ассемблере

Одним из методов вычисления логических функций в микропроцессорах на языках ассемблера является - метод таблиц истинности. При этом в памяти МП размещается полная таблица истинности данной логической функции, после чего зная входные данные можно вычислить результат.

В микропроцессорах x86 делается это так.

В памяти размещаем данные.

Я использую обычный виндовский дебагер (Пуск -- Выполнить -- debug).

Вводим данные с 100 ячейки текущего сегмента:

a 100

Для ввода таблици истинности используется директива db :

Умножение в МП на asm без использования команд умножения

Конечно же во всех современных микропроцессорах есть команда умножения и (если честно) понятия не имею зачем нас этому учат, но раз уже научили напишу и статью о умножении чисел в МП который не имеет команд для умножения (у intel подобных это mul и imul).

Схем умножения со сдвигом (именно сдвигом делается умножение в случае отсутствия команд) предостаточно, так что я расскажу только о умножении со сдвигом множимого.

Тут объяснять сложно, так что я лучше приведу пример:

x = 10112 - множимое

y = 11012 - множитель

Сложение числе в asm

Статьи на асемблерную тематику начну со статьи про сложение чисел. Думаю читателю будет слишком нудно читать кучу нравоучений на тему какой асм крутой и т.п.

Итак сложение числе.

Чтобы отдать дань теории упомяну, что в микропроцессорной технике все строится на данных, которые находятся в регистрах (играют роль сверхбыстрой памяти) и памяти.
Сложение производится при помощи команд ADD и ADC (учитывает перенос).

Итак. Допустим мы имеем 2 числа в регистрах AL и BL . Это однобайтные регистры.

"Писать" будем в стандартном виндовском дебагере.