Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx56 / kursach.docx
Скачиваний:
21
Добавлен:
01.08.2013
Размер:
87.59 Кб
Скачать

8.2 Программа построения графика (Приложение б)

Первый шаг при построении графика в Delphi – это создание формы. Выбираем следующие компоненты: Chart, Button, Label. Затем приступаем к программному коду.

Строка 1 – название проекта, строка 2 – интерфейсная часть, в которой хранятся описания видимых объектов. Далее строки 3-5 – это подключение необходимых модулей. В строках 6-14 содержится описание компонентов. В строке 15 вызывается процедура построения графика. В 16 вызывается процедура кнопки «Выход», которая описана в строках 44-47. Строки 26-43 содержат описание процедуры нажатия кнопки «Построить».27-31 – объявление переменных. В 33 указывается путь к файлу Result.dat . 34 строка – процедура связывания файла с файловой переменной. 35 – открытие файла. 36 – обнуляем x. 37-42 – цикл с предусловием: пока файл не закончится, считывается байт и отображается на экране, номер байта инкрементируется.

9 Результаты машинного тестирования

График построен на языке Delphi в среде программирования Borland Delphi 7. Нумерация осей в десятичной форме.

Рисунок 4 – График

Файл открыт с помощью редактора HexWorkshop, числа отображены в 16-тиричной форме.

Рисунок 5 – Канальный файл

Заключение

Результатом выполнения курсового проекта является программа, реализующая выборку определенных номеров битов с помощью набора команд процессора Intel 80386.

Главной целью выполнения данного курсового проекта является получение навыка непосредственной работы с информацией на уровне байтов и битов. Также в процессе выполнения задания была освоена специфика директивы задания набора допустимых команд, открыты новые приемы алгоритмизации и закреплены полученные ранее знания в области языка Delphi.

Список используемых источников

  1. Мурлин А.Г. Микропроцессорные системы. Методические указания к курсовому проекту для студентов всех форм обучения специальности 351400 – Прикладная информатика (по отраслям) / КубГТУ; Краснодар, 2007. - 19 с.

  2. Юров В.И. Assembler. Учебник для вузов. 2-е издание – СПб.: Питер, 2006. – 637 с.

  3. Зубков С.В. Assembler для DOS, Windows и Unix. 3-е издание – М.: ДМК Пресс; СПб.: Питер, 2004. – 608 с.: ил.

  4. Пирогов В.Ю. Assembler. Учебный курс. 3-е издание - М.: Нолидж, 2001. – 848 с.: ил.

  5. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. 7-е изд., перераб. – М.: Нолидж, 2002. – 576 с.: ил.

Приложение А

  1. .386

assume CS:CodeSg, DS:DataSg, SS:StackSg

CodeSg segment use16

begin: mov AX, DataSg

mov DS, AX

;

  1. Call OpenUK

  2. Call CreateMY

push DS

pop ES

  1. mov cx, 5

  2. metka1:

  3. push cx

  4. Call Find0

  5. pop cx

  6. dec cx

  7. cmp cx,0

  8. jne metka1

  9. Call RecordMY

  10. Call CloseUK

  11. Call CreateRESULT

  12. Call FormWord

  13. Call CloseMY

  14. Call CloseRESULT

  1. mov ah,10h

  2. int 16h

  3. int 20h

  1. OpenUK:

  2. mov ah, 3dh

  3. mov al, 0

  4. lea dx, [UK]

  5. int 21h

  6. mov [dUK],ax

  7. ret

  1. CreateMY:

  2. mov ah, 3ch

  3. mov cx, 0

  4. lea dx, [MY]

  5. int 21h

  6. mov [dMY], ax

  7. ret

  1. Find0:

  2. metka:

  3. Call ReadUK

  4. mov cx, 16

  5. lea si, [str0]

  6. lea di, [str1]

  7. repe cmpsb

  8. cmp cx,0

  9. jne metka

  10. ret

  1. ReadUK:

  2. mov ah, 3fh

  3. mov bx, [dUK]

  4. lea dx, [str1]

  5. mov cx, 16

  6. int 21h

  7. ret

  1. RecordMY:

  2. metka2:

  3. Call ReadUK

  4. lea si, [str1]

  5. lea di, [str0]

  6. mov cx, 16

  7. repe cmpsb

  8. cmp cx, 0

  9. je end1

  10. mov ah, 40h

  11. mov bx, [dMY]

  12. mov cx, 16

  13. lea dx, [str1]

  14. int 21h

  15. jmp metka2

  16. end1:

  17. ret

  18. CloseUK:

  19. mov ah,3eh

  20. mov bx,[dUK]

  21. int 21h

  22. ret

  1. CreateRESULT:

  2. mov ah, 3ch

  3. lea dx, [RESULT]

  4. mov cx, 0

  5. int 21h

  6. mov [dRESULT], ax

  7. ret

  1. SetKursor:

  2. mov ah, 42h

  3. mov al, 0

  4. xor cx, cx

  5. mov dx, 3

  6. mov bx, [dMY]

  7. int 21h

  8. ret

  1. ReadMY:

  2. mov ah,3fH

  3. mov bx,[dMY]

  4. lea dx,[bufer1]

  5. mov cx,1

  6. int 21h

  7. ret

  1. SetKursor2:

  2. mov al,1

  3. mov ah,42H

  4. mov bx,[dMY]

  5. xor cx,cx

  6. mov dx,2

  7. int 21h

  8. ret

  1. ReadMY2:

  2. mov bx,[dMY]

  3. lea dx,[bufer1]

  4. mov cx,1

  5. mov ah,3fH

  6. int 21h

  7. ret

  1. RecordInResult:

  2. mov bx,[dRESULT]

  3. mov ah,40h

  4. lea dx,[word1]

  5. mov cx,2

  6. int 21h

  7. ret

  1. SetKursor3:

  2. mov al,1

  3. mov ah,42h

  4. xor cx,cx

  5. mov bx,[dMY]

  6. mov dx,18

  7. int 21H

  8. ret

  1. FormWord:

  2. Call SetKursor

  3. xor di, di

  4. mov cx,640

  5. metka3:

  6. push cx

  7. Call ReadMY

  8. shr [bufer1],2

  9. jc m1

  10. btr [word1], di

  11. inc di

  12. jmp m2

  13. m1:

  14. bts [word1],di

  15. inc di

  16. m2:

  17. Call SetKursor2

  18. Call ReadMY2

  19. shr [bufer1],5

  20. jc m3

  21. btr [word1],di

  22. inc di

  23. jmp m4

  24. m3:

  25. bts [word1],di

  26. inc di

  27. m4:

  28. cmp di,16

  29. jne metka4

  30. Call RecordInResult

  31. mov di,0

  32. metka4:

  33. Call SetKursor3

  34. pop cx

  35. dec cx

  36. cmp cx,0

  37. jne metka3

  38. ret

  1. CloseMY:

  2. mov ah,3eh

  3. mov bx,[dMY]

  4. int 21h

  5. ret

  1. CloseRESULT:

  2. mov ah,3eh

  3. mov bx,[dRESULT]

  4. int 21h

  5. ret

CodeSg ends

DataSg segment use16

  1. UK db 'UK64.dat',0

  2. MY db 'my.dat',0

  3. RESULT db 'result.dat',0

  4. word1 dw ?

  5. str1 db 16 dup (?)

  6. bufer1 db ?

  7. str0 db 16 dup (0)

  8. dUK dw ?

  9. dMY dw ?

  10. dRESULT dw ?

  11. ;

  12. DataSg ends

  13. ;------------------------------------

  14. StackSg segment stack use16

  15. db 256 dup(0)

  16. StackSg ends

  17. ;------------------------------------

  18. end begin

Приложение Б

  1. unit Unit1;

  2. interface

  3. uses

  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

  5. Forms, Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

  6. type

  7. TForm1 = class(TForm)

  8. Button1: TButton;

  9. Chart1: TChart;

  10. Series1: TLineSeries;

  11. Shape1: TShape;

  12. Label19: TLabel;

  13. Label1: TLabel;

  14. Button2: TButton;

  15. procedure Button1Click(Sender: TObject);

  16. procedure Button2Click(Sender: TObject);

  17. private

  18. { Private declarations }

  19. public

  20. { Public declarations }

  21. end;

  1. var

  2. Form1: TForm1;

  3. implementation

  4. {$R *.dfm}

  1. procedure TForm1.Button1Click(Sender: TObject);

  2. var

  3. f:file of byte;

  4. y:byte;

  5. x:integer;

  6. str:string;

  7. begin

  8. str:=ExtractFilePath(Application.ExeName)+'result.dat';

  9. assignfile(f,str);

  10. reset(f);

  11. x:=0;

  12. while not eof(f) do

  13. begin

  14. read(f,y);

  15. Series1.AddXY( x,y,'',clwhite);

  16. inc(x);

  17. end;

  18. end;

  19. procedure TForm1.Button2Click(Sender: TObject);

  20. begin

  21. Form1.Close;

  22. end;

  23. end.

Соседние файлы в папке docx56