Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 650
от 14.10.2003, 03:10
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 4309 Отправлено ответов: 12534 Активность: 290.8 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.88 URL: Программирование [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 140.17 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.06 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 122.07 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 112.83 [Подробней >>] |
Shef Статус: Начальный Общий рейтинг: 103.73 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 123.75 URL: Эхоконференция по вирмейкингу Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 106.73 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 110.93 [Подробней >>] |
dr_dolphin Статус: Начальный Общий рейтинг: 120.58 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 4285. Здравствуйте, Bob Johnson!! Это снова я, как-то у вас спрашивал, как делать инсталлятор. Я его та... (ответов: 1)
Вопрос № 4286. Приветствую! Есть такая задача, вводятся две строки буфер1 и буфер2. В буфер1 находится только одно ... (ответов: 2)
Вопрос № 4287. Доброго времени суток уважаемые эксперты Мдя по существу на вопрос не кто не ответил.... Задаю его ... (ответов: 1)
Вопрос № 4290. Вывод данных в видеобуфер консольной программы из своей программы под Windows. Если можна примерчики... (ответов: 2)
Вопрос № 4291. физкульт привет господа ассемблерщики)) у меня вот такой вопрос возник: при попытке сассемблировать ... (ответов: 5)
Вопрос № 4292. Здравствуйте, уважаемые господа эксперты. Не подскажет ли кто (на примере) как переключать обработчи... (ответов: 2)
Вопрос № 4293. Скажите ,пожалуйста , где мне найти файл 004.html для продолжения изучения ассемблера?... (ответов: 2)
Вопрос № 4294. Как-то проскакивала инфоормация, что от Intel можно получить CD с manual. Излазил весь их сайт, ниче... (ответов: 3)
Вопрос № 4295. Уважаемый эксперт _vt. Не то чтоб я не доверял господину Брауну но неужели описание типа " MS M... (ответов: 2)
Вопрос № 4296. УВажаемый, Евгений Иванов. Спасибо за ваш ответ. Но у меня появился ещё вопрос. В конце Вашего ответ... (ответов: 1)
Вопрос № 4297. Драсте! У меня вопрос по поводу Win, где можно найти значение (код) сообщений (т.е. например что WM_... (ответов: 5)
Вопросов: 11, ответов: 26
Вопрос № 4285 |
Здравствуйте, Bob Johnson!!
Это снова я, как-то у вас спрашивал, как делать инсталлятор.
Я его так и не сделал, забросил это дело - лень было, да и в PE-формат не очень въезжаю. Вот.
Так вот, недавно от балды что-то пробовал сделать:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
invoke FindResource,hInstance,RD_MGS,RT_RCDATA
invoke LoadResource,hInstance,eax
mov TVar,eax
invoke CreateFile,offset MsgB,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,NULL
mov fHandle,eax
invoke WriteFile,fHandle,TVar,sizeof TVar,ADDR SizeReadWrite,NULL
invoke CloseHandle,fHandle
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Это я просто хотел вытащить файл из ресурсов и сохранить на диск. В общем, это не работает, поэтому хотел вас попросить, чтобы вы выслали кусок кода, который достаёт файл из ресурсов и сохраняет его на диск. За это я вам буду очень благодарен. "Зачем мне твоя благодарность?" может, ответите вы. Ну, так Благо дарить вам буду, на ментальном уровне. Посмотрите, как у вас будут дела идти в ближайший месяц, если хорошо значит ваш ответ меня устроил :).
Большое спасибо (почему-то почти каждый раз как пишу "спасибо" забываю написать букву "а" (с первого раза)).
С уважением,
Drahus.
Вопрос отправлен: 08.10.2003, 19:28
Отправитель: Drahus (Drahus@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Приветствую Вас, Drahus!
Тебе не хватает вызова функций GlobalLock и GlobalUnlock, т.к. LoadResource возвращает не указать на память, а хэндл.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.10.2003, 01:21
Отправитель: Bob Johnson
Вопрос № 4286 |
Приветствую!
Есть такая задача, вводятся две строки буфер1 и буфер2.
В буфер1 находится только одно слово, нужно сравнить это слово с каждым словом из буфер2 и вывести на экран те слова, которые отличаются не больше чем на 2 символа и размер одинаковый.
В Асме новичек. Помогите разобраться в следующих вопросах:
1)Как считать в ТемпБуфер слово из буфер2 до пробела?
2)Есть ли функция сравнений длин строк?
3)Как организовать посимвольное сравнение слова в буфер1 со словом из ТемпБуфера?
Очень прошу помочь... завтра сдавать...
Спасибо заранее за любую помощь!
Вопрос отправлен: 08.10.2003, 20:22
Отправитель: Игорь (technos@takas.lt)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, Игорь!
1. Посимвольно, до тех пор пока не встретишь пробел (или конец строки):
m1:
mov al, [esi]
cmp al, ' '
jz Found_Space
test al, al
jz String_End
mov [edi], al
inc esi
inc edi
jmp m1
2. Есть функция вычисления длины строки: lstrlen. Сравнишь сам с помощью cmp.
3. Так же:
mov al, [esi]
cmp al, [edi]
jnz Not_Equal
inc esi
inc edi
...
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.10.2003, 01:22
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Здравствуйте, Игорь!
1.
mov edi, ofs tmp
mov esi, ofs buf2
m1:
mov al, [esi]
or al, al
jz end
cmp al, 32
jz m2
inc esi
stosb
jmp m1
m2:
end:
2.
call getstrlen, ofs tmp
xchg ebx, eax
call getstrlen, ofs buf2
cmp eax, ebx
jz equal
notequal:
;...
equal:
3.
mov esi, ofs buf1
mov edi, ofs tmp
m5:
mov al, [esi]
or al, al
jz m7
cmp al, [edi]
jnz noequal_0
inc edi
inc esi
jmp m5
m7:
cmp al, [edi]
jnz noequal_0
equal_0
;...
noequal_0:
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 09.10.2003, 10:54
Отправитель: Евгений Иванов
Вопрос № 4287 |
Доброго времени суток уважаемые эксперты
Мдя по существу на вопрос не кто не ответил....
Задаю его ещё раз......только на этот раз с пояснением
я вот например програмировал на дельфи там было проще - существовали стандартные компоненты.....тут же сложнее......потому и задал вопрос.....
Я понимаю что нужны API функции... но не ужели так трудно сказать какие?
И ещё а как тогда осуществляются комуникации в DOSе?
Я просто хочу узнать а как осуществляються комуникации на мащинном уровне....например если у на с не виндовс и дос.....а скажем своя операционка.....и вобще реально ли это?
С уважением Same
Вопрос отправлен: 08.10.2003, 20:41
Отправитель: Same
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, Same!
Через те же прерывания.
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 09.10.2003, 10:54
Отправитель: Евгений Иванов
Вопрос № 4290 |
Вывод данных в видеобуфер консольной программы из своей программы под Windows. Если можна примерчики.
Вопрос отправлен: 09.10.2003, 04:38
Отправитель: new2 (Lameer@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, new2!
AllocConsole. Остальные функции найдешь по See Also.
Обычно выводят WriteFile (WriteConsole). Можно копировать сразу блоками.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.10.2003, 01:23
Отправитель: Bob Johnson
Отвечает vitya
Добрый день, new2!
в видеобуффер писать не удастся. зато можно просто писать туда текст в помощью функций WriteConsole... семейство.
Ответ отправлен: 09.10.2003, 08:20
Отправитель: vitya
Вопрос № 4291 |
физкульт привет господа ассемблерщики))
у меня вот такой вопрос возник:
при попытке сассемблировать ком файл тасм пишет:
"Fatal: Cannot generate COM file : data below initial CS:IP defined", подскажите пожалуйста что это значит, и чтоб я впредб не лез с дурацкими вопросами подскажите где можно найти справочник по ответам тасма, масма, и справочник по прерываниям
Вопрос отправлен: 09.10.2003, 10:19
Отправитель: начинающий кодер
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, начинающий кодер!
Скорее всего в начале программы нет строки
org 100h
*** E-Man - we are waiting for you ***
Ответ отправлен: 09.10.2003, 22:02
Отправитель: _vt
Отвечает ASMодей
Доброе время суток, начинающий кодер!
Такое сообщение выдается, когда при создании COM-файла точка входа в программу,
указанная директивой END, находится не по смещению 100h.
Ответ отправлен: 11.10.2003, 13:12
Отправитель: ASMодей
Отвечает Shef
Приветствую Вас, начинающий кодер!
Скорее всего, в начале исходника объявлены переменные...
Все данные лучше засовывать в конец файла, после команд завершения программы.
А так без кода сказать сходу сложно.
Ответ отправлен: 10.10.2003, 10:42
Отправитель: Shef
Отвечает Евгений Иванов
Приветствую Вас, начинающий кодер!
Это пишет связной, а не Ассемблер!
данные располагаются по адресу менее 256.
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 09.10.2003, 11:21
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Добрый день, начинающий кодер!
Com файл должен начинаться со 100h. В этом месте у него и должна быть entry point. Перед ней не может быть определено ни данных, ни какого-либо другого кода.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.10.2003, 01:24
Отправитель: Bob Johnson
Вопрос № 4292 |
Здравствуйте, уважаемые господа эксперты. Не подскажет ли кто (на примере) как переключать обработчики событий мыши
функцией 014h 33h-го прерывания?
Вопрос отправлен: 09.10.2003, 19:48
Отправитель: Мирослав Махрук
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Приветствую Вас, Мирослав Махрук!
Только что полистал Ральфа Брауна - всё очень подробно описано... В чём проблемы-то?? Обращайся конкретнее, не кидать же кБайты описания и не придумывать же за тебя код...
*** E-Man - we are waiting for you ***
Ответ отправлен: 09.10.2003, 23:20
Отправитель: _vt
Отвечает Евгений Иванов
Приветствую Вас, Мирослав Махрук!
Вот из игры Калах в моей программе:
sub ax,ax ;Установка мышки,если нет её,то свой "обработчик"
int 51
or ax,ax
jnz yes_mouse
push es ;Сохраним прежний обработчик мышки
mov ax,3533h
int 33
mov wptr [OLD_INT33],bx
mov wptr [OLD_INT33+2],es
pop es
mov ax,2533h
mov dx,ofs int51entry
int 33
or bptr [bp+FL_1-dat],m mouse
jmp no_mouse
yes_mouse:
mov ax,0Ch ;Подпрограмма событий всех
mov cx,1Fh
mov dx,ofs mou_sub
int 51
mov ax,7 ;Область доступности хождения
sub cx,cx
mov dx,Xmax-3
int 51
mov ax,8
sub cx,cx
mov dx,Ymax-3
int 51
proc mou_sub far ;==================================================
or bptr [cs:fUpr],m MoveMou
cmp dx,PauseY
ja mou_1
cmp cx,PauseX
jc mou_1
mov wptr [cs:fPause],0
retf
mou_1:
mov ax,wptr [cs:dPause]
mov wptr [cs:fPause],ax
retf
endp
no_mouse:
Наталье привет!
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 10.10.2003, 00:11
Отправитель: Евгений Иванов
Вопрос № 4293 |
Скажите ,пожалуйста , где мне найти файл 004.html для продолжения изучения ассемблера?
Вопрос отправлен: 09.10.2003, 22:28
Отправитель: Виталик
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Здравствуйте, Виталик!
Скачай архив всех выпусков рассылки по DOS c сайта Олега Калашникова - www.kalashnikoff.ru...
*** E-Man - we are waiting for you ***
Ответ отправлен: 09.10.2003, 23:20
Отправитель: _vt
Отвечает Maverick
Здравствуйте, Виталик!
Создай его, блин >:(((
Во Front Page....
Такой короткий вопрос и такой поразительно тупой.
На субскрайбе, там есть архив всей рассылки.
В интеренете, можно ведь найти.
У Боба на страничке есть.
Если лень искать, то хотя бы мыло оставил, я б тебе выслал и 4 и 34....
Извини, конечно, за "наезд", но как ты будешь изучать ассемблер, если в таких вещах глючишь.
И еще в догонку, что ты подразумеваешь под 004.html???
Я то догадался, а вот другие? У меня на винчестере 53 файла с таким названием, специально для тебя искал :) Все слать?
Ответ отправлен: 10.10.2003, 11:44
Отправитель: Maverick
Вопрос № 4294 |
Как-то проскакивала инфоормация, что от Intel можно получить CD с manual. Излазил весь их сайт, ничего не нашёл, скажите поконкретней, хотя бы в каком разделе находится.
Вопрос отправлен: 10.10.2003, 00:11
Отправитель: darknez
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Здравствуйте, darknez!
Ну, во-первых, не CD, а книги. Они рассылаются Intelом бесплатно. ищи на developer.intel.com
А CD можно заказать в AMD ;-) Только для этого по телефону к ним звонить надо для подтверждения заказа... :-(
Ответ отправлен: 10.10.2003, 12:09
Отправитель: Gibbel
Отвечает Maverick
Здравствуйте, darknez!
CD незнаю, не слушал. А вот книги можно. Я не помню точный адрес, но буквально пару рассылок назад он был. Погляди в базе.
Ответ отправлен: 10.10.2003, 11:44
Отправитель: Maverick
Отвечает Евгений Иванов
Здравствуйте, darknez!
Я уже получил эти четыре замечательные книги и сейчас наслаждаюсь их чтением!
Просто бесподобно написано!
Смотри мой дневник на моём сайте за 21.7.2003
Там есть ссылка!
Хотя не буду вредничать - вот она:
http://developer.intel.com/design/pentium4/manuals/
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 10.10.2003, 01:04
Отправитель: Евгений Иванов
Вопрос № 4295 |
Уважаемый эксперт _vt. Не то чтоб я не доверял господину Брауну но неужели описание типа
"
MS MOUSE v3.0+ - EXCHANGE INTERRUPT SUBROUTINES
AX = 0014h
CX = call mask (see #03171)
ES:DX -> FAR routine
Return:CX = call mask of previous interrupt routine
ES:DX = FAR address of previous interrupt routine
"
вы называете понятным?
это описание функции из "Списка Прерываний Ральфа Брауна" взятое на сайте http://www.ctyme.com зайдите и у бедитесь сами.
а код за меня писать не нужно, но спасибо за заботу.
Вопрос отправлен: 10.10.2003, 00:26
Отправитель: Мирослав Махрук
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Доброе время суток, Мирослав Махрук!
Помимо Interrupt List неплохо иметь и альтернативные источники информации,
например тот же XVIEW, где и написано то, что я привел в приложении.
Приложение:
Ответ отправлен: 11.10.2003, 13:14
Отправитель: ASMодей
Отвечает _vt
Здравствуйте, Мирослав Махрук!
Может ответ мой показался слишком резким, тогда извините...
> зайдите и убедитесь сами
Перед тем как ответить я прочитал это описание, у меня оно есть...
Я из следующего получил следующую информацию:
При вызове функции 14h мышиного прерывания следует указать в ES:DX адрес обработчика (причем он должен быть дальнего вызова) для события(событий), указанных в маске, которая лежит в CX... Формат маски описывается в таблице 3171, посмотрев которую, я вижу какой надо установить бит для нужного мне события от мыши (mousemove, leftclick, rightclick и др.). На выходе из прерывания можно "забрать" адрес и маску предыдущего обработчика событий... Что же вам собственно не ясно?
*** E-Man - we are waiting for you ***
Ответ отправлен: 10.10.2003, 01:17
Отправитель: _vt
Вопрос № 4296 |
УВажаемый, Евгений Иванов. Спасибо за ваш ответ. Но у меня появился ещё вопрос. В конце Вашего ответа есть приписка "Привет Наталье". Я знаком с девушкой по имени Наталья и соответственно вопрос - Вы знаете меня? Или это какая-то другая Наталья и это просто совпадение?
Вопрос отправлен: 10.10.2003, 00:35
Отправитель: Мирослав Махрук
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Доброе ночное время суток, Мирослав.
Вас я не знаю, но интересно, кто Вы и чем занимаетесь?
Зачем Вам мышь?
Можно Ваш e-Mail?
Вообще проще через порты мышь "брать" :-)
А это функция - она всё таки 20-я - позволяет установить свой обработчик для обработки событий мыши.
В CX - флаги событий.
И при совпадении этих событий будет вызываться ваша подпрограмма - она дальняя...
Наталья тоже недавно начала читать нашу рассылку, и она мне очень дорога как человек и как девушка, поэтому я решил поднять ей настроение (через 4 дня :-)... Прям машина времени! :)
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 10.10.2003, 01:19
Отправитель: Евгений Иванов
Вопрос № 4297 |
Драсте!
У меня вопрос по поводу Win, где можно найти значение (код) сообщений (т.е. например что WM_SETTEXT имеет значение 111h), есть какой либо help по этому поводу. Вообщем где взять инфы.
Заранее спасибо.
PS: По поводу Вопроса № 4275, прошу пращения у _vt и ASMодей, дело в том что у Зубкова написано что FS появился у 80286 (может опечатка), а самому мне както не приходилось им пользоваться.
Вопрос отправлен: 10.10.2003, 03:03
Отправитель: паша
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Приветствую Вас, паша!
http://learnasm.narod.ru/download/windef.rar
Ответ отправлен: 10.10.2003, 17:25
Отправитель: Dark_Lord
Отвечает Евгений Иванов
Доброе время суток, паша!
Все значения постоянных хранятся во включаемых файлах *.h
В Ассемблере обычно *.inc
Все эти файлы хранятся в каталоге INCLUDE.
Насчёт FS - а чего там! Обычный сегментный регистр - бери и используй!
Я вот создавал программы для ДОС-а - так его использовал для доступа к ещё одному нужному мне сегменту данных. Дольше конечно это выполняется, но я ещё тогда мало понимал - зелёный был: надо смотреть по алгоритму, где что лучше применять...
Удачи!
* EMan1.5: ---===*** Love is real! ***===---
Ответ отправлен: 10.10.2003, 09:55
Отправитель: Евгений Иванов
Отвечает dr_dolphin
Приветствую Вас, паша!
В MS Visual Studio заголовочный файл winuser.h
Пока !
Ответ отправлен: 10.10.2003, 10:22
Отправитель: dr_dolphin
Отвечает _vt
Добрый день, паша!
Как это где? В сишных хэдерах... Берешь Visual C++ или Borland C++Builder и смотришь в *.h-файлах нужные значения... Если тебе нужно для перевода на язык ассемблера - готовые *.inc-файлы есть в пакете MASM32 и в Borland CBuilder( некоторые и с ошибками:( )...
*** E-Man - we are waiting for you ***
Ответ отправлен: 10.10.2003, 04:03
Отправитель: _vt
Отвечает Bob Johnson
Приветствую Вас, паша!
Это есть в h файлах от MS Visual C++ или Borland C++ Builder.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.10.2003, 01:24
Отправитель: Bob Johnson
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (31) C / C++ (30) Perl (8) Builder / Delphi (24) Pascal (24) Basic / VBA (9) Java / JavaScript (8) PHP (12) Криптография (9) WinAPI (15) |
Пользователю Windows 95/98/Me (54) Windows NT/2000/XP (60) "Железо" (39) Поиск информации (29) |
Администратору Windows NT/2000/XP (35) Linux / Unix (16) |
Юристу Гражданское право (12) Семейное право (9) Трудовое право (9) КоАП (9) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||