Запис i читання секторiв диска. Зміна iнформацiї у мiсцi мiтки boot-сектора за допомогою програми написаної на низькорiвневої мовi програмування

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

4 страницы (Word-файл)

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

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

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

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

Виконав:

 ст групи КІТ-14в

Богачов О. С.

Харьков 2007

Тема: Запис i читання  секторiв диска.

Мета роботи: Придбання навичок роботи з дисками на низькому рiвнi.

Індивідуальне завдання: Виконати змiну iнформацiї у мiсцi мiтки boot-сектора за допомогою програми написаної на низькорiвневої мовi програмування та перевiрку iнформацiї, що записана. У якостi iнформацiї, що записується, використати особливi iнiцiали кириличними лiтерами.

Опис використовуваних переривань i функцiй BIOS та алгоритм дії програми:

Визначили місце перебування мітки на диску. Використовуючи 2 функцiю 13Н переривання виконали читання 1 сектора з нульової дорiжки 0 сторони пристрою А у видiлений буфер. Замiнили вихiдну iнформацiю. Записали отриманий масив за допомогою 3 функцiї 13Н переривання на теж саме мiсце.

Текст програми:

Текст головного модуля:

;---------------------------------------------------

; Защита информации. Лабораторная работа #1.

; Разработка: Мороз А.А. КИТ-12б

; Программа изменяет метку диска.

; filename: lab01-1.asm

;---------------------------------------------------

; Процедуры находятся в другом файле

extrn proc_1:far

extrn proc_2:far

extrn vivod:far

; Объявляем пременные как внешние

public buf,lab

sts segment stack

            db 256 dup (0)

sts ends

data segment

buf       db 512 dup (0)                        ; Буфер для чтения сектора

lab       db '  Moroz_A_A ','$'

str1      db 'Old Label: $'

space   db 10,13,'$'

str2      db 'New Label: $'

data ends

code segment

            assume cs:code,ds:data,ss:sts

begin:

            mov ax,data             

            mov ds,ax               

            mov es,ax

            mov ax,sts

            mov ss,ax             

            call proc_1 ; Процедура чтения сектора

; Вывести сообщение

            mov ah,9h               

            lea dx,str1

            int 21h

            call vivod ; Процедура вывода метки

            mov ah,9h               

            lea dx,space

            int 21h

; Пишем новую метку в буфер

            mov cx,11

            lea di,buf

            add di,2bh

            lea si,lab

            rep movsb

            call proc_2 ; Процедура записи сектора

; Частичная очистка буфера

            mov di,2bh

            mov cx,11

m3:

            mov buf[di],0

            inc di

loop m3

            call proc_1 ; Процедура чтения сектора

; Вывести сообщение

            mov ah,9h               

            lea dx,str2

            int 21h

            call vivod  ; Процедура вывода метки

; Ждет нажатия клавиши

            mov ah,01  

            int 21h

; Возврат управления в DOS

            mov ah,4ch  

            int 21h

            code ends

            end begin

Текст основних процедур програм:

;---------------------------------------------------

; Защита информации. Лабораторная работа #1.

; Разработка: Мороз А.А. КИТ-12б

; Программа изменяет метку диска.

; filename: lab01-2.asm

;---------------------------------------------------

; Переменные объявлены в главном модуле

extrn buf:byte, lab:byte

; Сделать процедуры доступными для главного модуля

public proc_1

public proc_2

public vivod

code segment 

assume cs:code

; Процедура чтения сектора

proc_1 proc far

    mov ah,02h              

    mov al,01h              

    mov dx,0

    mov cx,1

    lea bx,buf

    int 13h

    ret

proc_1 endp

; Процедура записи сектора

proc_2 proc far

    mov ah,03h               

    mov al,01h              

    mov dx,0

    mov cx,1

    lea bx,buf

    int 13h

    ret

proc_2 endp

; Процедура вывода метки на экран

vivod proc far

mov cx,11

mov di,2bh

m2:

            mov ah,02

            mov dl,buf[di]

            int 21h            

            inc di

            loop m2

            ret

vivod endp

code ends

end

Висновок: Я придбав основні навички роботи з дисками на низькому рiвнi.

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

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