Ten dw 10
ОТЧЕТ
По курсу «Вычислительные системы, сети и телекоммуникации»
На Тему:
«Выполнение индивидуального задания
НА ЯЗЫКЕ ASSEMBLER »
Выполнили:
студенты группы И-201
Баранник Валерия
Пехуров Александр
Преподаватель:
Ильина О. П.
Санкт – Петербург
Решение уравнения на языке программирования Assembler:
title prog.asm ;начало программы
stacksg segment stack ;Инициализация стековой памяти в сегменте стека
db 64 dup (?);стек типа word на 64 байта заполненный символами
stacksg ends;конец стекового сегмента
datasg segment;сегмент задания переменных
m1 db 'Vvedite X $';ввод значения Xn с клавиатуры
db 10,13,'$'10–возвращает каретку в начало строки,13 – сдвигает каретку на строку ниже
m2 db 10,13,'Vvedite X konech $' ввод значения Xk с клавиатуры, типа byte
db 10,13,'$';10–возвращает каретку в начало строки,13 – сдвигает каретку на строку ниже
m22 db 10,13,'Vvedite delta X $' ввод значения Xm с клавиатуры, тип byte
db 10,13,'$'' ;10–возвращает каретку в начало строки,13 – сдвигает каретку на строку ниже
m3 db ' X Y $'
db 10,13,'$''' ;10–возвращает каретку в начало строки,13 – сдвигает каретку на строку ниже
D dw ? начальное, типа word, изначальное значение
yn dw 1 значение числителя дроби, типа word, изначальное значение
N dw ? шаг приращения, типа word, изначальное значение
y dw ? конечное, типа word, изначальное значение
t dw ? значения знаменателя дроби, типа word, изначальное значение
Xd dw ?
Xk dw ?
Ft10 dw 1
ten dw 10
sr db 6 dup(0),'$'
srk db 10,13,'$'
srb db 10 dup (0), '$'
buf db 5,0,0,0,0,0,0,0 буфер типа byte на 5 символа
datasg ends;конец сегмента задания переменных
codesg segment;сегмент кодов
assume cs:codesg, ds:datasg, ss:stacksg Назначение сегментных регистров в сегменте кодов
main proc far Организация главной программной процедуры, far (за пределами одного сегмента)
push ds ;запись значения DS в стек
sub ax,ax ;вычитание АХ из АХ – обнуление АХ
push ax;запись значения AX в стек
mov ax,datasg;помещение datasg в регистр AX
mov ds,ax;Запись адреса префикса программного сегмента (PSP) в стек
mov ah,9; запрос на ввод xn
mov dx,offset m1 помещает значение смещения адреса Xn в регистр DX
int 21h;выполняет прерывание № 21Н программы
mov AH,0AH ввод xn, 0 – ввод с клавиатуры
mov dx,offset buf;помещает значение смещения адреса буфера в регистр DX
int 21h;выполняет прерывание № 21Н программы
call str2bin;вызов процедуры str2bin
mov d,di;помещает значение DI в xn
mov ah,9;запрос на ввод xk
mov dx,offset m2;помещает значение смещения адреса Xk в регистр DX
int 21h;выполняет прерывание № 21Н программы
mov AH,0AH;ввод xk, 0 – ввод с клавиатуры
mov dx,offset buf;помещает значение смещения адреса буфера в регистр DX
int 21h;выполняет прерывание № 21Н программы
call str2bin;вызов процедуры str2bin
mov xk,di;помещает значение регистра DI в xk
mov ah,9;запрос на ввод xm
mov dx,offset m22;помещает значение смещения адреса Xm в регистр DX
int 21h;выполняет прерывание № 21Н программы
mov AH,0AH;ввод xm, 0 – ввод с клавиатуры
mov dx,offset buf;помещает значение смещения адреса буфера в регистр DX
int 21h;выполняет прерывание № 21Н программы
call str2bin;вызов процедуры str2bin
mov xd,di;помещает значение регистра DI в xm