ОТЧЕТ
По курсу «Вычислительные системы, сети и телекоммуникации»
На Тему:
«Выполнение индивидуального задания
НА ЯЗЫКЕ 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