Порівняльний аналіз кодів та данних програм, що створюються системами програмування різних рівнів Паскаль і Асемблер (Звіт з лабораторної роботи № 1)

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

      Кафедра: «Обчислювальна техніка і програмування»

Звіт

з лабораторної роботи №1

Дисципліна: «Системне програмування»

Виконав:     Cтуд. гр. КІТ-14в

                     Михайлюков Д.А.

Перевірив:

Харків 2006

Лабораторна робота №1

Тема: Порівняльний аналіз кодів та данних програм, що створюються системами програмування різних рівнів Паскаль і Асемблер.

Мета: Здобуття практичних навичок порівняльного аналіза коду та данних програм за допомогою системного відладчика.

Індивідуальне завдання:

Заданий масив А з N = 80 елементів (констант типа WORD).

       Структура масиву А : --------------------------

                                                                    |X1|Y1|X2|Y2|..........|

                                                                    --------------------------

Сформувати масив В з номерів пар елементів, для яких виконується умова Xi = Yi .

Змінні програми

Змінна

Призначення

Masa

Заданий масив А

Masb

Сформований масив В

S1

Cтрока (nachalo programmi)

S2

Строка (konec programmi)

Схема алгоритму

masb = count

 

Встановлення лічильника

 

Ініціалізація даних

 

false

 

true

 

Xi = Yi

 

i = 1..80

 

end

 

begin

 

Текст програми на мові асемблера


.286

data segment

n dw 5

s1 db 'nachalo programmi',10,13,'$'

s2 db 'konec programmi',10,13,'$'

masa dw 1,4, 5,5

masb dw ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

       mov ds,ax

       mov ah,9h               

       mov dx,offset s1       

       int 21h

; Обнуление регистров

       xor ax,ax

       mov si,ax

       mov di,ax

       mov dx,ax

       mov bx,ax

       mov cx,n

; Проверка условия

m1:    mov ax,masa[si]

       cmp ax,masa[si+2]

       jne m3

       mov bx, si

       shr bx,1

       shr bx,1       

       inc bx

       mov masb[di], bx

       add di,2                    

m3:    add si,4

       loop m1

        mov ah,9h               

       mov dx,offset s2        

       int 21h                 

kon:   mov ah,4ch              

       int 21h    

code ends

end start


Текст програминамові Pascal


uses crt;

const n=9;

  type mas=array[0..n] of integer;

  type mas1=array[0..n] of integer;

var

  a:mas;b:mas1;i,j,k:integer;

begin

   clrscr;

   j:=0;

   writeln('Vvedute massuv');

   k:=$1111;

    for i:=0 to n do

      readln (a[i]);

   k:=$2222;

    for i:=0 to 5 do

     if (a[i*2]=a[i*2+1]) then

       begin

        b[j]:=i+1;

        j:=j+1;

       end;

     writeln;

    k:=$3333;

     writeln ('Isxodnui massiv');

     for i:=0 to j-1 do

       write (' ', b[i]:3);

    k:=$4444;

     readln;

end.


Результат роботи програми

Pascal

Сегмент даних до виконання програми

-dds:0

0CAB:0000  00 00 00 00 00 00 00 00-00 00 DA 10 DA 10 DA 10   ................

0CAB:0010  00 00 00 00 FF FF 00 00-DA 10 00 00 DA 10 00 00   ................

0CAB:0020  FF 9F 00 00 DA 10 00 00-00 00 D6 00 11 0C 00 00   ................

0CAB:0030  00 00 00 00 00 00 00 00-86 0B 00 00 00 00 00 00   ................

0CAB:0040  00 00 00 10 40 00 00 A0-00 B0 00 B8 02 00 02 00   ....@...........

0CAB:0050  0D 0A {01 00 01 00 02 00-02 00 03 00 03 00 04 00   ................

0CAB:0060  04 00 05 00 05} 00 00 00-00 00 00 00 00 00 00 00   ................

0CAB:0070  00 00 00 00 00 00 00 00-00 00 09 00 00 00 22 22   ..............""

Сегмент даних після виконання програми

-dds:0

0CAB:0000  00 00 00 00 00 00 00 00-00 00 DA 10 DA 10 DA 10   ................

0CAB:0010  00 00 00 00 FF FF 00 00-DA 10 00 00 DA 10 00 00   ................

0CAB:0020  FF 9F 00 00 DA 10 00 00-00 00 D6 00 11 0C 00 00   ................

0CAB:0030  00 00 00 00 00 00 00 00-86 0B 00 00 00 00 00 00   ................

0CAB:0040  00 00 00 10 40 00 00 A0-00 B0 00 B8 02 00 02 00   ....@...........

0CAB:0050  0D 0A {01 00 01 00 02 00-02 00 03 00 03 00 04 00   ................

0CAB:0060  04 00 05 00 05} 00 {01 00-02 00 03 00 04 00 05} 00   ................

0CAB:0070  00 00 00 00 00 00 00 00-00 00 04 00 05 00 33 33   ..............33

Assembler

Сегмент даних після виконання програми

-d ds:0

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

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