Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Модульное программирование системных программ на языке Аssembler

Автор:   •  Июнь 13, 2020  •  Лабораторная работа  •  2,115 Слов (9 Страниц)  •  469 Просмотры

Страница 1 из 9

Министерство образования и науки Украины
Харьковский национальный университет радиоэлектроники

Кафедра СТ

Отчёт

по лабораторной роботе №5

дисциплины «Системное программирование»

«Модульное программирование системных программ

на языке Аssembler»

Выполнил:

ст. гр. АКТСИ-17-1

Здорик Н.В.

Проверил:

доцент кафедры СТ

Коваленко А.И.

Харьков 2018


МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ СИСТЕМНЫХ ПРОГРАММ

НА ЯЗЫКЕ ASSEMBLER

Цель работы:

1. Изучение аппаратного построения процессора

2. Изучение команд на языке Ассемблера для передачи управления.

3. Изучение модульного построения программ с использованием директив языка Ассемблер.

4. Изучение способов передачи параметров процедурам и получение результатов в различных вариантах (с использованием глобальных переменных, регистров, стека).

5. Изучение инструктивных соглашений о вызовах процедур при

компоновке модулей (параметров атрибута «Модификатор языка» «С» и «STDCALL»).

6. Изучение основных команд и директив языка программирования

Ассемблер для выполнения вычислений с использованием целочисленной арифметики (сложение, вычитание, умножение, деление).

7. Ознакомление с функциональными возможностями программы- компилятора MASM32.

8. Ознакомление с функциональными возможностями программы- отладчика OllyDbg.

9. Получить навыки разработки модульных программ на языке

Ассемблера и их отладки.2 Исходные данные и постановка задачи

Задания лабораторной работы необходимо выполнять поэтапно.

Примерная последовательность этапов работы:

Задания лабораторной работы необходимо выполнять поэтапно.

Последовательность этапов работы для выполнения задания 1.

1. Проанализировать код выполнения арифметических вычислений

программы, созданной в лабораторной работе № 2.

2. Разработать алгоритмы и написать код процедур для выполнения

арифметических операций (сложение, вычитание, умножение, деление). Длина

используемых параметров – слово.

3. Разместить код процедур в теле основной программы.

4. Используя глобальные переменные в качестве передаваемых значений

процедурам, произвести отладку созданной программы с помощью отладчика

OllyDbg. При необходимости произвести корректировку алгоритма и

программы.

Задание
Создать 32-разрядное модульное приложение, реализующее все
арифметические операции в виде процедур. Передачу параметров процедурам
производить с использованием глобальных переменных.

.486 ;

.model flat ,stdcall

option casemap: none

include \masm32\include\windows.inc

include \masm32\include\user32.inc

include \masm32\include\kernel32.inc

include   \masm32\include\msvcrt.inc

includelib \masm32\lib\user32.lib

includelib \masm32\lib\kernel32.lib

includelib \masm32\lib\msvcrt.lib

.data

msgboxtitle db "Лабараторная робота №5. Задание №1",0 ;

msgboxtxt db 512 dup(?) , 0; output buffer

format db " %d",0

namberr    dword ?

inhandle  dword ?                ;ячейка памяти для хэндла ввода

outhandle dword ?; memory cell for output handle

msg1310 byte 13, 10        

namberw dword ?

buf1f dw 30 dup(?)

x sword 10

x2 sword ?

a sword -2

b sword -4

a_b sword ?

x2_ab sword ?

x_b sword ?

;(x+b)*(2*x-a*b)

xb_a2bx sword ?

;(x+b)*(2*x-a*b)/y

y sword 2

xb_a2bx_y sword ?

;(x+b)*(2*x-a*b)/y+d

d sword 6

f sword ?

vivod_1 db "2X= ","%d",0dh,0ah,

"A*B= ","%d ",0dh,0ah,

"2X-A*B= ","%d ",0dh,0ah,

"(x+b)*(2*x-a*b)= ","%d",0dh,0ah,

"x+b= ","%d ",0dh,0ah,

"(x+b)*(2*x-a*b)/y = ","%d ", 0dh,0ah,

"(x+b)*(2*x-a*b)/y+d = ","%d ",0dh,0ah,0

;for console

bf0 byte "Zdorik Nikita Viktorovich AKTSI-17-1",0

...

Скачать:   txt (15.4 Kb)   pdf (115.2 Kb)   docx (24.3 Kb)  
Продолжить читать еще 8 страниц(ы) »
Доступно только на Essays.club