Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 567
от 08.10.2006, 22:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 345, Экспертов: 34
В номере:Вопросов: 4, Ответов: 8


Вопрос № 57486: Здравствуйте. Может кто нибудь написать текст программы, которая удаляет все файлы в директории ? Не могу открыть найденный файл, в этом вся проблема.( Под Дос )...
Вопрос № 57489: Здравствуйте, уважаемые эксперты! Пожалуйста подскажите как написать драйвер по WinXP который мог, ну, скажем по нажатию Ctrl-K выводить некое подобие MessageBox с фиксированным текстом. На статьи по написанию драйверов, в которых нет нихрина кода, а...
Вопрос № 57490: добрый день! скажите пожалуйста, зачем в GDT начальный дескриптор обязательно должен быть нулевым? ну вот кому это такая блажь в голову пришла?...
Вопрос № 57549: Здравствуйте ! Существует ли в ассемблере функция расширения имени файла до полного? А то я ищу файлы в папке c:games, а когда пытаюсь открыть, выскакивает ошибка, о том что такого файла нет (потому что компилятор ищет его в текущем каталоге)....

Вопрос № 57.486
Здравствуйте. Может кто нибудь написать текст программы, которая удаляет все файлы в директории ? Не могу открыть найденный файл, в этом вся проблема.( Под Дос )
Отправлен: 02.10.2006, 22:27
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Jekyll
Здравствуйте, Whiteman!

сабж очень прост. делаешь цикл - findfirstfile - findnextfile - findclose. сравниваешь аттрибуты найденного, если это файл - делаешь DeleteFile и все.
Ответ отправил: Jekyll (статус: 2-ой класс)
Ответ отправлен: 03.10.2006, 02:13

Отвечает: Стас
Здравствуйте, Whiteman!

Примерно так... (TASM)

.286
CSEG segment
assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
org 100h
Begin:
mov ax,cs
mov ds,ax
mov es,ax

;настроим DTA
mov AH, 1Ah
lea dx,dataarea
int 21h

mov AH, 4Eh
xor CX, CX
mov DX, offset mask_file
int 21h
jc No_found

Next:
lea si,mask_file
lea di,filename
mov cx,5
cld
rep movsb ; скопировали путь из маски

lea si,dataarea+1eh ;копируем имя файла из найденого в буффере
filenameloop:
lodsb
stosb
or al,al
jnz filenameloop

lea dx,filename
mov AH, 41h
int 21h ;удаляем файл

lea dx,dataarea
mov AH, 4Fh
int 21h
jnc Next

No_found:
int 20h

mask_file db 'c:1*.*',0
dataarea: db 30h dup (0)
filename: db 255 dup (0)

CSEG ends
end begin

Ответ отправил: Стас (статус: Специалист)
Ответ отправлен: 03.10.2006, 21:23
Оценка за ответ: 5


Вопрос № 57.489
Здравствуйте, уважаемые эксперты! Пожалуйста подскажите как написать драйвер по WinXP который мог, ну, скажем по нажатию Ctrl-K выводить некое подобие MessageBox с фиксированным текстом. На статьи по написанию драйверов, в которых нет нихрина кода, а только пояснения просьба не отсылать... Заранее благодарю
Отправлен: 02.10.2006, 22:39
Вопрос задал: Pinkbyte (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Jekyll
Здравствуйте, Pinkbyte!

отсылаю к wasm.ru. куча кода, куча пояснений, есть грамотные люди, которые на форуме разведут по понятиям :))
Ответ отправил: Jekyll (статус: 2-ой класс)
Ответ отправлен: 03.10.2006, 02:15
Оценка за ответ: 1
Комментарий оценки:
Был я на вашем wasm.ru. Кроме кода на Дельфях для Ring-0 ничо полезного не почерпнул,да и тот не пригодился, а драйвер там написан ваабще непонятный!

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Pinkbyte!
Я так понимаю, DDK отсутствует...
Если бы был, то такого вопроса не возникло бы, там есть примеры.
А вот без DDK, драйвер, ну никак, не слепишь...
Так что, первым делом ищи WinDDK, сойдет и NTDDK.
Проштудируй, ну а потом уж, как правильно сказали, с конкретными вопросами на WASM.RU
Написание драйвера под ХР - весьма нетривиальная задача. Так что придется изрядно "попотеть".
Удачи!
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.10.2006, 10:54
Оценка за ответ: 4
Комментарий оценки:
Встречный вопрос - где найти DDK и скока это чудо весит?


Вопрос № 57.490
добрый день!
скажите пожалуйста, зачем в GDT начальный дескриптор обязательно должен быть нулевым? ну вот кому это такая блажь в голову пришла?
Отправлен: 02.10.2006, 22:41
Вопрос задал: Вiктор (статус: 6-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Вiктор!
Почему сразу блажь?
Это сделано для возможности использования нулевого значения, как индикатора незагруженности сегментного регистра каким-либо селектором.
А соответствующее поле селектора используется, как индекс в таблицах GDT и LDT. Делай вывод...
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.10.2006, 10:30
Оценка за ответ: 5
Комментарий оценки:
спасибо, я это как-то упустил из виду.


Вопрос № 57.549
Здравствуйте ! Существует ли в ассемблере функция расширения имени файла до полного? А то я ищу файлы в папке c:games, а когда пытаюсь открыть, выскакивает ошибка, о том что такого файла нет
(потому что компилятор ищет его в текущем каталоге).
Отправлен: 03.10.2006, 12:48
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jekyll
Здравствуйте, Whiteman!

В ассемблере не существуют функций вообще :) это машинный язык.

Берите API под Windows и прерывания по ДОС.
Ответ отправил: Jekyll (статус: 2-ой класс)
Ответ отправлен: 03.10.2006, 12:56

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Whiteman!
А кто мешает самому сформировать полное имя, дописав к "c:games" найденное имя?
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.10.2006, 14:31

Отвечает: Pinkbyte
Здравствуйте, Whiteman!

Если вы не можете дописать путь до начального попробуйте тогда ф-wb. SetCurrentDirectory - она установит указанную вами папку как текущую и уже в ней будет пытаться открыть файл впоследствии...
---------
Нейтральность - высшее достижение сознания
Ответ отправил: Pinkbyte (статус: 1-ый класс)
Ответ отправлен: 03.10.2006, 17:40


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное