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

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


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

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

Выпуск N 079

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

Дата выхода: 2001-08-31


Вопрос №720

На рефералах, кликах и т.п. Реально заработать???
Вы пробовали??? В России?

Ответ

Уважаемый Дмитрий!
;))))))) - это первая реакция на ваш вопрос.
Главное в этом нехитром вопросе - побольше установите на свой комп прог, выводящих в пол экрана рекламку какой-нить Spedia, еще не забывайте почаще кликать по нужным линкам. Все это обязательно окупиться (я даже видел копию чека, любезно выставленную щасливым обладателем, но у меня вызвало подозрение, что такой же точно чек я уже де-то видел...)


Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 116

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

Вопрос №723

Привет всем!
Уважаемые эксперты и просто подписчики
у меня ужасная связь с интернет ! и я никак
не могу скачать MASM не может ли кто-то
из вас псислать мне его по mail MASM или TASM(желательно)
Пожайлуста, помогите!!!
Заранее благодарен!

Ответ

Здравствуйте, ...!
Ухх..! Не хотелось бы тебя растраивать, но Masm 4 весит 3,5 мега, Tasm 5 - 4 мега..
Хотя если ты хочешь голый файл Tasm + несколько необходимых прог, то получится довольно-таки мало, так что если никто не пришлёт, то пиши, вышлю чо хошь, хоть tasm, хот nasm(кстате самый компактный), хот masm.
Вот те мыло, но руки им не мой, безполезно: orlando@kaluga.ru


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

Экспертная группа: Работа с MASM/TASM

Вопрос №722

Здравствуйте уважаемые эксперты!

У меня такой вопрос.
Только вчера переустановил винду. Сначало все нормально работало. Но сегодня появился такой глюк. Когда я запускаю Internet Explorer, то после закрытия окна само окно закрывается, а задача остается. И когда я запускаю его снова он виснет. С Netscape то же самое. А с Opera такого глюка нет. Раньше у меня уже было такое, помню, что как-то избавился, но не помню как.
Помогите, если кто-то с таким встречался.
Заранее спасибо.
С уважением kit_psihopad.

Ответ

Про такой баг я не слыхал. Но ведь Винда она и в Африке тоже не очень... Я предлагаю юзать оперу. Но сначала попробуй реинсталл винду.


Отправил эксперт: K.A. NiCK (http://www.lightstorment.f2s.com - Lightstorm entertainment home page)
Эксперт отправил ответов (всего): 48

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

Вопрос №720

На рефералах, кликах и т.п. Реально заработать???
Вы пробовали??? В России?

Ответ

А черт его знает. Я не пробовал.


Отправил эксперт: K.A. NiCK (http://www.lightstorment.f2s.com - Lightstorm entertainment home page)
Эксперт отправил ответов (всего): 49

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

Вопрос №723

Привет всем!
Уважаемые эксперты и просто подписчики
у меня ужасная связь с интернет ! и я никак
не могу скачать MASM не может ли кто-то
из вас псислать мне его по mail MASM или TASM(желательно)
Пожайлуста, помогите!!!
Заранее благодарен!

Ответ

Здравствуйте, fp5@brd.zt.ukrtel.net!

Выслал. Лови!


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 37

Экспертная группа: Работа с MASM/TASM

Вопрос №721

Здравствуйте!
У меня к вам есть один вопросик. При запуске отладчика td.exe в среде Windows выдается следующее сообщение и сам отладчик не запускается. Сообщение вот какое:
System: BIOS checksum does not match, please reconfigure
System: BIOS checksum does not match, please reconfigure
System: BIOS checksum does not match, please reconfigure
Error starting protected mode kernel
Что можно сделать?
Спасибо. Денис.

Ответ

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

Ерунда какая-то. Чё-то у тебя с виндой, я думаю. Ибо что нужно TD от BIOS при загрузке я лично не понимаю. Помимо всего прочего процессор при старте виндов уже вогнался в V86, поэтому что значит "Error starting protected mode kernel" непонятно. Попробуй достать другой TD или на крайняк переставить винду.


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 38

Экспертная группа: Работа с MASM/TASM

Вопрос №718

Здраствуйте эксперты!
Помогите заставить эту программу выводить R_Two в обратном порядке. К примеру R_Two будет равняться: 1, 0, 0, а нужно 0, 0, 1!
Зарание благодарен =)

Ответ

Здравствуйте, Александр!

Если правильно понял, что ты хош, лови прогу.

Приложение:


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 39

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

Вопрос №727

Уважаемые эксперты!

Большое спасибо всем ответившим на вопрос 689-690.
Замена mov ax, 3Fh на mov ah, 3Fh помогла радикально! В уроке 009 приведена строка mov ax, 3F00h Чем это лучше? А если - mov ah, 3Fh; mov al, 0?

Однако с выводом содержимого тестируемого файла(y.dat; длина 400 байт, т.е. 5 срок по 80 символов) на экран не получается:сначала выводится примерно около половиины файла, потом появляются символы изсегмента данных у.ехе и после нииих продолжается вывод символов из файла y.dat, но опять с его начала !
В чЈм тут дело? Как правильно объявить Buffer? Я пробовал 4 варианта (см. листиинг) и только <2> что-то выводит. Может быть дело в регистре DS? Достаточно ли одной инициализации mov ax,@data; mov ds,ax в начале программы?

Я заметил, что если строку Buffer db 1024 dup (?) поместить не в конце сегмента данных, то exe-файл увеличивается на 1024 байта, причЈм эти байты - одни точки (по F3 вьюера). А если мне надо объявить, например, 4 буфера по 32 Кб, то получается, что ехе-файл увеличится на 128 Кб бесполезных точек? Как этого избежать?

Вопрос к Broken Sword. Ответ по п. 5 я не понял. Почему должны затереться 8 байт кода и переменная Handle? Мне казалось, что ничего не должно происходить И насчЈт экономии 10 байт тоже не понятно.

Спасибо!



Ответ

Здравствуйте, Vasil!
1.Вообщето можно только в ah номер ф-ции передавать, не трогая al вообще
и так получается на 1 байт и 1 такт для 286 быстрее:)
2. Насчет буферов:
Да, конечно увеличивается размер, куда от этого деться, можно только бороться!(а)Выделяя память динамически, (б) размещая такие буфера в конце, НО! подводный камень для com-файлов:
В коме стек размещается в конце сегмента и растет вниз...И если комфайл почти в лимите 64 к без буфера, то с буфером он (буфер) может наложиться на стек..:(
ЗЫ Тот Справочник, что я предлагал, выложит Dron(c) на своей странице-много желающих
ЗЗЫ К Айкидо я не имею никакого отношения, Sem немнного ошибсмя:(, я просто работал учителем немного, там ник и пристал...



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

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

Вопрос №717

Спасибо, эксперты.

Посмотрел через VC. Точно, сидит в корзине, скрытый.
Как ни удаляй, появляется снова.
Да! Расширение ехе описано с приложением SirC32
MIME: application/x-msdownload
Кнопки Удалить и Изменить недоступны.

В реестре тоже прописан:
HKEY_CLASSES_ROOT
exefile
shell
open
command
"C:\recycled\SirC32.exe" "%1"%*

Антивирусы запускал - не находят.
Вирус похоже отсылает почту, когда соединяюсь с инетом.
Несколько раз перед этим и сегодня получал Returned mail.
Содержания:
...от меня послано туда...
...туда имеет постоянную ошибку...
Сегодняшнее письмо даже имеет строку:
Possible virus,
see http://www.symantec.com/avcenter/venc/data/w32.sircam
.worm@mm.html

Погляжу сегодня - что за сервер этот sircam

С уважением...

Ответ

Здравствуйте, Alex12!
Пиши на deadmor@pisem.net, помогу с антивирусом.


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

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

Вопрос №725

Уважаемые эксперты!

Большое спасибо всем ответившим на вопрос 689-690.
Замена mov ax, 3Fh на mov ah, 3Fh помогла радикально! В уроке 009 приведена строка mov ax, 3F00h Чем это лучше? А если - mov ah, 3Fh; mov al, 0?

Однако с выводом содержимого тестируемого файла(y.dat; длина 400 байт, т.е. 5 срок по 80 символов) на экран не получается:сначала выводится примерно около половиины файла, потом появляются символы изсегмента данных у.ехе и после нииих продолжается вывод символов из файла y.dat, но опять с его начала !
В чЈм тут дело? Как правильно объявить Buffer? Я пробовал 4 варианта (см. листиинг) и только <2> что-то выводит. Может быть дело в регистре DS? Достаточно ли одной инициализации mov ax,@data; mov ds,ax в начале программы?

Я заметил, что если строку Buffer db 1024 dup (?) поместить не в конце сегмента данных, то exe-файл увеличивается на 1024 байта, причЈм эти байты - одни точки (по F3 вьюера). А если мне надо объявить, например, 4 буфера по 32 Кб, то получается, что ехе-файл увеличится на 128 Кб бесполезных точек? Как этого избежать?

Вопрос к Broken Sword. Ответ по п. 5 я не понял. Почему должны затереться 8 байт кода и переменная Handle? Мне казалось, что ничего не должно происходить И насчЈт экономии 10 байт тоже не понятно.

Спасибо!



Ответ

Уважаемый Vasil! Ты конечно извини, но после 10 втыкания в твою прогу я решил написать свою (просто от твоих include, macro и proc рябит в глазах) и получилось вполне невесомое созданье (по сравненью с вашим БТР). Поменяй имя файла на любое другое в текущей директории и вперед!!! Насчет моего предыдущего ответа:
1. Действительно, должна затереться токо переменная Handle (2 байта) и еще 8 байт за ней (не кода, т.к. код в другом сегменте) - это моя (не последняя) ошибка. А почему?, да потому что buffer у тебя аккурат перед этой самой handle и стоит почему-то...
2. Объявления переменных типа buffer db 1000 dup (0) влечет к тому, что размер файла увеличивается на 1000 байт (в данном случае) - это ясно. Но если заменить на buffer db 1000 dup (?), то файл в этом случае НЕ увеличит своего размера, т.е. фактически в процессе трансляции этим 1000 байтам не отводиться места на жестком диске, но при запуске в проге в ОПЕРАТИВНОЙ памяти будут отведены те же 1000 байт как и в предыдущем случае с нулями... в своей проге я использую нули, т.к. в сегменте данных, если файл меньше 4000 байт, может (так оно и будет) оказаться мусор.

Приложение:


Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 117

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

Вопрос №730

Здравствуйте эксперты.
У меня такой вопрос: Как можно искать файлы не только в заданной папке, с помощью ф-ций 4Eh и 4Fh но и например в на диске C со всеми вложенными папками.

Ответ

Здравствуйте, Алексей!
Напрямую никак нельзя. Придется искать каталоги, а потом, зная их имена, искать файлы в них.


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 40

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

Вопрос №729

Уважаемые эксперты!
Большое спасибо всем ответившим на вопрос 689-690.
Замена mov ax, 3Fh на mov ah, 3Fh помогла радикально! В уроке 009 приведена строка mov ax, 3F00h; чем это лучше? А если: mov ah, 3Fh; mov al, 00 ?

Однако с выводом на экран содержимого тестируемого файла (y.dat; длина 400 байт, т.е. 5 строк по 80 символов) не получается: сначала выводится примерно около половины файла правильно, потом появляются символы из сегмента данных y.еxe и после них продолжается вывод символов из файла y.dat, но опять с его начала!

В чЈм тут дело? Как правильно объявить Buffer? Я пробовал 4 варианта (см. прилагаемый листинг) и только <2> выводит "неправильную" строку на экран.

Может быть, дело в значении регистра ds? Достаточно ли одной инициализации ds (mov ax, @data; mov ds, ax) в начале программы?

Я заметил, что если строку Buffer db 1024 dup (?) поместить не в конце сегмента данных, то exe-файл увеличивается на 1024 байта, причЈм эти байты - одни точки (по F3 вьюера). А если мне надо объявить, например, 4 буфера по 32 Кб, то получается, что ехе-файл увеличится на 128 Кб бесполезных точек? Как этого избежать?

Вопрос к Broken Sword. Ответ п.5 я не понял. Почему должны затереться 8 байт кода и переменная Handle? Мне казалось, что ничего не должно происходить. И насчЈт экономии 10 байт тоже не понятно.

Спасибо!

Ответ

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

Энто не есть хорошо. Ты хочешь, чтобы фактически за тебя разобрались в нехилой проге, да еще и исправили. Так не бывает.


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 41

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

Вопрос №732

Уважаемые эксперты!

Большое спасибо всем ответившим на вопрос 689-690.
Замена mov ax, 3Fh на mov ah, 3Fh помогла радикально! В уроке 009 приведена строка mov ax, 3F00h; чем это лучше? А если так: mov ah, 3Fh; mov al, 00 ?

Однако с выводом на экран содержимого тестируемого файла (y.dat; длина 400 байт, т.е. 5 экранных строк по 80 каких-либо символов) не получается: сначала выводится примерно около половины файла правильно, потом появляются символы из сегмента данных y. еxe и после них продолжается вывод символов из файла y.dat, но только опять(!?) с его начала.

В чЈм тут дело? Как правильно объявить Buffer? Я пробовал 4 варианта (см. прилагаемый листинг) и только <2> выводит строку на экран, да и то неправильно.

Может быть, дело в значении регистра ds? Достаточно ли одной инициализации ds (mov ax, @data; mov ds, ax) в начале программы?

Я заметил, что если строку Buffer db 1024 dup (?) поместить не в конце сегмента данных, то exe-файл увеличивается на 1024 байта, причЈм эти байты - одни точки (по F3 - вьюер). А если мне надо объявить, например, 4 буфера по 32 Кб, то получается, что ехе-файл увеличится на 128 Кб бесполезных точек? Как этого избежать?

Вопрос к Broken Sword. Ответ по п. 5 я не понимаю. Почему должны затереться 8 байт кода и переменная Handle? Мне казалось, что ничего такого не должно происходить. И насчЈт экономии 10 байт тоже не понятно.
Прилагаю всю программу целиком: 9 файлов, главный называется "y.asm".

Спасибо!

Ответ

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

Ну что тебе сказать...
мсье тонкий извращенец!

Зачем такое количество инклюдов???
Программа на 3 килобайта и 8 инклюдов?!? неужели непонятно что это только усложняет понимание ее...

Мало того что ты вообще не совсем понимаешь как это все функционирует, так ты еще и усложнил себе процесс.

Теперь ответы на твои вопросы.
Buffer надо указывать именно через db!

Если ты плохо понимаешь как программа разбивается на сегменты, не связывался бы пока с сегментами.. сделай com программу. она не потребует от тебя заботы о регистре ds.

Если ты хочешь буффер на 128 килобайт - то тебе его вообще не надо описывать, ибо он не влезет в сегмент. Используй досовые функции выделения памяти... только не надо спрашивать почему память не выделяется!

И оформи программу почеловечески...
Убери инклюды, убери макросы, убери процедуры из двух команд!
Тогда и присылай с вопросами. в этом я разобраться не хочу.

Умеют же люди усложнять себе жизнь...


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 90

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

Вопрос №735

Я ЛАМО Что мнЕ делААААть??????????

Ответ

Мдя.... ПОВЕСИТЬСЯ!!!!! Или хотяб задавать НОРМАЛЬНЫЕ вопросы.


Отправил эксперт: K.A. NiCK (http://www.lightstorment.f2s.com - Lightstorm entertainment home page)
Эксперт отправил ответов (всего): 50

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

Вопрос №734

Я ЛАМО Что мнЕ делААААть??????????

Ответ

Здравствуйте, Wasea!
Лечись, пока не поздно! И качай выпуски рассылки из раздела для начинающих.


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

Экспертная группа: Дизассемблеры

Вопрос №733

Привет коллеги!
Вопрос по Exsel
Есть два документа
Слышал, но не знаю как, что
Можно сравнить эти документы по столбцу А и ести ячейки в столбце А совпадают, то обновить соответствующие строки из второго документа
Для примера-обновление цен на комплектующие

Ответ

Здравствуйте, Sensey!
Похоже, ты попал на VB for Applications. Пиши макрос, который эти столбцы сравнит и обновит. Если знаешь VB, то после нескольких часов мучений и дней осознания хелпа по работе функций Excel-евского VBA есть шанс написать сравнение столбцов. С обновлением - незнаю.
Кстати, в последних выпусках "Мира ПК" есть довольно занятные уроки главредактора, который решил учить пользователей программированию и начал с VBA.


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

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

Вопрос №735

Я ЛАМО Что мнЕ делААААть??????????

Ответ

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

Учиться, учиться и ещё раз учиться!
(c) Владимир Ильич Ульянов aka Ленин


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

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

Вопрос №726

Уважаемые эксперты!

Большое спасибо всем ответившим на вопрос 689-690.
Замена mov ax, 3Fh на mov ah, 3Fh помогла радикально! В уроке 009 приведена строка mov ax, 3F00h Чем это лучше? А если - mov ah, 3Fh; mov al, 0?

Однако с выводом содержимого тестируемого файла(y.dat; длина 400 байт, т.е. 5 срок по 80 символов) на экран не получается:сначала выводится примерно около половиины файла, потом появляются символы изсегмента данных у.ехе и после нииих продолжается вывод символов из файла y.dat, но опять с его начала !
В чЈм тут дело? Как правильно объявить Buffer? Я пробовал 4 варианта (см. листиинг) и только <2> что-то выводит. Может быть дело в регистре DS? Достаточно ли одной инициализации mov ax,@data; mov ds,ax в начале программы?

Я заметил, что если строку Buffer db 1024 dup (?) поместить не в конце сегмента данных, то exe-файл увеличивается на 1024 байта, причЈм эти байты - одни точки (по F3 вьюера). А если мне надо объявить, например, 4 буфера по 32 Кб, то получается, что ехе-файл увеличится на 128 Кб бесполезных точек? Как этого избежать?

Вопрос к Broken Sword. Ответ по п. 5 я не понял. Почему должны затереться 8 байт кода и переменная Handle? Мне казалось, что ничего не должно происходить И насчЈт экономии 10 байт тоже не понятно.

Спасибо!



Ответ

Здравствуйте, Vasil!
Вот тебе, обещанная прога, конечно она неудачна в том плане, что для каждого символ надо использовать int 21, но в замен не надо выделять лишнюю память на буфер, так что пожертвовать чем-то тоже пришлось..
Если будут вопросы, обращайся..

Приложение:


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

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

Вопрос №735

Я ЛАМО Что мнЕ делААААть??????????

Ответ

Здравствуйте, Wasea!
Учи язык ЛМД


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

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

Вопрос №736

Экспертам.
Изучаю ассемблер только месяц и возник такой
небольшой вопросик.
Сделал рисунок. Затем захотел переместить его в центр.
Пришлось увеличивать координаты. Напр:

было
mov cx,3

после каждой подобной координаты добавил
add cx,number

Был ли более экономный способ?
Можно ли эти две команды записать одной строкой?

С уважением ...

Ответ

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

Через макрос:

coord MACRO arg1, arg2
mov cx, arg1
add cx, arg2
coord ENDM

А в программе вместо
mov cx, ???
add cx, ***
использовать:
coord ???, *** (например, coord 3, number)


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 43

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

Подписаться на рассылки

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

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

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

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


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

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


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

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


Ведущий рассылки,

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

______________

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

  1. Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
  2. Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
  3. Издание книги (спонсорство): Sponsor@Kalashnikoff.ru

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


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


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

В избранное