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

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

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

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

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

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

a 100

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

db 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0

Таким образом мы перечислили результаты вычисления функции 4ех переменных.

Обратите внимание на то, что выбрать место размещения таблици вым необходимо при помощи директивы ORG.

У меня вот так:

org 200 ; будем хранить таблицу истинности в ячейках начиная с 200

db 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0  ; вводим таблицу истинности

org 100 ; продолжаем вводить программу с 100 ячейки памяти

Теперь таблица расположена в памяти дело за вычислением.

Используем косвенную адресацию при помощи регистар BX.

mov bx, 200 ; у меня таблица начинается с 200 ячейки

mov al, 2 ; вычисляем набор 0010

add bl,al ; добавляем к адресу начала таблици смещение

mov al,[bx] ; заносим значение логической функции в ax

hlt ; конец программы

Теперь можно запустить программу. В дебагере это команда:

g =100 10b

В регистре AX видим еденицу, всё вычислено верно.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий