Смекни!
smekni.com

Программа, формирующая таблицу истинности для функции F=A+C*(B+D) (стр. 1 из 2)

Министерство образования Российской Федерации

Рязанский государственный технологический колледж

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по предмету

“Архитектура ЭВМ систем и сетей”

Выполнил:Сорокин В.А.

Проверил: Лабутин А.В.

Оценка_______________

2001г

Содержание

1. Введение..................................................................................................... 1

2. Общие сведения о языке ассемблер................................................... 2

3. Программная часть

· Описание программы ..................................................................... 3

· Этапы разработки ассемблерных программ............................. 5

· Блок-схема алгоритма программы............................................... 2

· Программа, формирующая таблицу истинности для функции F=A+C·(BÅD) 4

4. Список использованной литературы.................................................... 5

Программная часть

Описание программы

В этой работе мы рассмотрим один из способов написания программы, формирующую, таблицу истинности для функции F=A+C·(BÅD),с помощью языка Ассемблера. Прежде чем создать программу надо детально рассмотреть, какие шаги для этого надо предпринять, то есть надо написать алгоритм работы этой программы . Для того чтобы компьютер смог обработать данные, эти данные ему надо сначала ввести , а это значит первым шагом в решении нашей задачи будет ввод числа. Для начала присвоим начальное значение равное 0 всем операндам то есть A,B,C,D,F.Вторым шагом в работе будет вычисление функции F=A+C·(BÅD). После этого мы выводим на экран значения операндов 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 на экран , иначе выходим из программы. Теперь соберём все пункты вместе:

1. Начало

2. Присваиваем начальные значения операндам A,B,C,D,F A=0,B=0,C=0,D=0,F=0

3. Выполняем логическую операцию «исключающее или» над операндами B и D и заносим результат в регистр AH

4. Выполняем логическую операцию «или» над операндами A и C и заносим результат в регистр AL

5. Выполняем инверсию результата находящегося в регистре AL

6. Выполняем логическую операцию «и» над операндами AH и AL и присваиваем результат операнду F

7. Выводим на экран значения операндов A,B,C,D,F

8. Увеличиваем операнд D на 1

9. Проверка условия: если D не равно 2, то переход на пункт 2, иначе то переход на пункт 9

10. Присваиваем операнду D значение 0, увеличиваем операнд C на 1

11. Проверка условия: если С не равно 2, то переход на пункт 2, иначе то переход на пункт 11

12. Присваиваем операнду С значение 0, увеличиваем операнд B на 1

13. Проверка условия: если B не равно 2, то переход на пункт 2, иначе то переход на пункт 13

14. Присваиваем операнду B значение 0, увеличиваем операнд A на 1

15. Проверка условия: если A не равно 2, то переход на пункт 2, иначе то переход на пункт 15

16. Конец

Это и есть алгоритм программы на естественном языке.

Список использованной литературы:

1. Питер Абель. «Язык ассемблера для IBM-PC и программирования» Москва, издательство «Высшая школа»,1992г.

2. П.Нортон, Д.Соухе. «Язык ассемблера для IBM-PC» Москва, издательство «Компьютер», 1993г.

3. Б. Бериан. «Программирование на языке ассемблера» Москва, издательство «Мир», 1980г.

4. В. Н. Пильщиков. «Программирование на языке ассемблера для 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 ; копирование 'A' в al

or al, C ; логическое сложение

not al ; инверсия

and ah, al ; логическое умножение

mov F, ah ; перенос результата в F

jmp FUNC ; Переход на метку FUNC для вывода

; строчки таблицы

NEXT:

add D, 1 ;увеличение D на 1

cmp D, 2 ;если D не равно 2 ,то

jne BEGIN ;переход на метку BEGIN

mov D, 0 ;обнуление D

add C, 1 ;увеличение C на 1

cmp C, 2 ;если C не равно 2 ,то

jne BEGIN ;переход на метку BEGIN

mov C, 0 ;обнуление C

add B, 1 ;увеличение B на 1

cmp B, 2 ;если B не равно 2 ,то

jne BEGIN ;переход на метку BEGIN

mov B, 0 ;обнуление B

add A, 1 ;увеличение A на 1

cmp A, 2 ;если A не равно 2 ,то

jne BEGIN ;переход на метку BEGIN

ENDLAB:

mov ah,4ch ; функция DOS для

int 21h ; завершения программы

FUNC: ; Функции ДОС для вывода символов