Часть 3. Ассемблернаяпрограмма

Порядок выполнения работ

1. Разработать алгоритм решения задачи, в которой используется математические функции вида:

Часть 3. Ассемблернаяпрограмма - student2.ru или Часть 3. Ассемблернаяпрограмма - student2.ru

В качестве f(x) использовать многочлены тип:

Часть 3. Ассемблернаяпрограмма - student2.ru

Значение переменной Х изменяется от Хn до Хk с шагом Хs.

В индивидуальном задании изменяются степень, знакии коэффициенты у компонентов многочлена.

2. Предусмотреть:

· ввод начального значения — Хn;

· ввод конечного значения — Хk;

· ввод шага (приращения) значения — Хs.

· вывод результатов расчета (Y) (это может быть однократнй вывод — в конце программы, либо в виде таблицы, содержащей колонки:номер шага,значение Х, значение Y. Вывод строк таблицы выполняется в каждом цикле программы перед очередным изменением Х).

3. Разработать ассемблерную программу решения задачи.

4. Выполнить отладку программы с использованием отладчика DEBUG.

5. Создать файл исполнимой программы с расширением .EXE.

6. Выполнить программу в автоматическом режиме.

7. Деассемблировать программу (используя DEBUG) и записать полученный листинг.

8. Показать все результаты работы преподавателю.

Содержание отчета

· постановка задачи, алгоритм и ассемблерная программа ее решения;

· описание всех выполняемых процедур и экраны диалога по всемзаданиям работы;

· листинг программы и его анализ;

· результаты выполнения программы и их анализ;

· замечания и предложения по содержанию и методике выполнения работы.

Часть 4. Изучение процедур преобразования ascii-кода в двоичный код (STR2BIN)и двоичного кода в код ASCII (BIN2STR).

Краткие пояснения

Привводе-выводеинформации в ПК используется ASCII-код ее представления. ПреобразованиеASCII-кодавдвоичный код обычно используется послевводаинформации с клавиатуры при необходимости выполнения над этой информацией каких либо арифметических преобразований (выполнять арифметические операции непосредственно над ASCII-кодами в ПК существенно сложнее).

Процедура преобразования заключается в следующем:

· преобразованиеASCII-кода выполняется справа налево, начиная с крайнего правого байта;

· вкаждомбайте ASCII-кода обнуляется левый полубайт (зона), в правомполубайтекаждого байта остается, таким образом, двоичный кодочереднойдесятичнойцифрычисла (формируется очищенный от "троек" распакованный двоично-десятичный код числа);

· цифры(байты)полученного кода умножаются, соответственно, на 1,10, 100, 1000 и так далее, и полученные произведения складываются.

ПрограммаSTR2BIN,выполняющая рассматриваемое преобразование, приведенаниже (преобразуемый ASCII-код находится в поле buf, которое служит буфером при вводе информации с клавиатуры и, соответственно,описывается в сегменте данных как:

buf db M,0,0,0,...0

гдеM - максимальное количество вводимых символов; сформированное двоичное число записывается в поле valn).

str2binproc near

movdi,1

movcx,0ah

movsi,offset buf+1

subbh,bh

movbl,[buf+1]

m2:moval,[si+bx]

andax,0fh

muldi

addvaln ,ax

movax,di

mulcx

movdi,ax

decbx

jnzm2

ret

str2binendp

Преобразованиедвоичныхкодов в коды ASCII обычно применяется передвыводом десятичных чисел, соответствующих этим двоичным кодам, на экран монитора или на принтер.

Процедура преобразования заключается в следующем:

· двоичноечисло, а затем получающиеся частные от деления последовательно делятся на десять до тех пор, пока очередное частное не станет равным нулю;

· остаткиотделения записываются в правые полубайты последовательныхбайтовсправа налево, левые полубайты этих байтов – зоны заполняются кодом 0011 ("тройками").

ПроцедураBIN2STR,выполняющаярассматриваемое преобразование,приведенаниже(примечание: преобразуемоедвоичноечислонаходится в полеvalb; полученный M-разрядный ASCII-код этого числа в поле sr).

bin2str procnear

mov cx,10

mov si,offset sr+M-1

mov ax,valb

m1: sub dx,dx

div cx

ordl,30h

mov [si],dl

dec si

cmp ax,0

jne m1

ret

bin2str endp

Перечень заданий

Выполнить пошаговую трассировку в отладчике Debug процедур Str2bin и Bin2str, задавпри этомASCII-код двухзначного десятичного чмсла на входе процедуры Str2bin исемизначное двоичное число на входепроцедурыBin2str.

По результатам трассировки построить блок-схемы алгоритмовработы процедур.

Содержание отчета

· Назначение процедур Str2binи Bin2str.

· Листингитрассировки не менее двух циклов процедур с пояснениями выполненных команд.

· Блок-схемы алгоритмов выполнения процедур.


Наши рекомендации