Студопедия — Пример 2. ASSUME CS:CODE, DS:CODE
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 2. ASSUME CS:CODE, DS:CODE






CODE SEGMENT

ASSUME CS: CODE, DS: CODE

ORG 10OH

BEG:

/открыть файл

MOV AX, 3D02H

LEA DX, PATH

INT 21H

JC _END

PUSHAX

/байт в таблице дескрипторов файлов равен

; номеру блока описания файла

MOVSI, AX

MOV DL, ES: [SI+18H] - • •

XORDH, DH; номер блока в DX

/адрес списка списков ~

MOV АН, 52Н:

INT 21H

/указатель на системную таблицу файлов

LES SI, ES: [BX+4]; в ES: SI

/ищем блок описания файла

CMPDX, ES: [SI+4]

JB YES

SUB DX, ES: [SI+4]

LESSI, ES: [SI] /второй блок

; номер кластера

YES:

MOVAX, 59 /размерблока

MULDL

ADDSI, AX

MOVAX, ES: [SI+6+OBH] /номеркластера

MOVCLAST, AX

/записываем номер по смещению OFSET, вначале сдвиг,

POPВХ

MOVAX, 4200H

XORCX, CX

может быть помечен как неперемещаемый (READONLY). Однако атрибут файла может быть случайно изменен, что приведет к тому, что пакет не будет работать. В качестве примера, однако, я приведу программу, определяющую начальный кластер заданного файла. Для определения начального кластера файла используется функция 52Н. Конечно, начальный кластер файла можно найти, поработав с FAT, но это гораздо сложнее. Данная программа определяет номер начального кластера файла с именем NONAME.COM и записывает его в него же по смещению OFSET.

CODE SEGMENT

ASSUME CS: CODE, DS: CODE

ORG 10OH

BEG:

/открытьфайл

MOV AX, 3D02H

LEA DX, PATH

INT 21H

JC _END

PUSHAX

/байт в таблице дескрипторов файлов равен

; номеру блока описания файла

MOVSI, AX

MOV DL, ES: [SI+18H] - • •

XORDH, DH; номер блока в DX

/адрес списка списков ~

MOV АН, 52Н:

INT 21H

/указатель на системную таблицу файлов

LES SI, ES: [BX+4]; в ES: SI

/ищем блок описания файла

CMPDX, ES: [SI+4]

JB YES

SUB DX, ES: [SI+4]

LESSI, ES: [SI] /второй блок

; номер кластера

YES:

MOVAX, 59 /размерблока

MULDL

ADDSI, AX

MOVAX, ES: [SI+6+OBH] /номеркластера

MOVCLAST, AX

/записываем номер по смещению OFSET, вначале сдвиг,

POPВХ

MOVAX, 4200H

XORCX, CX

ERR D:

WR:

MOV DH, 2

MOV CL, 4

MOV CH, 3

MOV DL, 80H

MOV BX, OFFSET BUF

INT 13H

JC ERR_D

MOV DX, OFFSET MES1

JMP SHORT WR

MOV DX, OFFSET MES2

MOV AH, 9

INT 21H '

RET

MES1 DB 'Метка установлена на жесткий диск.', 13, 10, ' $ '

MES2 DB 'При установке метки на жесткий диск произошла'

DB 'ошибка.', 13, 10, '$ '

BUFDB 512 DUP(?)

DB 4234'

CODEENDS

ENDBEGIN

(а) Установка метки на жестком диске.

CODE SEGMENT

ASSUME CS-.CODE

ORG 100H

BEGIN:

/читаем: головка 2, дорожка 3, сектор 4

MOV AH, OAH

MOV AL, 1

MOV DL, 80H

MOV DH, 2

MOV CH, 3

MOV CL, 4

MOV BX, OFFSET BUFFER

INT 13H

JCNO_M

; проверка последних 4 байт

CMP BYTE PTR ES: [BX]+512, '! '

JNZ NO_M

CMP BYTE PTR ES: [BX]+513, '2 '

JNZ NO M

CMP BYTE PTR ES: [BX]+514, '3'

JNZ NO_M

CMP BYTE PTR ES: [BX]+515, '4 '

JNZ NO_M

MOV DX, OFFSET MES2

JMP SHORT WR

NO_M:

MOV DX, OFFSET MES1

WR:

MOV AH, 9

INT 21H

RET

BUFFER DB 512 DUP(?)

METDB 4 DUP(?)

MES1 DB 'Метка на жестком диске не обнаружена.'

DB 13, 10, '$'

MES2 DB 'Метка на жестком диске обнаружена.', 13, 10, '$'

CODEENDS

ENDBEGIN

(б) Проверка метки на жестком диске.

Информация, необходимая при идентификации пакета, может быть помещена в ВООТ-сектор или PARTITIONTABLE. Однако это ненадежный способ, и прибегать к нему следует лишь в простых ситуациях. Дело в том, что содержимое этих секторов может измениться при переустановке системы. Некоторые же антивирусные программы могут принять постороннюю информацию в секторе за наличие вируса. Пакет может быть привязан к BAD-кластерам, которые проставляются во время установки.

Привязка к винчестеру может сочетаться с проверкой некоторых индивидуальных параметров компьютера. К таковым относятся:

- серийный номер микропроцессора, микросхемы ПЗУ и дата изготовления;

- аппаратная конфигурация данного компьютера;

- содержание ПЗУ (контрольная сумма);

- частотные и временные характеристики отдельных узлов.







Дата добавления: 2014-11-10; просмотров: 870. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия