Главная страница
Культура
Искусство
Языки
Языкознание
Вычислительная техника
Информатика
Экономика
Финансы
Психология
Биология
Сельское хозяйство
Ветеринария
Медицина
Юриспруденция
Право
История
Физика
Экология
Этика
Промышленность
Энергетика
Связь
Автоматика
Электротехника
Философия
Религия
Логика
Химия
Социология
Политология
Геология

Курсовой проект. Программа на Ассемблере ум 7 2 Подпрограмма ввода и вывода целых чисел на Ассемблере ibm 9



Скачать 1.5 Mb.
Название Программа на Ассемблере ум 7 2 Подпрограмма ввода и вывода целых чисел на Ассемблере ibm 9
Анкор Курсовой проект.docx
Дата 02.05.2017
Размер 1.5 Mb.
Формат файла docx
Имя файла Курсовой проект.docx
Тип Программа
#5818
Оглавление

на языке Си для int, float 5

3.1 Программа на Ассемблере УМ 7

3.2 Подпрограмма ввода и вывода целых чисел на Ассемблере IBM 9

3.3 Программа на языке программирования Ассемблер IBM PC 15

4.Тестирование и отладка 22

5. Инструкция пользователя 23

6. Параметры программы 26

Заключение 28

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


Изм.

Лист

докум.

Подпись

Дата

Лист

У

ВЛГУ. 230100.7.1.00 ПЗ

Разраб.

Крылов. В. А.

Т. Контр

Н. Контр.

Ф.И.О.

Утверд.

Быков В. И.

Программирование на машинно-ориентированном языке
Пояснительная записка

Лит.

Листов
ВТ-113
Изм.

Лист

докум.

Подпись

Дата

Лист

3

Введение

Язык ассе́мблера (англ. assembly language) — машинно-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины, который может обеспечить дополнительные возможности вроде макрокоманд[1]; автокод, расширенный конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды, средства обеспечения модульности программ[2].

Автокод — язык программирования, предложения которого по своей структуре в основном подобны командам и обрабатываемым данным конкретного машинного языка[2].

Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления)[3].

Перевод программы на языке ассемблера в исполнимый машинный код (вычисление выражений, раскрытие макрокоманд, замена мнемоник собственно машинными кодами и символьных адресов на абсолютные или относительные адреса) производится ассемблером — программой-транслятором, которая и дала языку ассемблера его название.


ВЛГУ. 230100.7.1.00 ПЗ



Команды языка ассемблера один к одному соответствуют командам процессора. Фактически, они и представляют собой более удобную для человека символьную форму записи — мнемокоды — команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько вариантов команд процессора[4].

Изм.

Лист

докум.

Подпись

Дата

Лист

4

Кроме того, язык ассемблера позволяет использовать символические метки вместо адресов ячеек памяти, которые при ассемблировании заменяются на вычисляемые ассемблером или компоновщиком абсолютные или относительные адреса, а также так называемые директивы (команды ассемблера, не переводимые в машинные команды процессора, а выполняемые самим ассемблером).

Директивы ассемблера позволяют, в частности, включать блоки данных, задать ассемблирование фрагмента программы по условию, задать значения меток, использовать макрокоманды с параметрами.

Каждая модель (или семейство) процессоров имеет свой набор — систему — команд и соответствующий ему язык ассемблера. Наиболее популярные синтаксисы языков ассемблера — Intel-синтаксис и AT&T-синтаксис.

Существуют компьютеры, реализующие в качестве машинного язык программирования высокого уровня (Форт, Лисп, Эль-76). Фактически, в таких компьютерах они выполняют роль языков ассемблера.


ВЛГУ. 230100.7.1.00 ПЗ


Изм.

Лист

докум.

Подпись

Дата

Лист

5

1.Системный анализ

Целью курсового проекта является закрепление полученных знаний и профессиональных навыков разработки и отладки подпрограмм на языке Ассемблера. Курсовой проект выполняется в соответствии с этапами разработки программного обеспечения: анализ и постановка задачи для решения на ЭВМ, проектирование, кодирование, отладка и тестирование разработанной программы. Проектирование ведется в соответствии с методологией структурного программирования.

Требуется рассчитать выражение (1):
(1)

Необходимо разработать программы для её вычисления на языках Си, Ассемблер УМ и Ассемблер IBM PC. С клавиатуры вводятся 2 переменные и значения массива, после выполняется расчет 2 констант 2c и (a*a+1) данной функции и расчет z. Далее выполняется вывод результата на экран монитора. Программа состоит из 4-х функций: функция ввода переменных, две функция расчета констант, функция вывода результата.


ВЛГУ. 230100.7.1.00 ПЗ



Изм.

Лист

докум.

Подпись

Дата

Лист

6

2.Структурное программирование. Схема алгоритма. Программа

на языке Си для int, float


Программа на языке программирования Си для int

#include "stdafx.h"

#include

#include

using namespace std;

const int N = 4;

void raschet(int a, int c, int d[])

{int g, k, l, z;

int Y = 0;

g = 2 * c;

k = a*a + 1;

cout << "g = " << "2 * " << c << " = " << g << endl;

cout << "k = " << a*a << " + 1" << " = " << k << endl;

for (int i = 1; i <= N; i++)

{l = d[i] / 4;

cout << i << ") " << "l[" << d[i] << "] = " << d[i] << " / 4 = " << l << endl;

z = (g - l) / k;

cout << " z[" << d[i] << "] = " << z << endl;

Y = Y + z;

cout << endl;}

cout << "Y = " << Y << endl;}

int main()

{setlocale(LC_ALL, "Russian");

int a, c, d[N];

cout << "Введите a = ";

cin >> a;

cout << "Введите с = ";

cin >> c;

cout << "Введите элементы массива" << endl;

for (int i = 1; i <= N; i++)

{cout << "d[" << i << "] = ";

cin >> d[i];}

raschet(a, c, d);

_getch();

return 0;}

Программа на языке программирования Си для float

#include "stdafx.h"

#include

#include

using namespace std;

const int N = 4;

void raschet(float a, float c, float d[])

{float g, k, l, z;

float Y = 0;

g = 2 * c;

k = a*a + 1;

cout << "g = " << "2 * " << c << " = " << g << endl;

cout << "k = " << a*a << " + 1" << " = " << k << endl;

for (int i = 1; i <= N; i++)

{l = d[i] / 4;

cout << i << ") " << "l[" << d[i] << "] = " << d[i] << " / 4 = " << l << endl;

z = (g - l) / k;

cout << " z[" << d[i] << "] = " << z << endl;

Y = Y + z;

cout << endl;}

cout << "Y = " << Y << endl;}


ВЛГУ. 230100.7.1.00 ПЗ



int main()

{setlocale(LC_ALL, "Russian");

float a, c, d[N];

cout << "Введите a = ";

cin >> a;

cout << "Введите с = ";

cin >> c;

cout << "Введите элементы массива" << endl;

for (int i = 1; i <= N; i++)

{cout << "d[" << i << "] = ";

cin >> d[i];}

raschet(a, c, d);

_getch();

return 0;}

Блок схема


нет

z=(2*c-d[i]/4)/(a*a-1)

y=y+z

да

i<5

i=0, y=0

Ввод a, c, d[i]


Изм.

Лист

докум.

Подпись

Дата

Лист

7



Вывод y






ВЛГУ. 230100.7.1.00 ПЗ



3. ПрограммированиеИзм.

Лист

докум.

Подпись

Дата

Лист

8

3.1 Программа на Ассемблере УМ


Ex77 start 0

lda c

mul c2

sta p

ldx c0

lda c0

usl comp c12

jgt art

jeq art

jsub inc

rmo x,a ;i:=i+1

add c3

rmo a,x

j usl

art lda y

hlt

c word 20

e word 2

c0 word 0

c1 word 1

c3 word 3

c4 word 4

c12 word 12

c2 word 2

y word 0

d word 20

word 12

word 4

word -16

o resb 3

k resb 3

p resb 3

inc lda e

mul e

add c1

sta k

lda d,x

div c4

sta o

lda p

sub o

div k

add y

sta y

rsub

end Ex77

ВЛГУ. 230100.7.1.00 ПЗ



Блок схема
inc

Изм.

Лист

докум.

Подпись

Дата

Лист

9





ВЛГУ. 230100.7.1.00 ПЗ


3.2 Подпрограмма ввода и вывода целых чисел на Ассемблере IBM


Подпрограмма ввода

Блок схема

Изм.

Лист

докум.

Подпись

Дата

Лист

10

абм



ВЛГУ. 230100.7.1.00 ПЗ



Подпрограмма на языке программирования Ассемблер IBM PC

InputInt proc

mov ah, 0ah

xor di, di

mov dx, offset buff ; адрес буфера

int 21h ; принимаем строку

mov dl, 0ah

mov ah, 02

int 21h

; выводим перевод строки и обрабатываем

; содержимое буфера

mov si, offset buff+2 ; берем адрес начала строки

cmp byte ptr [si], "-" ; если первый символ минус

jnz ii1

mov di, 1 ; устанавливаем флаг

inc si ; и пропускаем его

ii1: xor ax, ax

mov bx, 10 ; основание сc



ii2: mov cl, [si] ; берем символ из буфера

cmp cl, 0dh ; проверяем не последний ли он

jz endin

; если символ не последний, то проверяем его

; на правильность

cmp cl, '0' ; если введен неверный символ <0

jl er

cmp cl, '9' ; если введен неверный символ >9

ja er

sub cl, '0' ; делаем из символа число

mul bx ; умножаем на 10

add ax, cx ; прибавляем к остальным

inc si ; указатель на следующий символ

jmp ii2 ; повторяем

er: mov dx, offset error ; если была ошибка, то выводим сообщение об

; этом и выходим

mov ah,09

int 21h

int 20h ; все символы из буфера обработаны число

; находится в ax

endin: cmp di,1 ; если установлен флаг, то

jnz ii3

neg ax ; делаем число отрицательным

ii3: ret

error db "incorrect number$"

buff db 6,7 Dup(?)

InputInt endp

Изм.

Лист

докум.

Подпись

Дата

Лист

11


ВЛГУ. 230100.7.1.00 ПЗ



Подпрограмма на языке программирования Ассемблер IBMPC
Процедура выводаИзм.

Лист

докум.

Подпись

Дата

Лист
OutInt proc near ;=====Процедура вывода

test ax, ax ; проверяем число на знак.

jns oi1

mov cx, ax ; eсли оно отрицательное, выведем минус и

; оставим его модуль

mov ah, 02h

mov dl, '-'

int 21h

mov ax, cx

neg ax

oi1: xor cx, cx ; количество цифр будем держать в CX

mov bx, 10 ; основание сс. 10 для десятеричной и т.п.

oi2: xor dx, dx

div bx ; делим число на основание сс, в остатке

; получается последняя цифра

push dx ; сразу выводить её нельзя, поэтому сохраним

; её в стэке

inc cx

; а с частным повторяем то же самое, отделяя

; от него очередную

test ax, ax ; цифру справа, пока не останется ноль, что

;значит, что дальше

jnz oi2 ; слева только нули
;========Вывод=========

mov ah, 02h

oi3: pop dx

add dl, '0' ; извлекаем очередную цифру, переводим её в

; символ и выводим

int 21h

loop oi3 ; повторим ровно столько раз, сколько цифр

; насчитали

ret

OutInt endp



ВЛГУ. 230100.7.1.00 ПЗ

12



блок схема

абмИзм.

Лист

докум.

Подпись

Дата

Лист

13

ВЛГУ. 230100.7.1.00 ПЗ


3.3 Программа на языке программирования Ассемблер IBMPC


.model smallИзм.

Лист

докум.

Подпись

Дата

Лист

14
.stack 200h

.data
a db ?

c db ?

d db 4 dup (?,?,?,?)
e dw ?

f dw ?

y dw ?

t dw 8
D16 db '0123456789ABCDEF'

BUF db 4 DUP (20h),13,10,'$'

str1 db 'Resultat',13,10,'$'
.code
OutInt proc
test ax, ax ; Проверяем число на знак.

jns oi1

; Если оно отрицательное, выведем

;минус и оставим его модуль.

mov cx, ax

mov ah, 02h

mov dl, '-'

int 21h

mov ax, cx

neg ax

; Количество цифр будем держать в CX

oi1:

xor cx, cx

mov bx, 10 ; основание сс. 10 для десятеричной и т.п.

oi2:

xor dx,dx

div bx

; Делим число на основание сс.

;В остатке получается последняя цифра.

; Сразу выводить её нельзя,

;поэтому сохраним её в стэке.

push dx

inc cx

; А с частным повторяем то же самое,

;отделяя от него очередную

; цифру справа, пока не останется ноль,

; что значит, что дальше слева только нули.

test ax, ax

jnz oi2

; Теперь приступим к выводу.



ВЛГУ. 230100.7.1.00 ПЗ



mov ah, 02h


Изм.

Лист

докум.

Подпись

Дата

Лист

15

oi3:

pop dx

; Извлекаем очередную цифру,

;переводим её в символ и выводим.

add dl, '0'

int 21h

; Повторим ровно столько раз,

;сколько цифр насчитали.

loop oi3

ret

OutInt endp

InputInt proc

mov ah,0ah

xor di,di

mov dx,offset buff ; аддрес буфера

int 21h ; принимаем строку

mov dl,0ah

mov ah,02

int 21h ; выводим перевода строки

; обрабатываем содержимое буфера

mov si,offset buff+2 ; берем аддрес начала строки

cmp byte ptr [si],"-" ; если первый символ минус

jnz ii1

mov di,1 ; устанавливаем флаг

inc si ; и пропускаем его

ii1:

xor ax,ax

mov bx,10 ; основание сc

ii2:

mov cl,[si] ; берем символ из буфера

cmp cl,0dh ; проверяем не последний ли он

jz endin

; если символ не последний, то

;проверяем его на правильность

cmp cl,'0' ; если введен неверный символ <0

jl er

cmp cl,'9' ; если введен неверный символ >9

ja er

sub cl,'0' ; делаем из символа число

mul bx ; умножаем на 10

add ax,cx ; прибавляем к остальным

inc si ; указатель на следующий символ

jmp ii2 ; повторяем


ВЛГУ. 230100.7.1.00 ПЗ



er: ; если была ошибка, то выводим

;сообщение об этом и выходим

Изм.

Лист

докум.

Подпись

Дата

Лист

16

mov dx, offset error

mov ah,09

int 21h

int 20h

; все символы из буфера

;обработаны число находится в ax

endin:

cmp di,1 ; если установлен флаг, то

jnz ii3

neg ax ; делаем число отрицательным

ii3:

ret

error db "incorrect number$"

buff db 6,7 Dup(?)

InputInt endp

PP1 proc near ;---------------------e

mov Al,2

mov BL,c

imul BL

cbw

mov e,AX

cwd

mov AX,0

mov BX,0

ret 6 ;???
PP1 endp
PP2 proc near ;f

mov AX,0

mov AL,a

imul AL

cbw

mov DX, 1

add AX, DX

cbw

mov f, AX

cwd

mov AX,0

mov DX,0

ret 6 ;???

PP2 endp
Begin:

mov ax, @Data

mov ds, ax

ВЛГУ. 230100.7.1.00 ПЗ



Изм.

Лист

докум.

Подпись

Дата

Лист

17

call InputInt ; ввод числа а

mov a,AL

call InputInt ; ввод числа с

mov c,AL
mov SI,0

push SI
l1: call InputInt

pop SI

mov d[SI], AL

add SI,2

cmp SI,t

push SI

jne l1
call PP1 ;вызов п\п 1

call PP2 ;вызов п\п 2

mov SI,0

mov CX,4

xor AX,AX

mov y,AX

for: mov DX,0

mov AH,0

mov CL,0

mov AL,d[SI]

mov BL, AL

cbw

cmp AX,0

jg m2

mov CL,1

mov AL, BL

neg AL

cbw

m2: mov DL,4

idiv DL

cbw

cmp CL,0

je m3

neg AL

cbw

m3: mov BX, e

sub BX,AX

cbw

mov AX,BX

cwd

mov AX, BX

cwd

mov BX,f

idiv BX ;AL=AL/f



ВЛГУ. 230100.7.1.00 ПЗ



cbw

mov BX,AX

cwd

mov AX, BX

cwd

mov DX,y

add AX, DX

cbw

mov y, AX

add SI,2

cmp SI,t

jne for

mov CX,0
mov AX, y

mov DX, AX ;DX:=AX
call OutInt


mov AX,4c00h

int 21h

END begin
Программа на языке программирования Ассемблер IBM PC

Блок схемаИзм.

Лист

докум.

Подпись

Дата

Лист

18





ВЛГУ. 230100.7.1.00 ПЗ


Изм.

Лист

докум.

Подпись

Дата

Лист

19



ВЛГУ. 230100.7.1.00 ПЗ


4.Тестирование и отладка





Входные данные

Си Int

(десятичная СС)

Си float

(десятичная СС)

Ассемблер УМ

(шестнадцатеричная СС)

Ассемблер IBM PC

(десятичная СС)

a = 2

c = 20

d[0] = 20

d[1] = 12

d[2] = 4

d[3] = -16




29



31



1D



29

a = 3

c = 30

d[0] = 51

d[1] = 41

d[2] = 24

d[3] = -21




20



21.625



14



20

a = 2

c = 20

d[0] = 20

d[1] = 14

d[2] = 4

d[3] = 16




28




29.3



1C



28

Изм.

Лист

докум.

Подпись

Дата

Лист

20
Переведем результат работы Ассемблера УМ в десятичную СС:

1D = 29

14 = 20

1C = 28.


ВЛГУ. 230100.7.1.00 ПЗ



Явно видим, что результат работы программ на Си (для int), Ассемблер УМ и Ассемблер IBM PC совпадают на 100%. Результат работы программ на Си (для float) немного отличается ввиду точности вычислений и отличается от округленного значения максимум на 2 единицы.

5. Инструкция пользователя


Язык программирования Си (для int)

Изм.

Лист

докум.

Подпись

Дата

Лист

21

окно с запросом: «Введите а:». Необходимо ввести нужное значение переменной «а», она может быть любым целым положительным или отрицательным числом. Нажимаем Enter.

Далее в этом диалоговом окне появляется запрос: «Введите с:». Необходимо ввести нужное значение переменной «с», она может быть любым целым положительным или отрицательным числом. Нажимаем Enter.

Следующим появится новый запрос: «Введите 4 значений для массива:». Вводим 4 любых значений, которые могут быть любыми целыми положительными или отрицательными значениями. После каждого введенного числа нажимаем Enter.

В конечном итоге в этом диалоговом окне у нас появится запись «y=…». Вместо многоточия будет стоять число-ответ, которое получилось в результате подстановки в выражение (1) введенные Вами значений «а», «с» и значений массива «d[0]», «d[1]», «d[2]», «d[3]». Ответ будет целым положительным или отрицательным числом.

Язык программирования Си (для float)

При запуске программы на языке программирования Си, появится диалоговое окно с запросом: «Введите а:». Необходимо ввести нужное значение переменной «а», она может быть любым целым или десятичным положительным или отрицательным числом. Нажимаем Enter.

Далее в этом диалоговом окне появляется запрос: «Введите с:». Необходимо ввести нужное значение переменной «с», она может быть любым целым положительным или отрицательным числом. Нажимаем Enter.

Следующим появится новый запрос: «Введите 4 значений для массива:». Вводим 4 любых значений, которые могут быть любыми целыми или десятичным


ВЛГУ. 230100.7.1.00 ПЗ



положительными или отрицательными значениями. После каждого введенного числа нажимаем Enter. Изм.

Лист

докум.

Подпись

Дата

Лист

22
В конечном итоге в этом диалоговом окне у нас появится запись «y=…». Вместо многоточия будет стоять число-ответ, которое получилось в результате подстановки в выражение (1) введенные Вами значений «а», «с» и значений массива «d[0]», «d[1]», «d[2]», «d[3]». Ответ будет целым или десятичным положительным или отрицательным числом.

Рис. 1

Язык программирования Ассемблер УМ

Записываем код программы при помощи стандартного приложения «Блокнот» в формате *.txt. При описании данных мы сразу должны задать значения для переменных «а», «с» и сразу задать значения массива, которые имеют размер в 1 слово.

Открываем этот файл в программе TCom.exe при помощи вкладки «Asm», далее в отрывшемся окне выбираем вкладку «File» затем «Open» и находим нужный файл с кодом в формате *.txt. Код программы загрузится на вкладку «Source module». Нажимаем на вкладку «GoAsm», если в коде нет ошибок, то приложение выведет синюю запись «No errors detected!» Далее загружаем модуль программы в программе.

TCom.exe при помощи вкладки «Load» в основном окне.

Запускаем программу при помощи клавиши «Start» в основном окне.

Результат подстановки значений «а», «с» и массива «d» в выражение (1) будет находиться в Аккумуляторе, который располагается во втором поле программе TCom.exe (смотреть рис. 1). Значением Аккумулятора будет число в шестнадцатеричной СС.

Язык программирования Ассемблер IBMPC

Запускаем эмулятор DOSBox 0.74. С его помощью переходим на необходимый диск (используем команду «mount c», смотреть рис. 2 (файл находится на диске С в папке с название «1», название файла «сс»)) и отрываем папку, в которой расположен файл с кодом программы в формате *.asm, фы


ВЛГУ. 230100.7.1.00 ПЗ



ВЛГУ. 230100.7.1.00 ПЗ

ВЛГУ. 230100.7.1.00 ПЗ
компоновщик tasm.exe и редактор связей tlink.exe (ОБЯЗАЕЛЬНОЕ УСЛОВИЕ: все 3 файла должны быть в 1(!) папке).

Далее в эмуляторе DOSBox 0.74 вводим «tasm.exe <�название файла>..asm». Таким образом

Рис.2 мы даем команду скомпилировать код и показать ошибки, если они есть. Если их нет, то эмулятор выведет отсутствие сообщений об ошибке и предупреждений (смотреть рис. 2). В результате удачной компиляции будет создан файл формата *.obj.

Продолжаем вводить в окно эмулятора DOSBox 0.74 команды. Вводим «tlink.exe <�название файла>.obj». Этой командой мы создаем приложение, которое далее будет считать наше выражение. Если все прошло удачно, то DOSBox 0.74 выдаст об этом сообщение (смотреть рис. 2). В результате будет создан файл формата *.exe.

Последний этап трансляции. Вводим «<�название файла>.exe». В окне DOSBox 0.74 появится приглашение ко вводу, вводим значения переменных и массива, которые могут быть целыми положительными или отрицательными числам, в следующей последовательности: а, c, d[0], d[1], d[2], d[3]. Между каждым введенным значением жмем Enter. ва

Последняя появившаяся строка – ответ, который будет целым положительным или отрицательным числом.
Изм.

Лист

докум.

Подпись

Дата

Лист

23



ВЛГУ. 230100.7.1.00 ПЗ


6. Параметры программы


Язык программирования Си (int)

Объем папки со всеми файлами, созданными при компиляции = 14 Мб

Объем документа с кодом = 962 байт

Средняя продолжительность компиляции = 2.5 сек

Время расчета ответа = крайне мало, менее 1 сек

Язык программирования Си ( float)

Объем папки со всеми файлами, созданными при компиляции = 14 Мб

Объем документа с кодом =1003 байта

Средняя продолжительность компиляции = 1.52 сек

Время расчета ответа = крайне мало, менее 1 сек Изм.

Лист

докум.

Подпись

Дата

Лист

24
Язык программирования Ассемблер УМ

Объем документа с кодом =664 байт

Среднее время компиляции и расчета ответа = 15 сек.

Язык программирования Ассемблер IBMPC

Объем папки со всеми файлами, необходимыми и созданными при компиляции = 203 142 байт

Объем документа *.asm = 6 594 байт

Объем документа *.obj = 707 байт

Объем документа *.exe =924 байт

Средняя продолжительность компиляции = крайне мало, менее 1 сек

Время расчета ответа = крайне мало, менее 1 сек


ВЛГУ. 230100.7.1.00 ПЗ


Заключение


В ходе выполнения проекта, мы работали с тремя языками программирования: Си, языком Ассемблера для Учебной Машины и языком Ассемблера IBM PC на базе архитектуры Intel 8086.

В ходе проекта были изучены некоторые аспекты языка Ассемблера и ЭВМ в целом. Для того, чтобы решить поставленную задачу, были продуманы алгоритмы ее решения на языках программирования Си, Ассемблер УМ и Ассемблер IBM PC, составлены блок-схемы этих решений и написаны программы на каждом из языков программирования. В результаты были получены рабочие программы, которые способны решить поставленную задачу, и примеры их работы.

Думаю, что для расширений возможностей данных программ можно попробовать написать программу на языке Си со вставкой на языке Ассемблера, что позволит сократить некоторое количество времени при написании и отладке программы только на языке Ассемблера IBM PC.
Изм.

Лист

докум.

Подпись

Дата

Лист

25



ВЛГУ. 230100.7.1.00 ПЗ

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



1. Галисеев Г. В. Ассемблер для Win 32. Самоучитель. — М.: Диалектика, 2007. — 368 с. — ISBN 978-5-8459-1197-1

2. Зубков С. В. Ассемблер для DOS, Windows и UNIX. — М. ДМК Пресс; СПб. Питер, 2006. — 608 с. — ISBN 5-94074-259-9

3. Кип Ирвин. Язык ассемблера для процессоров Intel = Assembly Language for Intel-Based Computers. — М.: Вильямс, 2005. — 912 с. — ISBN 0-13-091013-9

4. Калашников О. А. Ассемблер? Это просто! Учимся программировать. — СПб.: БХВ-Петербург, 2007. — 384 с. — ISBN 978-5-94157-709- Изм.

Лист

докум.

Подпись

Дата

Лист

26


ВЛГУ. 230100.7.1.00 ПЗ
написать администратору сайта