Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 084 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-09-03
Вопрос №763
Уважаемые эксперты!!! Ответьте, пожалуйста, что означают такие слова в ваших письмах, как ИМХО или IMHO, ЗЫ, ЗЫЫ и т.п.
Ответ
Здравствуйте, Эдуард!
IMHO (ИМХО) - In my humble opinion (по моему скромному мнению).
З.Ы., З.З.Ы. - P.S., P.P.S. для ленивых.
Отправил эксперт: DM
Эксперт отправил ответов (всего): 21
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №762
Ознакомившись с вопросом и ответом номер 745,
заволновался.
У меня при открытии в "Мышкином меню" происходит
обращение к флопику, но не всегда (сечас вот не произошло).
Ни с чем немогу ассоциировать.
Есть ли возможность посмотреть где нибудь, а то волнуюсь.
Сильно волнуюсь :-)
=====
И не по существу: куда то делись 79,80,81 рассылки.
Все ли в рассылках касается программированию под ДОС,
если нет то нельзя ли помечать отличные рассылки, а то
когда незнаешь да забудешь..одним словом иногда, что то не понятно. Может это так надо? Я про непонятно?
Ответ
Здравствуйте, oleg!
Если стоит Dr.Web, AVP с сегодняшними базами и обращение к флоппи продолжается больше недели и если я правильно понял, что "мышиное меню" - это right-click в Explorer'е (на рабочем столе), можешь не волноваться. Бывают случаи, что ПО ставится на флоппи/с флоппи или чтото на этом флоппи забыло (последний открытый файл, например), а затем прописывается в "ассоциации" по типам файлов. А эти ассоциации проверяются при каждом right-click'е на файлы. Надеюсь, ты понял...
Если обращение началось после установки какой-либо программы, попробуй переустановить её.
Не по существу: какие 79-81 рассылки? Таких выпусков нет. Вроде. Пока что все рассылки посвящены программированию под дос.
Отправил эксперт: DM
Эксперт отправил ответов (всего): 22
Экспертная группа: Пользовательская работа с Windows
Вопрос №771
Уважаемые эксперты!
Есть необходимость перегружать компьютер в заданный момент времени. Написали резидента, который пробует перезагрузить используя
CLI
JMP f000:fff0
при этом из Norton-а все проходит гладко и компьютер перегружается, а вот из программы, которую следует сбросить не получается (зависание очень прочное). Есть подозрение, что программа работает в 386 режиме. Ктонибудь может подсказать что можно предпринять для 100% перезагрузки
Ответ
Здравствуйте, VladislaV!
Попробуйте поэкспериментировать с прерываниями BIOS: 18h or 19h
P.S.
Если перед вызовом этих прерываний по адресу: 0:472h записать 1234h,
то будет с эмулироывана "теплая перезагрузка", ctrl-alt-del, в противном случае "холодная"
Отправил эксперт: АлександрМ
Эксперт отправил ответов (всего): 4
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №773
Здраствуйте эксперты!
У меня к вам 3-и вопроса:
1) Что обозначают 16-ричные цифры находяшиеся после сегмента и смишения (просматривая программу в отладчике)(пример: 0000:0001 65В12 ...)?
2) Что делает оперратор assume?(я толком не понял)
3)0B800h-"соотв. сегменту дисплея в текстовом режиме",
Веть в .com программе 1-н сегмент,как такая операция может быть законной???
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
...
mov ax, 0B800h
mov es, ax
Ответ
Здравствуйте, Alex!
1. Это код операции... все инструкции кодируются в коды.
2. assume определяет сегменты по умолчанию. эта инструкция есть не во всех компиляторах ассемблера, вообщем она служит для проверки твоих программ еще на этапе компиляции... дабы ты не допускал некорректных выражений.
3. Я уже недавно говорил что ограничение com программ одним сегментом - это условность. актуальна только в момент старта программы. дальше ты можешь делать с памятью все что тебе хочется. файл не сможет быть больше чем 65436 байт. против этого не попрешь. но это не означает что ты не можешь использовать больше память в процессе работы программы.
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 95
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №772
Привет всем!
Недавно один паренек интересовался, как запаролить папку в Windows-98. Меня это тоже заняло и «по совету друзей » (Broken Sword;)))))) ) сходил на рекомендуемый сайт и вытащил программку Paralax Spider (по-моему). После установки сего продукта доступ к папкам закрылся нахрен без всякого пароля и кончилось дело тем что пришлось переустанавливать винду (поверх старой). После переустановки все нормализовалось кроме одного: при попытке открыть из Проводника любой файл (.txt, .doc, .rar., .mp3 - короче любой) выскакивает ошибка: Kern32 – Программа выполнила недопустимую операцию……………
Догадываюсь, что где-то похерились ассоциации файлов, но где?
Буду благодарен. С уважением.
P.S. Субботняя рассылка – просто кошмар. Я, конечно, не эксперт Painbringer, так как он эксперту Michael сказать не смогу, но очень мне это сделать хочется. Олегу стоит подумать как удалять подобных «экспертов», у которых «sorry», из рассылки, иначе она в хлам уйдет. Лучше помоему глупый вопрос ламера почитать да себя проверить, чем изучать откровенно идиотские ответы подобных «экспертов».
Ответ
Здравствуйте, Вал.Ик.!
Ассоциации файлов можно править двумя путями:
- "папка"->"свойства папки"->"типы файлов"
- в реестре HKEY_CLASSES_ROOT
Но проблема может быть в том что:
в реестре, win.ini мог остаться мусор от Paralax Spider (по-твоему), поэтому
проверь также ключи реестра:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
и файл win.ini
[windows]
load=
run=
нет ли там чего нибудь похожего на запуск Paralax Spider
Отправил эксперт: АлександрМ
Эксперт отправил ответов (всего): 5
Экспертная группа: Пользовательская работа с Windows
Вопрос №774
Здраствуйте эксперты!
Спасибо вам за ответ на мой прошлый вопрос=)))
Но я имел ввиду немного другое, а именно:
Что обозначает первая 8 потом 0 потом 186(к примеру 80186)???
Ответ
Здравствуйте, Alex!
4040-4 битный процессор
8080-8 битный вариант
8086-16 бит шина адреса и данных
8088-16 бит шина данных, 8 бит шина адреса
80186-16 бит шина адреса и данных, улучш. вариант 8086
80188-16 бит шина данных, 8 бит шина адреса, удешевили 80186
80286-улучш. вариант 80186, первые намеки на защищенный режим, 24 бита адресация
80386SX-улучш. вариант 80286, 32-бит адресация, без сопроца
80386DX-80386SX+сопроц
80486SLC-четверка внутри, тройка по выводам, для замены устаревших троек в те же матеря
80486SX-улучш. вариант 80386, 32-бит адресация, без сопроца
80486SL-то же что SX, но с пониженым питанием-мобильный вариант
80486DX-с сопроцессором
Дальше все с сопроцом
80486DX2-внутренняя шина *2 по сравнению с внешней
80486DX4-внутренняя шина *3 по сравнению с внешней(именно на 3!), почему так-неизвестно, хотя в какой-то статье вычитал, что разработчики сказали-"подчеркнуть, что это четверка"
80486DX5-внутренняя шина *4 по сравнению с внешней, выпускалась только AMD.
Pentium-торговая марка
Ладно, лень писать о пнях, и так много наваял, хотя если интересно-повтори вопрос, я напишу:)
ЗЫ Эксперты-москвичи, свяжитесь с Олегом!
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 104
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №775
Здравствуйте.
Экспертам.
Orlando я немного переделал твою программу.
.model small
.stack 10h
.data
.code
start:
mov ax,0012h
int 10h
mov bx,0a000h
push bx
pop es
mov di,19002
mov ax,00F0h
call sss
add di,78
call sss
add di,69
mov ax,03fffh
call sss
mov ax,0f3c0h
call sss
mov ax,0c3fch
call sss
mov ax,0cf3fh
call sss
mov ax,0f0f0h
call sss
add di,150
mov ax,030c0h
call sss
mov ax,0f3c3h
call sss
mov ax,0cf00h
call sss
mov ax,00c30h
call sss
mov ax,0f030h
call sss
add di,150
mov ax,030c0h
call sss
mov ax,033cfh
call sss
mov ax,0ff00h
call sss
mov ax,0cc3fh
call sss
mov ax,0f030h
call sss
add di,150
mov ax,030c0h
call sss
mov ax,0f3cfh
call sss
mov ax,0f300h
call sss
mov ax,0cc30h
call sss
mov ax,00030h
call sss
add di,150
mov ax,030ffh
call sss
mov ax,033cch
call sss
mov ax,0c3fch
call sss
mov ax,0cf3fh
call sss
mov ax,0f0f0h
call sss
jmp exit
sss proc
mov word ptr es:[di],ax
add di,2
sss endp
ret
exit:
mov ah,4ch
int 21h
end start
Sensey - где же можно найти такую же книжку,
как у тебя?
С уважением Alex12
Ответ
Здравствуйте, Alex12!
Люди, ВАС МНОГО(человек 30)!
Всем выслать не МОГУ!
Скоро Олег появится, выложит. И Dron aka А.Валяев обещал...
ЗЫ Ну и программа...:) Процедуру проще макросом написать
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 105
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №776
Здравствуйте, уважаемые эксперты!
Хочу поставить себе звучок покруче. Подскажите, какую звуковую карточку и колонки лучше всего ставить на комп.
Заранее благодарен...
з.ы. А мишку-то уберите... :-))
Ответ
Здравствуйте, Azrael!
Говорите звучок покруче... тогда покупайте SB LIVE PLATINUM 5.1 (около 170$) и колнки с поддержкой 5.1, то есть 5 колонок + сабвуфер, что нибудь от фирмы F&D или Creative (тоже не меньше 100$). Добавите DVD-ROM и Домашний кинотеатр у вас обеспечен. Ну если на это денег нет, то берите карточку SB LIVE Value!. Она несколько урезана по сравнению с предыдущей, но качество звучания тоже. Ну а колонки лучше брать с поодержкой 4.1 - 4 колонки + сабвуфер, либо опять же если нет денег, какие-нибудь высоковольные двухполосные с сабвуфером. А вообще зайдите в какую-нибудь фирму там дадут конкретный совет и по деньгам определитесь.
С уважением, Евгений!
Отправил эксперт: Evgeny
Эксперт отправил ответов (всего): 15
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №775
Здравствуйте.
Экспертам.
Orlando я немного переделал твою программу.
model small
.stack 10h
.data
.code
start:
mov ax,0012h
int 10h
mov bx,0a000h
push bx
pop es
mov di,19002
mov ax,00F0h
call sss
add di,78
call sss
add di,69
mov ax,03fffh
call sss
mov ax,0f3c0h
call sss
mov ax,0c3fch
call sss
mov ax,0cf3fh
call sss
mov ax,0f0f0h
call sss
add di,150
mov ax,030c0h
call sss
mov ax,0f3c3h
call sss
mov ax,0cf00h
call sss
mov ax,00c30h
call sss
mov ax,0f030h
call sss
add di,150
mov ax,030c0h
call sss
mov ax,033cfh
call sss
mov ax,0ff00h
call sss
mov ax,0cc3fh
call sss
mov ax,0f030h
call sss
add di,150
mov ax,030c0h
call sss
mov ax,0f3cfh
call sss
mov ax,0f300h
call sss
mov ax,0cc30h
call sss
mov ax,00030h
call sss
add di,150
mov ax,030ffh
call sss
mov ax,033cch
call sss
mov ax,0c3fch
call sss
mov ax,0cf3fh
call sss
mov ax,0f0f0h
call sss
jmp exit
sss proc
mov word ptr es:[di],ax
add di,2
sss endp
ret
exit:
mov ah,4ch
int 21h
end start
Sensey - где же можно найти такую же книжку,
как у тебя?
С уважением Alex12
Ответ
Здравствуйте, Alex12!
Даа.. Впечатляет!! Не всем терпения хватило бы!
Но для стека места пожалел!
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 69
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №776
Здравствуйте, уважаемые эксперты!
Хочу поставить себе звучок покруче. Подскажите, какую звуковую карточку и колонки лучше всего ставить на комп.
Заранее благодарен...
з.ы. А мишку-то уберите... :-))
Ответ
Здравствуйте, Azrael!
Из покруче - че нить типа Звуковая карта LIVE Creative 1024 PCI
Цена 52$ в Харькове-
Это не из профессиональных, те за $300 мин. цена.
А колонки - по дизайну, но их должно быть 5 + Сабвуфер, так как звуковуха поддерживает формат 5+1
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 106
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №774
Здраствуйте эксперты!
Спасибо вам за ответ на мой прошлый вопрос=)))
Но я имел ввиду немного другое, а именно:
Что обозначает первая 8 потом 0 потом 186(к примеру 80186)???
Ответ
Здравствуйте, Alex!
Сомневаюсь, что каждая цифра чего то обозначает отдельное, просто это у разработчиков фирмы Intel фантазия ни куда не годится!
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 70
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №776
Здравствуйте, уважаемые эксперты!
Хочу поставить себе звучок покруче. Подскажите, какую звуковую карточку и колонки лучше всего ставить на комп.
Заранее благодарен...
з.ы. А мишку-то уберите... :-))
Ответ
Здравствуйте, Azrael! Если хочешь действительно "звучок покруче", то бери Creative Gold (это тот самый, с выносом на панель ж) ), и ты не ошибешься!!! но он конечно и стоит... Если ты не так крут и тебе не нада втыкать миди клавиатуры и микшировать звук сразу по 4 дорожкам, то любая >20$ звуковуха впринципе подойдет. сразу замечу, что все эти пяти и семи баксовые ESS и ALS впринципе тоже не так уж плохи, но тебе постоянно придется отключать звук как то: с СD, с микрофона, чтобы во время "тишины" на самом деле была эта самая "тишина", а не шуршание и потусторонний скрип. Насчет колонок хочу заметить следующее: все маленькие, китайские, Noname (туда же и primax с genius-ом) впринципе на одно лицо и какого то разительного различия в их звучании ты не заметишь. Щас чего то (во всяком случае здесь) пошла мода на деревянные колонки F&D с якобы песочным наполнителем и т.п....- ну слышал я их, ну громкие они и не дребезжат на низких при громком звуке, как их маленькие собратья, но !
больше ничего сверхестественного от них не дождешься. (до ребят с более менее крутых музыкальных центров им еще далеко)
Еще дето было написано, что "если брать колонки, то брать с SubWoofer-oм, разница в цене не огромна, а качество- значительно лучше...". Не знаю. Никогда не слышал как такие звучат, на низких должно быть круче конечно. Но вообще, если собрался убухать 1000 баксов на компьютерные колоны и звуковуху (что вполне реально), то я б на твоем месте взял ОЧЕНЬ крутой центр (у нас Pioneer этот с фиолетовой стрелочкой (с минидисками) стоил 400 баков... я даже не представляю центра за штуку баксов...), и слушал бы все касающееся звука на нем...
вот и все. удачи в выборе центра! ж)
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 123
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №773
Здраствуйте эксперты!
У меня к вам 3-и вопроса:
1) Что обозначают 16-ричные цифры находяшиеся после сегмента и смишения (просматривая программу в отладчике)(пример: 0000:0001 65В12 ...)?
2) Что делает оперратор assume?(я толком не понял)
3)0B800h-"соотв. сегменту дисплея в текстовом режиме",
Веть в .com программе 1-н сегмент,как такая операция может быть законной???
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
...
mov ax, 0B800h
mov es, ax
Ответ
Здравствуйте, Alex!
1. Это всиго-навсиго машинные коды соотв. команд, не обращай на них особого внимания.
2. В сom проге с этим вопросом думаю все ясно да? он там не нужен. А почему? да потому что все сегменты в одном, при запуске com проги берется единственное значение CS и присваивается всем другим XS (не знаю откуда и каким именно образом, но так происходит). В exe все сегменты по разным углам, поэтому нада объяснить .... процу в каком сегменте что искать: например, данные - в DS assume dseg:DS, код - в CS: assume cseg:CS.
3. В чем то ты может и прав (в том что один сегмент), но в остальном, мне кажется, ты не совсем представляешь это дело четко... Могу сказать пока, что если подобную операцию проделать с CS, то комп на каком то этапе явно зависнет. А ES - он, понимаешь, для того и нужен, чтобы им крутить и вертеть как нам захочеться, он Enchansed Segment - расширенный сегмент, т.е. сегмент, предназначенный для нас, для наших нужд и потребностей, от его замены (равно как и FS с GS в 32 битном режиме) ничего в работе проги не измениться, чего не скажешь о DS,CS и SS - этих троих парней желательно не трогать никогда (хотя ни одна более менее серьезная прога без этого не обойдется), а если зделал "pop" с одним из них, то убедись что предварительно был "push" (по-русски: если меняешь эти сегменты - сохраняй их всегда и везде!!!)
вроде все. пока
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 124
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №778
Ув. эксп.!!!
Свя фишка в том, что в это факе никто не задает вопросов о вирусе - том самом кот в рассылке писать учили. Не значит ли это, что никто так ее с начала до конца и не прошел????
daylightinc@mail.ru
Ответ
Здравствуйте, Дмитрий!
Не знаю как остальные, но я в рассылки и не заглядывал, и в жизни под Дос не писал-только когда на вопросы отвечал...
А Асм знаю по работе-на работе свое разрабатываем, где разные микроконтроллеры встречаются-и 8086 в том числе...
Совет всем:)Если охота научится Асму-найдите такую же работу:)
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 107
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №778
Ув. эксп.!!!
Свя фишка в том, что в это факе никто не задает вопросов о вирусе - том самом кот в рассылке писать учили. Не значит ли это, что никто так ее с начала до конца и не прошел????
daylightinc@mail.ru
Ответ
Здравствуйте, Дмитрий!
Интересно, а это к кому вопрос был?
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 73
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №772
Привет всем!
Недавно один паренек интересовался, как запаролить папку в Windows-98. Меня это тоже заняло и «по совету друзей » (Broken Sword;)))))) ) сходил на рекомендуемый сайт и вытащил программку Paralax Spider (по-моему). После установки сего продукта доступ к папкам закрылся нахрен без всякого пароля и кончилось дело тем что пришлось переустанавливать винду (поверх старой). После переустановки все нормализовалось кроме одного: при попытке открыть из Проводника любой файл (.txt, .doc, .rar., .mp3 - короче любой) выскакивает ошибка: Kern32 – Программа выполнила недопустимую операцию……………
Догадываюсь, что где-то похерились ассоциации файлов, но где?
Буду благодарен. С уважением.
P.S. Субботняя рассылка – просто кошмар. Я, конечно, не эксперт Painbringer, так как он эксперту Michael сказать не смогу, но очень мне это сделать хочется. Олегу стоит подумать как удалять подобных «экспертов», у которых «sorry», из рассылки, иначе она в хлам уйдет. Лучше помоему глупый вопрос ламера почитать да себя проверить, чем изучать откровенно идиотские ответы подобных «экспертов».
Ответ
Здравствуйте, Вал.Ик.!
"Паренёк". Ну-ну.
Ассоциации хранятся в реестре, просто ищи в стандартном редакторе реестра (можно на своей системе, можно на чужой, но на чужой уже не в стандартном) строку 'mp3'. Найдешь несколько подряд каталогов с ассоциациями. Только их там... много.
P.S. Догадываюсь, что ты грузился уже не раз и не два, но попробуй все таки реанимировать user.da0/system.da0.
Отправил эксперт: DM
Эксперт отправил ответов (всего): 23
Экспертная группа: Пользовательская работа с Windows
Вопрос №773
Здраствуйте эксперты!
У меня к вам 3-и вопроса:
1) Что обозначают 16-ричные цифры находяшиеся после сегмента и смишения (просматривая программу в отладчике)(пример: 0000:0001 65В12 ...)?
2) Что делает оперратор assume?(я толком не понял)
3)0B800h-"соотв. сегменту дисплея в текстовом режиме",
Веть в .com программе 1-н сегмент,как такая операция может быть законной???
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
...
mov ax, 0B800h
mov es, ax
Ответ
Здравствуйте, Alex!
1)Это машинные коды операции (т.е. то, как программы выглядит после компиляции).
2)Assume - директива компилятору, привязывает сегментные регистры к сегментам программы (обычно для com-программы все сегменты сразу привязывают к единственному сегменту, тем более что после компиляции директивы места не занимают). Помогает компилятору корректно связывать символические имена, определённые в сегментах.
3)На Ассемблере под ДОС (не под Винды) корректно, легально, законно и возможно практически все, что программист делает с умом. А устройство текствой видеопамяти настолько примитивно, что сделать это можно и без ума. Программа просто обращается к области памяти, которую она не инициализировала, т.е. так она может обратится к любой области памяти, предусмотренной в PC XT, включая чужой код. Но это уже совсем другая история...
Отправил эксперт: DM
Эксперт отправил ответов (всего): 24
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №770
Возможно ли объединение двух машин без сетевыхкарт
Ответ
Здравствуйте, Николай!
Можно.
На небольшое расстояние - по нуль-модему. Но скорость - 115200 бит/сек.
В лучшем случае.
Нуль - модем можно купить, можно самому спаять.
Или просто через модемы...
А лучше через сетевые карты. Намного лучше.
Отправил эксперт: PavelAT
Эксперт отправил ответов (всего): 13
Экспертная группа: Пользовательская работа c DOS
Вопрос №778
Ув. эксп.!!!
Свя фишка в том, что в это факе никто не задает вопросов о вирусе - том самом кот в рассылке писать учили. Не значит ли это, что никто так ее с начала до конца и не прошел????
daylightinc@mail.ru
Ответ
Здрасте ! Давно не виделись :( Так как сейчас инета у меня нету (и не предвидется:( ) да и свой экспертский пароль я давно позабыл :( то хочу через вас передать такой вопрос :
" Итак ! Вообщем пишем вирус который себя-в начало, начало-в конец, как обычно...Так вот вопрос в том как Int 21h,4bh (загрузить и выполнить)узнает а собственно сколько байт загружать ? если из заголовка-то почему зараженная таким способом программа все равно грузится вся (ведь заголовок то у неё вируса) ?а если из FAT'a то почему когда я вначале освобождаю лишнюю память (что то вроде push cs, pop es и т.д (сегментный адрес блока памяти для изменения размера)) освобождается не только один cs но и все остальное (если зараженная прога сегментированна) откуда dos узнает что нужно освободить несколько сегментов ? "
и след. вопрос:
"Так как наконец вызвать "дос из дос" ! Как я понимаю, при выполнении int 21h он использует не стэк прерванной проги , а один из внутр. стэков доса, т.е. при вызове 21h из 21h 2-й вызов затирает значения из стэка и дальнейшее выполнение 1-го приведет сами знаете к чему...Вообщем как я понял нужно проверять флаг активности дос и только если он сброшен можно вызывать int 21h НО ! Допустим пишем прогу которая по нажатии клавиши выводит строку через Int 21h,09h . И так написали...выходим в коммандную строку...и... ведь дос постоянно активен ! (т.к. опрашивает клаву на предмет комманд) и как же тут быть ? вообщем поясните ув. эксперты.
И еще. Опять же хочу извенится что не могу отвечать на вопросы, так как у меня пока нет инета :( Но иой дух все же присутствует не зримо :) в лице (!?) ответов г-на (не подумайте что господина :) Broken Sword'a ! Роберт ! ХВАТИТ Пи... мои идеи ! Лучше наконец вирус напиши :) Ну ладно, ладно :) это все шуточки :0 не такой уж я и боец невидимого фронта :) Пока !
Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 3
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №781
Здравствуйте, уважаемые эксперты!!!
У меня вот какой вопрос: как скопировать текстовый файл(doc,txt...) из одного места в другое? Пришлите, пожалуйста, примерчик, только не сложный, потому что изучаю только 11-ый выпуск рассылки. Пробовал сам, не получается, не знаю как получить длину текстового файла в байтах, чтобы прочитать файл и записать его содержимое в другой (в другом месте), ведь нужно в регистре СХ указать количество записываемых байтов.
З.Ы. Заранее благодарен!!!
Ответ
Уважаемый Эдуард! Предлагаю такой вариант: создаешь буфер максимальной длины (64 Кб), потом открываешь текстовый файл для чтения, пихаешь в этот буфер данные из файла (при этом в СХ укажи максимальное значение, т.е. 0FFFFh), он себе туда благополучно считается, причем в AX будет уже число РЕАЛЬНО СЧИТАННЫХ БАЙТОВ!!!
Например, если какойнить .txt имеет размер 2 килобайт, ты указал считать из файла в буфер данные длиной 0FFFFh, то в результате AX=070Dh (2000 байт), теперь ты имеешь на руках реальную длину файла, а дальше - дело техники ж).
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 125
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
- Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
- Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
- Издание книги (спонсорство): Sponsor@Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу | Рейтингуется SpyLog |
В избранное | ||