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

Опубликовано lamazavr - ср, 01/16/2013 - 21:37
Body

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

В микропроцессорах 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 видим еденицу, всё вычислено верно.

Категория

Добавить комментарий

Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.