Создание консольного приложения для операционной системы Windows. Установка операционной системой Unix

Страницы работы

Содержание работы

Лабораторная работа № 3 Порядок выполнения л/р.

1)  Изучить:

ознакомиться с соответствующими темами "firststeps-mart 2003.chm" Библиотека Фроловых

2)  Выполнить письменно ответы на подготовительные вопросы

3)  Получить и выполнить индивидуальное задание. Задание включает:

решение индивидуального задания проведение исследования программы (порядок проведения см. л/р №1)

управление ходом компиляции проекта (подготовка makefile)

4) Защита.

Вопросы (письменно)

1.  Какие функции стандартной библиотеки работают с файлами.

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

3.  Приведите пример кода считывания и записи файла, используя Win32API.

4.  Приведите пример кода считывания и записи файла, используя MFC.

5.  Приведите пример кода считывания и записи файла, используя C#.


Литература

1.  Глава 2, 3. Сетевые операционные системы / В.Г. Олифер, H.A. Олифер. - СПб.: Питер, 2002. - 544 с.

2.  Глава 5. Системное программное обеспечение / A.B. Гордеев, А.Ю. Молчанов. - СПб.: Питер, 2002. - 736 с.

3.  Глава 2. Столлингс Вильям. Операционные системы, 4-е издание. - M.: Вильямс, 2002. - 848 с. Дополнительно

1.  Глава 1, 4, 5, 8, 10. H. А. Олифер, В. Г. Олифер. Сетевые операционные системы // http://citforum.ru

2.  Глава 1, 10, 11, 12. Таненбаум Э. Современные операционные системы. - СПб.: Питер, 2002. -1040 с.


Лабораторная работа № 1 Порядок выполнения л/р.

1)  Изучить:

статью "Обзор Visual Studio 6.0" http://niikt.khstu.ru/syspo/introl.chm учебное пособие http://niikt.khstu.ru/syspo/tutorial 1 .chm учебное пособие http://niikt.khstu.ru/syspo/tutorial2.chm

2)  Выполнить письменно ответы на подготовительные вопросы

3)  Получить и выполнить индивидуальное задание. Задание включает:

решение задачи проведение исследования программы управление ходом компиляции проекта

4) Защита.

Ход выполнения индивидуального задания:

Пример: Рассматривается задача, в которой необходимо создать консольное приложения для операционной системы Windows. Программа должна на экране отобразить 10 строк "Hello, World!'VCpefla разработки: Visual C++ 6.0.

1)  Запустить среду Visual C++ 6.0.

2)  Меню File -> New. Ознакомиться какие варианты проектов существуют

3)  Написать код. Выбрали Win32 Console Application, присвоили имя проекту

#include "windows.h"

#include "stdio.h"

int main(int argc, char* argv[])

{

• for(register   i=10;   i;   i--)

printf("Hello World!\n"); return  0;

4) Компиляция приложения. В качестве исследования программы проведём сопоставление кода, полученного в результате компиляции(азт) и исходного кода(С++): Исследование можно проводить как встроенными средствами, так и средствами сторонних производителей (например, IDA)

Вариант 1 . Дизассемблер IDA

Дизассемблированный код программы (IDA)

Приложение на языке С++

.text:0040100D  loc_40100D .text:0040100D .text:00401010 .text':00401013 .text:00401016 .text:00401016  loc   401016 .text:00401016 .text:0040101A .text:0040101C

.text:00401021 .text:00401026 .text:00401029

;   CODE  XREF:   __main+29jj mov           eax,    [ebp+var  4] sub            eax,   1 mov            [ebp+var  4],   еах

;   CODE  XREF:      main+Btj cmp            [ebp+var  4] ,   0 jz-             short  loc  40102B push         offset  aHelloWorla ;      "Hello  World! \n" call            printf add           esp,   4 jmp            short  loc  40100D

for(register  i=10;   i;   i--) printf ("Hello World! \n");

Вариант 2. Среда Visual С++. Во время отладки используется меню View - Debug Windows - Dissasembly. Изучите все пункты меню View - DebugWindows

Дизассемблированный код программы (Visual С++)

Приложение на языке С++

0040D678   mov 0040D67F   jmp 0040D681   mov 0040D684  add 0040D687   mov 0040D68A   cmp 0040D68E   jge 0040D690   push 0040D695   call 0040D69A   add 0040D69D   jmp

dword ptr [ebp-4],0 main+2Ah (0040d68a) еах, dword ptr [ebp-4] eax,l dword ptr [ebp-4],eax dword ptr [ebp-4],OAh main+3Fh (0040d69f) offset string "Hello World! \n" (0042201c) printf (00401060) esp, 4 main+21h (0040d681)

for (register int i=0; i<10; i++) printf ("Hello World! \n");




Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
75 Kb
Скачали:
0