Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
assembler_7_laba.doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
247.3 Кб
Скачать

2 Задание по лабораторной работе

Разработать программу на Assembler, выполняющую следующие действия:

  1. Создание файла;

  2. Открытие файла;

  3. Запись информации в файл;

  4. Чтение информации из файла;

  5. Закрытие файла;

  6. Вывод файла на экран.

3 Алгоритмы решения задач

Основные этапы выполнения программы представлены на рисунке 1

file DB "assembl.txt"; имя файла 1

fwrite db "Hello World!!!!"

; строка для записи

2

3

4

5

6

Рисунок 1 – Основные этапы выполнения программы

Программная реализация алгоритма представлена в приложении А.

4 Контрольные примеры

В результате последовательного выполнения этапов получены исходный объектный и отлаженный загрузочный модули. На рисунке 2 показаны процессы разработки программы в среде TASM.

Рисунок 2 - Этапы разработки первой программы на ассемблере в среде DOS. Трансляция, компиляция и отладка программы в среде DOS

На рисунке 3 представлено открытие, запись и закрытие файла.

Рисунок 3 – Открытие, запись и закрытие файла

Выводы

  1. В результате выполнения лабораторной работы был изучен принцип работы с файлами на языке Assembler;

  2. Разработали программу на ассемблере, раскрывающую принцип работы с файлами;

  3. Научились использовать функции создания файла, записи в файл, открытия и закрытия файла.

5 Список использованной литературы

1. Рудаков П.И., Финогенов  К.Г. Программирование на языке Ассемблера IBMPC. Обнинск: Принтер, 1999.

2. Юров  П.В., Хорошенко Ю.С. Ассемблер. Учебный курс. СПб: Питер, 2006.

Приложение Листинг программы

Turbo Assembler Version 4.1 24/05/12 09:50:09 Page 1

1.asm

1 0000 .Model Small

2 0000 .Stack 100h

3 0000 .Data

4 0000 0000 handle DW 0

5 0002 61 73 73 65 6D 62 6C+ file DB "assembl.txt"; имя файла

6 2E 74 78 74

7 000D 48 65 6C 6C 6F 20 57+ fwrite db "Hello World!!!!";строка для записи

8 6F 72 6C 64 21 21 21+

9 21

10 001C .Code

11 0000 begin:

12 0000 B8 0000s mov ax,@data

13 0003 8E D8 mov ds,ax

14 0005 B4 3C MOV AH, 3CH

15 0007 B9 0000 MOV CX, 0

16 000A 8B 1E 0000r mov bx,handle

17 000E BA 0002r LEA DX, file

18 0011 CD 21 INT 21H

19 0013 A3 0000r MOV handle, AX

20

21 0016 B4 40 mov ah,40h

22 0018 B9 000B MOV CX, 11

23 001B 8B 1E 0000r mov bx,handle

24 001F BA 000Dr LEA DX, fwrite

25 0022 CD 21 INT 21H

26 0024 close:

27 0024 B4 3E mov AH, 3Eh ; 3akrivaem file

28 0026 8B 1E 0000r mov BX, handle

29 002A CD 21 int 21h

30 002C exit:

31 002C B8 4C00 mov ax, 4c00h

32 002F CD 21 int 21h

33 END begin

Turbo Assembler Version 4.1 24/05/12 09:50:09 Page 2

Symbol Table

Symbol Name Type Value Cref (defined at #)

??DATE Text "24/05/12"

??FILENAME Text "1 "

??TIME Text "09:50:09"

??VERSION Number 040A

@32BIT Text 0 #1

@CODE Text _TEXT #1 #1 #10

@CODESIZE Text 0 #1

@CPU Text 0101H

@CURSEG Text _TEXT #3 #10

@DATA Text DGROUP #1 12

@DATASIZE Text 0 #1

@FILENAME Text 1

@INTERFACE Text 000H #1

@MODEL Text 2 #1

@STACK Text DGROUP #1

@WORDSIZE Text 2 #3 #10

BEGIN Near _TEXT:0000 #11 33

CLOSE Near _TEXT:0024 #26

EXIT Near _TEXT:002C #30

FILE Byte DGROUP:0002 #5 17

FWRITE Byte DGROUP:000D #7 24

HANDLE Word DGROUP:0000 #4 16 19 23 28

Groups & Segments Bit Size Align Combine Class Cref (defined at #)

DGROUP Group #1 1 12

STACK 16 0100 Para Stack STACK #2

_DATA 16 001C Word Public DATA #1 #3

_TEXT 16 0031 Word Public CODE #1 1 #10 10

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]