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

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


Служба Рассылок Subscribe.Ru

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

Выпуск N 157

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-12-16


Вопрос №1760

Уважаемые эксперты!
Как в Windows 98/NT сделать приложение невидимым в списке задач? Как в Windows NT сделать приложение сервисом?

Ответ

Здравствуйте, Irbis!

RegisterServiceProcess


Отправил эксперт: Hutch
Эксперт отправил ответов (всего): 13

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1806

Здравствуйте.
Имеется Shareware версия универсального DOS-овского просмотрщика/проигрывателя QuickView Pro Ver. 2.46 (тянет даже DivX). (Если кому интересно можно скачать здесь: http://multimediaware.com/qv/). Может у кого есть кряк или кейген к нему или хоть к версии 2.45?
Заранее спасибо.
Михаил

Ответ

Здравствуйте, Михаил!
Сходи на CRACK.RU
Там есть все


Отправил эксперт: x-gn (www.mail2k.ru/~ev-i - Пусто :))
Эксперт отправил ответов (всего): 5

Экспертная группа: Пользовательская работа c DOS

Вопрос №1791

Подскажите, пожалуйста, такую штуку.
Имеется клавиатура(PS/2) "no name" сделаная в Китае,
маленькая такая, удобная. На ней имеется три доп. кнопки:
Power, Sleep, WakeUp. Проблема в том, что они не работают...
Драйвера - ясно отсутствуют. Подскажите как их заставить
работать под Win2K. ..Да, еще, на клаве намалевано Rainbow",
может кто сталкивался с такими...

Ответ

Здравствуйте, Alex!
Не советую (в вин 2ка у меня был глюк, когда питание вырубалось сразу же, как только винда находила клаву)


Отправил эксперт: x-gn (www.mail2k.ru/~ev-i - Пусто :))
Эксперт отправил ответов (всего): 7

Экспертная группа: Пользовательская работа с Windows

Вопрос №1839

Могут ли макровирусы содержаться в .rtf файлах? Или только в .doc?

Ответ

Здравствуйте, TanaT!
Макровирусы могут быть во всех Office файлах


Отправил эксперт: x-gn (www.mail2k.ru/~ev-i - Пусто :))
Эксперт отправил ответов (всего): 8

Экспертная группа: Пользовательская работа с Windows

Вопрос №1836

Подскажите где можно почитать(книги,I-net) o comand.com, config.sis,bios

Ответ

Здравствуйте, Вадим!
В инете - сомневаюсь, читай старые книги по ДОС, NortonComander


Отправил эксперт: x-gn (www.mail2k.ru/~ev-i - Пусто :))
Эксперт отправил ответов (всего): 10

Экспертная группа: Пользовательская работа c DOS

Вопрос №1851

uvazaemie eksperti pomogite pozaluysta!!! moy vint nakrilsya, ya vishel v internet cherez OS QNX zagruzka s flupy 1.4 :(((( vint FUGITSU 4.3Gb v biose prosmatrivaetsya otlichno no pry zagruzke pishet chtoto vrode NOT SISTEM DISK PRES ANY KEY..... :( zagruzhaius s CD vint ne vidno :-0 ne FDISK ne FORMAT ne rabotaet chto delat ???????? vozmozno li vostanovit informaciu ili hotya bi sam vint???? kak ya ponyal eto boot sektor nakrilsya??? pppoooommmmggggiiiitttteeeeee!!!!!!!!!!!!!!!!!! (mogite pechatat otvet russkimi kludzikami)

Ответ

Здравствуйте, nikolay!
Попробуй прогу Tiramisu FAT-32


Отправил эксперт: x-gn (www.mail2k.ru/~ev-i - Пусто :))
Эксперт отправил ответов (всего): 11

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1631

Как в программе использовать реестр, конкретно: как достать из него значение ..network\username?

Ответ

Здравствуйте, Nick!

RegOpenKeyEx
RegEnumValue

Первая функция открывает ветвь реестра.
Вторая записывает в буфер значение например username.


Отправил эксперт: Hutch
Эксперт отправил ответов (всего): 14

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1858

Кому ни лень, киньте пожалуйста на brokensword@mail.ru ФАК-и 39,60, и 98 (конечно, если найдете дето...)

Ответ

Здрасте, всем!

У меня вторую неделю создаётся ощущение, что кто-то повадился спамом заниматься: просит налить что-то на N мегабайт в чей-то mailbox. Результат - хост, где расположен mailbox, рубит юзера (это лучший вариант, худший - ложится сам сервер). Посему большая просьба ВСЕМ (ишь, блин, в модераторы полез!) не выполнять подобные просьбы.
Я конечно ещё не пострадал, но мне будет жалко новых жертв.


Отправил эксперт: Артём Шегеда (shegeda.chat.ru - Личная страничка - ничего особенного)
Эксперт отправил ответов (всего): 11

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1861

Приветик!
Народ, укажите ссылку, а лучше вышлите инфу по системе FAT. Чем подробнее будет, тем лучше!!!

Ответ

Здравствуйте, Василий!
Ну сколько раз уже эксперты говорили, что надо просто уметь пользоваться поисковиками, ан нет, все одно народ задает такие вопросы. ;((( Обидно. Может Олегу создать рассылку "Пользование поисковиками - это просто!" Эх, снова лирика.
попробуй зайти на www.emanual.ru и поискать там. Если нет, то поищи с помощью поисковиков - должно помочь.


Отправил эксперт: Tiger (www.tigeer.narod.ru - Что-то вроде того)
Эксперт отправил ответов (всего): 10

Экспертная группа: Пользовательская работа с Windows

Вопрос №1865

Здравствуйте эксперты. У меня небольшая проблема. Дело в том, что я хочу чтобы моя программа записывала некоторые данные в CMOS память. Но если я изменяю значения в CMOS, то компьютер отказывается грузится. Подскажите какие байты в CMOS неиспользуются и какие из них можно использывать в своих целях.

Ответ

Здравствуйте, Dron!
Почитай Teach Help, там описаны стандартные регистры CMOS и чем они занимаются и где находится контрольная сумма CMOS.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 23

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1866

Здравствуйте!
Меня интересует код програмы для обращения к жёсткому диску для тестирования, или где это можно поискать?

С уважением Чуранов Ю.В.

Ответ

Здравствуйте, Churik!
HDDtest
Speedsys
vseek


Отправил эксперт: AllAddIn
Эксперт отправил ответов (всего): 19

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1863

Уважаемые эксперты!
Купил принтер HP LazerJet 1220. Программа установки с CD диска без всяких альтернатив установила на диск C в каталог Program Files всего разного интересного объемом 170 Mb. Я хотел бы это все иметь на другом диске D и в другом каталоге. Возможно ли средствами Windows 98SE перенести это все на другое место и чтобы можно было работать с этим через меню "Пуск"?
Заранее благодарен.
Igor.

Ответ

Здравствуйте, Igor!
Просто так все перенести не удасться т.к. информация об установочном каталоге записывается в реестр. Можно попробовать изменить пути в реестре, но маловероятно, что заработает, т.к. информация могла так же переписаться в какие-нибудь файлы. Удалите программы через Установку-удаление программ. Запустите с диска программу установки занова. Должен быть выбор места установки, если его нет, то это кривота программы и сделать что-то навряд ли удасться. Ну а для добавления иконок в меню Пуск воспользуйтесь: Пуск -> Настройка -> Панель задач и меню пуск.
С уважением, Евгений!


Отправил эксперт: Evgeny (http://edu.ru.ru - Обучающие программы)
Эксперт отправил ответов (всего): 27

Экспертная группа: Пользовательская работа с Windows

Вопрос №1859

Наконец-то получил рассылку с письмом Вал.Ик.'а
Этот вопрос лучше читать, имея перед глазами эту рассылку
Классно пометил перипетии!
Я бы лично наградил его званием "Летописец Рассылки"
Разъяснения по поводу некоторых вопросов, поднятых в письме:
1.По железу я действительно эксперт- год им торгую, как никак
2.Но по Асму (работа под ДОС или особенно ВИнда) очень сильно помогал мне Артем Шегеда, он недавно зарегестрился, очень знающий человек!
3.Звездное небо мы с ним вдвоем написали..
4.А по поводу насоса- Олегу нвадо ввести новый раздел-МК51 процессор - лично я помогу ответить!
5.Насчет оптимизации - я подключился, когда Дрон написал свою - я с Артемом Шегедой ее оптимизировал, поэтому лавры можно разделить между Дроном, Артемом и мной
6.По поводу MailRu - вытащил на http://spectator.ru - чел пишет неплохо и с юмором
7.А GeForce крут! Только Voodo 3 круче!!!! Сам недавно взял!
8.Я то-очухался от Визарда, но на работе подгрузили, некогда не то чтобы что-то лирическое писать, а и на ворпросы отвечать

Ответ

Здра!
Че-то вчера я написал после дня рождения на работе-читайте...


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 230

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1863

Уважаемые эксперты!
Купил принтер HP LazerJet 1220. Программа установки с CD диска без всяких альтернатив установила на диск C в каталог Program Files всего разного интересного объемом 170 Mb. Я хотел бы это все иметь на другом диске D и в другом каталоге. Возможно ли средствами Windows 98SE перенести это все на другое место и чтобы можно было работать с этим через меню "Пуск"?
Заранее благодарен.
Igor.

Ответ

Здравствуйте, Igor!
Алгоритмик:
1. Копируешь куда тебе надо(папка "УУУУ")
2. Открываешь "УУУУ" через мой компьютер
3. Правой кнопкой по "Пуску", выбираешь "открыть"
4. Переходишь в "Программы"
5. Или создаешь папку, или заходишь в какую-лио существующщуую(по смыслу подходящую), назовем ее "Принтер"
6. На иконке главного екзешника в папке "УУУУ" кликаешь правой кнопкой и, не отпуская ее, тащишь в "Принтер"
7. Отпуская мышу, ты увидишь меню, где выбери "Создать ярлык"
8. Пробуй работать, если получилось, окей, иначе см. п. 9.
9. Залезь в реестр, найди ссылки на "С:\Program Files\XXXX", где XXXX-то куда оно все по умолчанию помещено, и меняешь на "D:\YYYY"
10. См п. 8
Удачи:)


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 231

Экспертная группа: Пользовательская работа с Windows

Вопрос №1865

Здравствуйте эксперты. У меня небольшая проблема. Дело в том, что я хочу чтобы моя программа записывала некоторые данные в CMOS память. Но если я изменяю значения в CMOS, то компьютер отказывается грузится. Подскажите какие байты в CMOS неиспользуются и какие из них можно использывать в своих целях.

Ответ

Здравствуйте, Dron!
Смени плиз ник, а то ты нашего наикрутейшего эксперта подводишь:)))
А вообще зайди к нему на сайт и скачай TechHelp--там все написано
Но в приложении кое-чего высылаю...
10h-20h защищены CRC, то есть в принципе ты можешь пользовать 21h-2Dh 34h-3Fh байты

Приложение:


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 232

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1868

Всем огр-р-ромный привет!
И за ранее sorьки за оффтопик!
Препод сегодня втирал нам про рекурсии и привел очень интересный пример который я ну не как несмог осмыслить долбался, долбался, долбался, долбался, долбался но всеровно не въехал. Да еше и компилятора для Паскакаля нету, проверить негде:(( Думаю остается последний шанс спросить экспертов:))
Вот эта процедура сможет перевести из 10-чной в 2-ицную систему исчесления (см. ниже):
procedure p (m:word);
begin
if m<>1 then p(m div 2);
write (m mod 2);
end.
Вот я понимаю что эта рекурсия (чоб еЈ...) будет наризать круги, но когда m=1 она выведет только одно число (mod 2). А препод утверждает что она еше вернется на верх и опять вниз и опять выведет еше одно число..., во как!
Буду благодарен за любой ответ...!
P.S. Вал.Ик тебе надо писать хронику рассылки=)
P.S.S. За ранее примного благодарен!

Ответ

Здравствуйте, Alex!
Она сначала будет заходить, заходить, заходить до 1, а потом возвращаться и выводить, возвращаться и выводить,возвращаться и выводить...
См. в приложении код, запусти и все увидишь, а лично я еще и ехе вышлю, чтоб ты не компилил

Приложение:


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 233

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1857

uvazaemie eksperti pomogite pozaluysta!!! moy vint nakrilsya, ya vishel v internet cherez OS QNX zagruzka s flupy 1.4 :(((( vint FUGITSU 4.3Gb v biose prosmatrivaetsya otlichno no pry zagruzke pishet chtoto vrode NOT SISTEM DISK PRES ANY KEY..... :( zagruzhaius s CD vint ne vidno :-0 ne FDISK ne FORMAT ne rabotaet chto delat ???????? vozmozno li vostanovit informaciu ili hotya bi sam vint???? kak ya ponyal eto boot sektor nakrilsya??? pppoooommmmggggiiiitttteeeeee!!!!!!!!!!!!!!!!!!

Ответ

Здравствуйте, nikolay!
Вероятно может помочь низкоуровнивое форматирование, но я сильно сомневаюсь. Можешь также на другом компе попробовть парнушен мажик.
ЗЫ. И не фига свой замечательный вопрос 6 раз задавать!!!


Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 269

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1865

Здравствуйте эксперты. У меня небольшая проблема. Дело в том, что я хочу чтобы моя программа записывала некоторые данные в CMOS память. Но если я изменяю значения в CMOS, то компьютер отказывается грузится. Подскажите какие байты в CMOS неиспользуются и какие из них можно использывать в своих целях.

Ответ

Здравствуйте, уважаемый одноникнеймиц уважаемого эксперта Dron!
Дело в том, что в AWARD-овском BIOS-е, кроме стандартного CHECKSUM есть еще и расширенный CHECKSUM - от 40h (64d) до 79h (121d). (42h-79h в версии v4.50G). Эта расширенная CHECKSUM храниться в 7Ah и 7Bh (старший и младший байты) и является простой арифметической суммой вышеозначенных областей. Т.е. фактически, если позабивать (40h-79h) разной шушерой, а потом просто сложить и записать в 7Ah-7Bh их арифметическую сумму, то можно обмануть таким образом наивный BIOS... но тут возникает другой вопрос: кто кого обманывает на самом деле? Дело в том, что по этим адресам все чаще хранятся какие-то задержки, Pallette Snoope и пр. ерунда, так вот если удастся подобрать их значения соответственно коду программы, который мы хотим туда пихнуть, то... я б назвал такой трюк гениальным.
Уважаемые эксперты! Я это только что все сам придумал (вчера была пьянка), и мне самому стало интересно: реален ли такой расклад вообще? Ведь 57 байт не шутка...


Отправил эксперт: Broken Sword (http://www.implozia.ru/imp/music/zemfira-traffic.mp3 - незнаю, зачемто вплел)
Эксперт отправил ответов (всего): 252

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1875

Хочу выучить ассемблер,подскажите может в инете какие книги
есть (желательно на русском).Заранее спасибо.

Ответ

Здравствуйте, Дима!
kak u Bce yaziki, assembler apparatno zavisimiy yazik.
Uto4ni, pod kakuu platformu ti budesh pisat' ( Windows, Dos, Unix)
a tak je pod kakoi proccessor.


Отправил эксперт: extremity
Эксперт отправил ответов (всего): 1

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1845

я хотел бы написать прогу блокирующая hdd, под дос и win,
можно ли ее написать как boot(?),то есть ее запустил и хряк
жд не читается совсем.:))
Без пароля.Или можно забить ее в биос???

Ответ

Здравствуйте, er_ager 00!
Написать проблему несоставляет. Если диск загрузочный т.е. A: или С:
По адресу Head:0 Sec:1 Cyl:0 находится бут сектор длина 512байт.
Считываеш его дизасемблируешь получишь примерно следуешие
JMP кудато так вот надо посмотреть куда и потом кинуть на себя на свою программу а потом если пароль правильный то JMP куда указивалось в оригинале boot. В биос тоже можно но это проблема так-как запорол биос и bye. А резервную копию взять негде :(


Отправил эксперт: Covax
Эксперт отправил ответов (всего): 11

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1873

Не работает принтер HP DeskJet 845c. Подключается к USB порту, при загрузке системы обнаруживается и устанавливается. При установке предлагается выбрать порт COM1, COM2 или LPT1. Выбираю LPT1 (насколько я знаю, он должен эмулироваться), установка заканчивается, но принтер не пашет. При отправке чего-нибудь на печать, примерно минуту ничего не просходит, а потом выдается ошибка записи в порт LPT1.
Интересная подробность: если вытащить провод из порта и потом воткнуть, то без всяких перезагрузок всплывает окно: "Обнаружено новое устройство DeskJet 845c. Установить?" - таким образом можно установить хоть десять не работающих принтеров.
Я пробовал снести универсальный контроллер и корневой разветвитель USB (VIA Tech xxxx), они после перезагрузки заново поставились, но ситуацию это не исправило: после установки принтера по новой, он так и не заработал.

Ответ

Здравствуйте, Wolf!
Я бы поставил сервис пак от VIA 4.35 и поcмотрел что получилось
www.viahardware.com


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 55

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1875

Хочу выучить ассемблер,подскажите может в инете какие книги
есть (желательно на русском).Заранее спасибо.

Ответ

Здравствуйте, Дима!
http://www.ya.ru/yandsearch?text=%E4%EE%EA%F3%EC%E5%ED%F2%E0%F6%E8%FF+%EF%EE+%E0%F1%F1%E5%EC%E1%EB%E5%F0%F3&rpt=rad


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 56

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1875

Хочу выучить ассемблер,подскажите может в инете какие книги
есть (желательно на русском).Заранее спасибо.

Ответ

Здравствуйте, Дима!
Вы над нами специально издеваетесь???!!!!!!! ;(


Отправил эксперт: Broken Sword (http://www.implozia.ru/imp/music/zemfira-traffic.mp3 - незнаю, зачемто вплел)
Эксперт отправил ответов (всего): 253

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1872

Здавствуйте!
Хочу узнать, где можно скачать CodeView?
Кроме сайта:www.oleg-77.narod.ru/assembler/for assembler.html

Ответ

Здравствуйте, Dmitriy!
А вы пробовали http://www.filesearch.ru/cgi-bin/s?q=codeview&t=f&w=a&x=21&y=17
Отдается с полпинка
Я скоро материться начну по этому поводу!!!
Нам еще одну рассылку нужно открывать, - типа где что найти - почти на 50%_вопросов есть ответы в инете
Ключевые ссылки
www.ya.ru
www.filesearch.ru
www.reliz.ru

Поехали варез

www.nnm.ru
directlinks.ru
www.kpnemo.ru
http://www.filez.com.ua/
http://www.loadown.net/_на момент написания почему-то не работал - вообще всегда был при деле
Ну и конечно почти родная аста_с_ключом full
astalavista.box.sk
www.astalavista.com
e.t.c- кому мало - пишите письма еще скажу


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 57

Экспертная группа: Пользовательская работа с Windows

Вопрос №1877

Доброго времени суток!
У меня возник такой вопрос, при компиляции программы Shell28 возникает ошибка:
keybord.asm(188) Operand types do not match

по этому адресу такая строка:
mov di, Current_dir

пытался разобраться сам, безуспешно.
когда закоментреваю строку, то прога компелиться, но уже переходить по каталогам не может.
заранее извиняюсь если этот вопрос уже был(не нашел).
С уважением krion!

Ответ

Здравствуйте, krion!
попробуй mov di,offset Current_dir.
Ты забыл offset!!! (хотя я незнаю текст программы, но скорее всего так) или если там конкретное значение, то mov di,word ptr Current_dir


Отправил эксперт: Broken Sword (http://www.implozia.ru/imp/music/zemfira-traffic.mp3 - незнаю, зачемто вплел)
Эксперт отправил ответов (всего): 254

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1873

Не работает принтер HP DeskJet 845c. Подключается к USB порту, при загрузке системы обнаруживается и устанавливается. При установке предлагается выбрать порт COM1, COM2 или LPT1. Выбираю LPT1 (насколько я знаю, он должен эмулироваться), установка заканчивается, но принтер не пашет. При отправке чего-нибудь на печать, примерно минуту ничего не просходит, а потом выдается ошибка записи в порт LPT1.
Интересная подробность: если вытащить провод из порта и потом воткнуть, то без всяких перезагрузок всплывает окно: "Обнаружено новое устройство DeskJet 845c. Установить?" - таким образом можно установить хоть десять не работающих принтеров.
Я пробовал снести универсальный контроллер и корневой разветвитель USB (VIA Tech xxxx), они после перезагрузки заново поставились, но ситуацию это не исправило: после установки принтера по новой, он так и не заработал.

Ответ

Здравствуйте, Wolf!
Для подключения устройст через USB нужно установить драйвера именно для USB порта. Посмотри на CD-с драйверами там должна быть директория с названием USB или, что подобное.
После установки в свойствах принтера должен быть указан порт USB именно он!!!
Удачи.


Отправил эксперт: Viktor
Эксперт отправил ответов (всего): 15

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1876

Здрасте
Уже замучился правдо я только начинаю программировать на асме. Я сделал попытку написать crack но что то на получается, увеличивает размер файла в несколько раз хотя надо заменить 1 байт. При дезассемблировании дизассембле выдает такую строку
00486ff1 7507 jne 00486ffa
так вот мне нужно заменить байт 75 на 74
вот текст кряка если не трудно помогите.
assume cs:code, ds:data

data segment
whath db "это crack к программе Kioday! $"
notfound db "файл не найден­ $"
namef "2.exe",'$'
crack db "можите пользоваться $"
crackbyte db 74
stsmesh dw 0048h
mlsmesh dw 6ff1h
nowrite db "не могу записать в файл $"
noukazf db "не могу установить указатель в файле  $"
handle dw ?

data ends

code segment

; выводит строку
begin:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset whath
int 21h
;****************

;открывает файл для чтения записи
mov ax,data
mov ds,ax
mov ax,3d02h
mov dx,offset namef
int 21h
;*********************

jc Error

mov handle,ax
jmp Write

;если файл не найден
Error:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset notfound
int 21h
jmp Exit
;******************

;установка указателя в файле на   00486ff1
Write:
mov ax,data
mov ds,ax
mov bx,handle
mov ah,42h
mov al,01
mov cx,offset stsmesh
mov dx,offset mlsmesh
int 21h
jc Error2
;**************************

;запись в файл байта
mov ax,data
mov ds,ax
mov ah,40h
mov bx,handle
mov cx,01
mov dx,offset crackbyte
int 21h
jc Error3
;***********************

;вывод сообщения что все сделано
mov ah,09h
mov dx,offset crack
int 21h
mov ah,3eh
int 21h
jmp Exit
;***********************

;если не может установить указатель в файле
Error2:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset noukazf
int 21h
mov ah,3eh
int 21h
jmp Exit
;***********************

;если не может записать
Error3:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset nowrite
int 21h
mov ah,3eh
int 21h
jmp Exit
;**********************

;выход
Exit:
mov ax,4c00h
int 21h
;*****************

code ends

stk segment stack
db 256 dup (?)
stk ends

end begin

Ответ

Здравствуйте, Дима! Комментирую:
1. Зачем два раза делать mov ax,data, mov ds,ax ? Лишняя трата электроэнегрии...
2. Я чето не вижу db перед namef и нуля после имени файла... может, ты видишь?
3. После строки code segment должно идти assume cs:code,ds:data, иначе, как ты ее компилил то вообще??? Это ладна, может у тебя компиль какойто суперский, что нам и не снился...
4. Нолик всетаки добавь после "2.exe", ато его чего-то не могут найти... ну я добавил, посмотрим что дальше то будет... да и еще укажи ПОЛНЫЙ ПУТЬ к файлу "с:\...." ато тоже может не найтись
5. ОПЯТЬ mov dx,data!!! ну скока ж можна то!!!!
6. Что я вижу?
mov cx,offset stsmesh
mov dx,offset mlsmesh
!!!!!!!!!!!!!!!!!!!!!!!
ну на кой тебе смещения, объясни???!!! ты ж сам высчитал ЗНАЧЕНИЯ!!! и AL должно равняться 0 (нулю!!!!) - скачем ведь от НАЧАЛА ФАЙЛА, а не с размытой "текущей позиции" Убираем нафиг offset, обнуляем al и смотрим дальше...
7. ЭТО ПРОСТО ИЗДЕВАТЕЛЬСТВО!!!!! опять mov dx,data............... ;(
8. 75 - это 75!!! а нам нада 75h!!!! Прочувствуй разницу! поэтому будь добр, добавь h де нада!!! Лана, смотрим дальше..
9. дальше вроде все правильно...

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


Отправил эксперт: Broken Sword (http://www.implozia.ru/imp/music/zemfira-traffic.mp3 - незнаю, зачемто вплел)
Эксперт отправил ответов (всего): 255

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1877

Доброго времени суток!
У меня возник такой вопрос, при компиляции программы Shell28 возникает ошибка:
keybord.asm(188) Operand types do not match

по этому адресу такая строка:
mov di, Current_dir

пытался разобраться сам, безуспешно.
когда закоментреваю строку, то прога компелиться, но уже переходить по каталогам не может.
заранее извиняюсь если этот вопрос уже был(не нашел).
С уважением krion!

Ответ

Здравствуйте, krion!
Поставь offset.
mov di, offset Current_dir


Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage или что-то типа того :))
Эксперт отправил ответов (всего): 38

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1873

Не работает принтер HP DeskJet 845c. Подключается к USB порту, при загрузке системы обнаруживается и устанавливается. При установке предлагается выбрать порт COM1, COM2 или LPT1. Выбираю LPT1 (насколько я знаю, он должен эмулироваться), установка заканчивается, но принтер не пашет. При отправке чего-нибудь на печать, примерно минуту ничего не просходит, а потом выдается ошибка записи в порт LPT1.
Интересная подробность: если вытащить провод из порта и потом воткнуть, то без всяких перезагрузок всплывает окно: "Обнаружено новое устройство DeskJet 845c. Установить?" - таким образом можно установить хоть десять не работающих принтеров.
Я пробовал снести универсальный контроллер и корневой разветвитель USB (VIA Tech xxxx), они после перезагрузки заново поставились, но ситуацию это не исправило: после установки принтера по новой, он так и не заработал.

Ответ

Здравствуйте, Wolf!
Кратко и понятно, читаем инструкцию в которой сказано, запустите программу устаовки, после того как она установиться на ваш компьютер присоедеите шнур ЮСБ к компьютеру, не в коем случае не пытайтесь устанавливать драйвер ЮСБ устройства при подключенном устройстве. После установки драйвера, компьютер сам найдет его.


Отправил эксперт: AllAddIn
Эксперт отправил ответов (всего): 20

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1868

Всем огр-р-ромный привет!
И за ранее sorьки за оффтопик!
Препод сегодня втирал нам про рекурсии и привел очень интересный пример который я ну не как несмог осмыслить долбался, долбался, долбался, долбался, долбался но всеровно не въехал. Да еше и компилятора для Паскакаля нету, проверить негде:(( Думаю остается последний шанс спросить экспертов:))
Вот эта процедура сможет перевести из 10-чной в 2-ицную систему исчесления (см. ниже):
procedure p (m:word);
begin
if m<>1 then p(m div 2);
write (m mod 2);
end.
Вот я понимаю что эта рекурсия (чоб еЈ...) будет наризать круги, но когда m=1 она выведет только одно число (mod 2). А препод утверждает что она еше вернется на верх и опять вниз и опять выведет еше одно число..., во как!
Буду благодарен за любой ответ...!
P.S. Вал.Ик тебе надо писать хронику рассылки=)
P.S.S. За ранее примного благодарен!

Ответ

Здравствуйте, Alex!
Препод правильно все делает, не надо его обижать, а просто спросить его следует, что будет если мы на вход этой процедуры нолик подадим... А?
(Правильный ответ: переполнение стека любого размера).
Наверное первую строку надо написать так:
if m > 1 then p(m div 2);


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 24

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Управляющий рассылкой,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное