Программа, формирующая таблицу истинности для функции F=A+C*(B+D)
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
Министерство образования Российской Федерации
Рязанский государственный технологический колледж
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по предмету
“Архитектура ЭВМ систем и сетей”
Выполнил:Сорокин В.А.
Проверил: Лабутин А.В.
Оценка_______________
2001г
Содержание
- Введение1
- Общие сведения о языке ассемблер2
- Программная часть
- Описание программы 3
- Этапы разработки ассемблерных программ5
- Блок-схема алгоритма программы2
- Программа, формирующая таблицу истинности для функции F=A+C(BD)4
- Список использованной литературы5
Программная часть
Описание программы
В этой работе мы рассмотрим один из способов написания программы, формирующую, таблицу истинности для функции F=A+C(BD),с помощью языка Ассемблера. Прежде чем создать программу надо детально рассмотреть, какие шаги для этого надо предпринять, то есть надо написать алгоритм работы этой программы . Для того чтобы компьютер смог обработать данные, эти данные ему надо сначала ввести , а это значит первым шагом в решении нашей задачи будет ввод числа. Для начала присвоим начальное значение равное 0 всем операндам то есть A,B,C,D,F.Вторым шагом в работе будет вычисление функции F=A+C(BD). После этого мы выводим на экран значения операндов A,B,C,D и вычисленный результат функции, то есть F. Следующим шагом будет увеличение операнда D на 1 и проверка условия : если значение D не равно 2, то переходим к вычислению заданной функции и выводу значений операндов A,B,C,D,F на экран, иначе то переходим к следующему шагу решения нашей задачи, то есть присвоению операнду D значения 0, увеличению операнда C на 1. После снова производим проверку условия: если С не равно 2, то переходим к вычислению заданной функции и выводу значений операндов A,B,C,D,F на экран , иначе то переходим к следующему шагу, присвоению операнду С значения 0 и увеличения операнда B на 1. Далее проверяем условие: если B не равно 2, то переходим к вычислению заданной функции и выводу значений операндов A,B,C,D,F на экран , иначе то переходим к следующему шагу, присвоению операнду B значения 0 и увеличения операнда A на 1 , иначе переходим к следующему пункту, проверке условия: если A не равно 2, то переходим к вычислению заданной функции и выводу значений операндов A,B,C,D,F на экран , иначе выходим из программы. Теперь соберём все пункты вместе:
- Начало
- Присваиваем начальные значения операндам A,B,C,D,F A=0,B=0,C=0,D=0,F=0
- Выполняем логическую операцию исключающее или над операндами B и D и заносим результат в регистр AH
- Выполняем логическую операцию или над операндами A и C и заносим результат в регистр AL
- Выполняем инверсию результата находящегося в регистре AL
- Выполняем логическую операцию и над операндами AH и AL и присваиваем результат операнду F
- Выводим на экран значения операндов A,B,C,D,F
- Увеличиваем операнд D на 1
- Проверка условия: если D не равно 2, то переход на пункт 2, иначе то переход на пункт 9
- Присваиваем операнду D значение 0, увеличиваем операнд C на 1
- Проверка условия: если С не равно 2, то переход на пункт 2, иначе то переход на пункт 11
- Присваиваем операнду С значение 0, увеличиваем операнд B на 1
- Проверка условия: если B не равно 2, то переход на пункт 2, иначе то переход на пункт 13
- Присваиваем операнду B значение 0, увеличиваем операнд A на 1
- Проверка условия: если A не равно 2, то переход на пункт 2, иначе то переход на пункт 15
- Конец
Это и есть алгоритм программы на естественном языке.
Список использованной литературы:
- Питер Абель. Язык ассемблера для IBM-PC и программирования Москва, издательство Высшая школа,1992г.
- П.Нортон, Д.Соухе. Язык ассемблера для IBM-PC Москва, издательство Компьютер, 1993г.
- Б. Бериан. Программирование на языке ассемблера Москва, издательство Мир, 1980г.
- В. Н. Пильщиков. Программирование на языке ассемблера для IBM-PC издательство Диалог-МИФИ, 1994г.
cseg segment
org 100h
assume cs:cseg,ds:dseg,ss:sseg
start:
mov ax,dseg ; установить регистр DS таким
mov ds,ax ; образом, чтобы он указывал
; на сегмент данных
mov ax,0600h
mov bh,07
mov cx,0000
mov dx,184Fh
int 10h
mov ah,9 ; функция DOS вывода строки
mov dx,OFFSET Message ; ссылка на сообщение "A B C D F"
int 21h ; вывести "A B C D F" на экран
BEGIN: ; ___
; Расчет функции F = A+C*B(+)D
mov ah, B ; копирование B в ah
xor ah, D ; исключающее или
mov al, A ; к