1-print 2-AddNRecord 3-DeleteNRecord 4-Sort 5-Save 6-Restor 7-DelAll
8-Insert 9-Edit q-exit
>
Surname Name Patronimyc Post LengthOfService RateOfPay
1-print 2-AddNRecord 3-DeleteNRecord 4-Sort 5-Save 6-Restor 7-DelAll
8-Insert 9-Edit q-exit
Висновок: розроблена програма виконує всі необхідні дії вказані по завданню.
Лабораторна робота № 2
“Керування програмами”
Мета роботи: вивчення принципів управління програмами в MS_DOS й придбання практичних навиків роботи з префіксом програмного сегменту та його полями.
Текст програми:
#include <DOS.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
#include <stdio.h>
#define byte unsigned char
#define word unsigned int
struct psp
{ /* ФОРМАТ PSP */
byte ret_op [2]; /* команда Int 20h */
word end_of_mem; /* кiнець доступноi пам'ятi */
byte reserved1;
byte old_call_DOS [5]; /* старий виклик DOS */
void far *term_ptr; /* адреса завершення **/
void far *ctrlbrk_ptr; /* адреса обробника Ctrl+break*/
void far *criterr_ptr; /* адреса обробника крiт. помилок*/
word father_psp; /* Pid батька*/
byte JFT [ 20 ]; /* таблиця файлiв програми*/
word env_seg; /* адреса оточення*/
void far *stack_ptr; /* адреса стека*/
word JFT_size; /* розмiр таблицi файлiв */
byte *JFT_ptr; /* адреса таблицi файлiв */
byte reserved2 [ 24 ];
byte new_call_DOS [3];/* новий виклик DOS */
}far *p_psp;
int i,l,j;
unsigned char far *s;
union REGS rr;
void main (){
unsigned int Segm(0);
asm xor ax, ax
asm xor bx, bx
asm mov ah, 0x62
asm int 0x21
asm mov Segm, bx
clrscr();
printf ( " Лабораторна робота N2 " );
printf ( " \n\n Адреса PID = %.4X\n\n\r ", Segm );
p_psp=(struct psp far *)MK_FP(Segm,0);
printf (" Команди : \n\r " );
printf (" --------\n\r " );
printf (" Завершення - int 20h : " );
printf ("%02x%02x\n\r",p_psp->ret_op[0],p_psp->ret_op[1]);
printf (" Старий виклик DOS : " );
for (i=0;i<5;printf ("%02x ",p_psp->old_call_DOS [i++]));
printf (" \n\r Новий виклик DOS : " );
for (i=0;i<3;printf("%02x",p_psp->new_call_DOS [i++]));
printf (" \n\n\r Aдреса : \n\r ");
printf (" -------\n\r ");
printf (" Кiнець пам'ятi : ");
printf ("%04x : 0000\n\r ",p_psp->end_of_mem);
printf (" Обробник завершення : " );
printf ("%Fp\n ",p_psp->term_ptr);
printf (" Обробник Ctrl+break : ");
printf (" %Fp\n\r ",p_psp ->ctrlbrk_ptr);
printf (" Обробник критич. помилки : " );
printf (" %Fp\n\r ",p_psp->criterr_ptr );
printf (" Стек : " );
printf (" %Fp\n\n\r ", p_psp ->stack_ptr );
printf (" \n\r батько : " );
printf (" %04x ",p_psp->father_psp );
printf (" \n\n\rнатиснiть будь-яку клавiшу... \n\r\7 " );
getch ();
clrscr ();
printf (" Лабораторна робота N2 " );
printf (" Управлiння програмами " );
s=p_psp->JFT_ptr;
printf (" \n\n\rтаблиця файлiв : " );
printf ("%Fp(%d)",s,p_psp->JFT_size);
s = (unsigned char*) p_psp->JFT_ptr;
printf (" - в цьому ж PSP %Fp" ,s);
printf (" \n\r " );
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.