Лабораторная работа № 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"); |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.