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

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

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

Просмотров:   2759

Комментарии

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Введи эти символы. Ато роботы одолели!