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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 714
от 23.04.2004, 14:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 5177
Отправлено ответов: 14263
Активность: 275.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

_vt
Статус: Профессиональный
Общий рейтинг: 117.88
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 133.61
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Acid Burn
Статус: Доверительный
Общий рейтинг: 144.89
[Подробней >>]
 
flasher
Статус: Начальный
Общий рейтинг: 113.63
[Подробней >>]
Pawel
Статус: Профессиональный
Общий рейтинг: 158.46
[Подробней >>]
Foamplast
Статус: Профессиональный
Общий рейтинг: 150
URL: мой личный сайт
[Подробней >>]
 
SedHg
Статус: Опытный
Общий рейтинг: 112.13
[Подробней >>]
VOVAN
Статус: Опытный
Общий рейтинг: 105.38
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 106.05
URL: Мой сайтик...
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 116.61
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 5155. не линкуется текст---------> ; Startup for W9X ring0.c ; by Andrew Basharimov (2:454/2.175@fido) .58... (ответов: 6)
Вопрос № 5156. Уважаемые специалисты . Например , есть программка prog01.asm ( Kalashnikoff.ru ) как запустить е... (ответов: 6)
Вопрос № 5157. Здравствуйте уважаемые эксперты! У меня на работе на машине (Windows 98) установлено два сетевых под... (ответов: 1)
Вопрос № 5158. Привет народ! Я тут нашел неплохой проект под названием Menuet OS (полностью на asm'e и помещаеться ... (ответов: 2)
Вопрос № 5159. Здравствуйте! Извините за офтопик. Как-то вы сказали что ваша специализация вирусы и программы для к... (ответов: 1)
Вопрос № 5160. Здравствуйте! Столкнулся с проблемой написания трансляторов. Не могу понять алгоритм восходящего мет... (ответов: 3)
Вопрос № 5161. Здравствуйте! Пишу курсовую на тему транспортные задачи и задачи о кротчайшем пути. Не знаете где мо... (ответов: 1)
Вопрос № 5163. Как мне установить прерывание на клавиатуру, заменив стандартное, которое при каждом нажатии издавал... (ответов: 5)

Вопросов: 8, ответов: 25


 Вопрос № 5155

не линкуется текст--------->
; Startup for W9X ring0.c
; by Andrew Basharimov (2:454/2.175@fido)
.586p
.model flat, stdcall
.code
extern main:near32 ;@0=number of bytes pushed on the stack
;on main() entry
start_here:
jmp main ;for kill all "safe" C-starup code
end start_here
-------------
линк говорит err 2001 unresolved external __start_here
Что делать?



Вопрос отправлен: 16.04.2004, 12:55
Отправитель: igor_m

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Здравствуйте, igor_m!
А с чем ты хочешь это слинковать?
E-Man : Life begins at 1000Mhz!


Ответ отправлен: 17.04.2004, 15:38
Отправитель: _vt


Отвечает Евгений Иванов

Здравствуйте, igor_m!
Применяй правильные имена, по языку.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 17.04.2004, 14:03
Отправитель: Евгений Иванов


Отвечает Acid Burn

Доброе время суток, igor_m!
Возможно неправельно указан "Джамп"


Ответ отправлен: 17.04.2004, 22:13
Отправитель: Acid Burn


Отвечает flasher

Доброе время суток, igor_m!
Каким Вы компилятором пользуйтесь?
Я на masm32 v8 с первого раза скомпилил.

Ответ отправлен: 16.04.2004, 15:44
Отправитель: flasher


Отвечает Pawel

Доброе время суток, igor_m!
Какой компилятор???
Какая ошибка???

Ответ отправлен: 17.04.2004, 18:15
Отправитель: Pawel


Отвечает Foamplast

Здравствуйте, igor_m!
А этот текст не с программой ли на С линкуется? Тогда необходимо start_here переименовать в __start_here.


Ответ отправлен: 19.04.2004, 08:37
Отправитель: Foamplast


 Вопрос № 5156


Уважаемые специалисты .
Например , есть программка prog01.asm ( Kalashnikoff.ru )
как запустить ее в работу ?
Т.е. у меня установлен MASM6.11 , когда пишу в командной
строке MS-DOS :
С:WINDOWS>ML.EXE prog01.asm/AT и нажимаю Enter
окно появляется и быстро исчезает при этом ничего больше не
происходит .
Напишите , пожалуйста , подробный порядок действий при ассемблировании и что я должен увидеть, что я сделал не правильно .
С уважением , Виталий .



Вопрос отправлен: 17.04.2004, 11:03
Отправитель: Виталий (gorodko_electro@hotmail.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает Acid Burn

Добрый день, Виталий!
Во первых МАСМ это не компилятор, а транслятор и нечего кроме пары строк непонятного текста и списка возможных ошибок ты не увидишь! Если список ошибок отсутсвует, то считай, что тебе повезло! Компилируй свой проект "LINK [имя твоего проекта]"! После чего в той директории где лежал проект или в дирректори с ассемблером должен появилься ЕКЗЕШНИК! Вот его и надо запускать!!!!
А вообще лучше сначала узнай на каком из АСМОВ написан пример!!!
Я тебе советовал бы пользаваться ТАСМОМ


Ответ отправлен: 17.04.2004, 22:20
Отправитель: Acid Burn


Отвечает SedHg

Добрый день, Виталий!
Ну, во-первых, действительно ли ml.exe находится в папке Windows? Во-вторых, твой исходник находится в одной папке с ml.exe, т.е. в Windows? А в третьих, зачем тебе запускать ассемблер из под DOS'a, можно ведь из Окошек, посредством файл менеджера (Windows Commaner).
А порядок действия более чем подробно описан в архиве рассылки "Ассемблер - это просто...". Если возникнут еще вопросы, пиши.
Ну, и на последок, "С:WINDOWS", не хватает "", после двоеточия.

Ответ отправлен: 17.04.2004, 15:28
Отправитель: SedHg


Отвечает Pawel

Доброе время суток, Виталий!
Во первых, не С:WINDOWS... а С:WINDOWS
Во вторых, там же есть Win интерфейс.

Ответ отправлен: 17.04.2004, 18:25
Отправитель: Pawel


Отвечает VOVAN

Приветствую Вас, Виталий!
во-первых, скопируй исход. в папку с масмом. возьми Far Manager , зайди в папку с масмом и исходом. напиши ML.EXE prog01.asm/AT и если не будет ошибок - в папке создастся скомпиленный файл.

Ответ отправлен: 18.04.2004, 15:12
Отправитель: VOVAN


Отвечает Евгений Иванов

Доброе время суток, Виталий!
1. Пользуйся FAR и работай в нём - и всё будет путём!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 19.04.2004, 12:10
Отправитель: Евгений Иванов


Отвечает _vt

Доброе время суток, Виталий!
Скачай книгу Олега Калашникова целиком и читай.
E-Man : Life begins at 1000Mhz!


Ответ отправлен: 20.04.2004, 17:59
Отправитель: _vt


 Вопрос № 5157

Здравствуйте уважаемые эксперты!
У меня на работе на машине (Windows 98) установлено два сетевых подключения: одно по локальной сети, другое - соединение с Internet через модем (с именем входа "KKK" и паролем). В сетевом окружении определено имя компьютера "QQQ". Моя задача состоит в том, чтобы определить имена подключений и СООТВЕТСТВУЮЩИЕ им IP-адреса протокола TCP-IP (каждому, естественно, свой). Честно могу сказать, не знаю как этого добиться.
Как пробовал:
Есть такая функция "gethostname", она возвращает имя хоста (компа), используя которое можно получить информацию о хосте с помощью функции "gethostbyname". Последняя в структуре "hostent" сообщает инфу о компе. Так вот, функция "gethostname" сообщает имя "KKK", а по логике должна "QQQ". Хотя, ради правды, стоит заметить, что функция "gethostbyname" по имени "KKK" заполняет структуру "hostent", при этом первым IP-адресом в поле hostent.h_addr_list стоит адрес из локальной сети, а вторым (при наличии активного подключения к Internet) - адрес, выделенный сервером провайдера. Команда "ping" воспринимает эти оба имени одинаково, успешно определяя первый адрес (из локальной сети) при первом и втором имени, и успешно проводя обмен пакетами.
Извините за длинный вопрос, спасибо за ответ.



Вопрос отправлен: 17.04.2004, 22:22
Отправитель: Коля

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Приветствую Вас, Коля!
Дело в том, что Вы используете функции Windows Sokets, которые предназначены для связи приложений. А сетевыми
подключениями занимается Служба Удалённого Доступа (RAS).
Для решения поставленной задачи Вам необходимо вызвать функцию RasEnumConnections(). Эта функция перечисляет сетевые подключения. Её параметрами (3 штуки) являются указатель на буфер для массива структур RASCONN, указатель на переменную, содержащую размер буфера на входе и требуемый размер на выходе из функции; последний параметр - указатель на переменную, получающую на выходе количество записанных структур (т.е. количество сетевых подключений).
В структуре RASCONN есть член hrasconn, это хэндл (handle) соответствующего сетевого подключения. Зная его, можно вызвать функцию RasGetProjectionInfo(), параметрами которой (всего 4 параметра) являются: хэндл сетевого подключения (он уже известен из предыдущего вызова), константа, указывающая на интересующий протокол, указатель на буфер и, последний параметр - указатель на переменную, содержащую на входе размер буфера, а на выходе количество байт, необходимых для записи информации.
Если данное подключение не использует указанный протокол, то возвращается ERROR_PROTOCOL_NOT_CONFIGURED. Для протокола IP (константа RASP_PppIp) записывается структура RASPPPIP, в которой есть член szIpAddress. Что и требовалось.
В общем, сначала вызвать RasEnumConnections(), а затем для каждого соединения RasGetProjectionInfo().


Ответ отправлен: 19.04.2004, 08:37
Отправитель: Foamplast


 Вопрос № 5158

Привет народ!
Я тут нашел неплохой проект под названием Menuet OS (полностью на asm'e и помещаеться на дискету), хотелось бы знать ваше мнение о нем.
http://www.menuet.narod.ru/
http://menuetos.org/



Вопрос отправлен: 18.04.2004, 01:19
Отправитель: Cas (cas@mail333.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Доброе время суток, Cas!
давно уже видел и запускал (полгода назад).
забавный проект. но только академический интерес.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 19.04.2004, 12:11
Отправитель: Евгений Иванов


Отвечает Pawel

Здравствуйте, Cas!
Он давно уже есть!
Интереснуй проэкт, особенно тем, что пишется на FASM.

Ответ отправлен: 19.04.2004, 18:39
Отправитель: Pawel


 Вопрос № 5159

Здравствуйте!
Извините за офтопик.
Как-то вы сказали что ваша специализация вирусы и программы для командной строки. Последние это я так понимаю батники. Поэтому у меня будет к вам просьба. Не могу сделать лабу. Проблема моя заключается просто в незнании комманд. Задание такое:
создать вложенный командный файл, выполняющий следующие функции, предварительно создав рабочий каталог и скопировав в него 10-15 текстовых файлов:
· Рассортировать файлы из рабочего каталога по именам в подкаталоги, наименования которым выдавать по начальной букве перемещаемых в него файлов (подкаталоги создавать только для имеющихся букв имен файлов);
· В тех каталогах, где присутствует более одного файла произвести построчное сравнение файлов (fact.exe). Результаты сравнения записать в специальный файл в рабочем каталоге;
Если можете помогите, пожалуйста!
Спасибо!



Вопрос отправлен: 18.04.2004, 14:36
Отправитель: Alex

[Следующий вопрос >>] [Список вопросов]

Отвечает Acid Burn

Приветствую Вас, Alex!
Вы меня не так поняли!!! :))) Программы командной строки - это программы которые имеют тектовый интерфейс, т.е запускаются либо из-под чистого ДОС"а, либо из-под его клона-эмулятора в "Форточках". БАТ-файлы - это те же самые скрипты, тоько под командниую сторку... Они бали введены для того, что бы облегчить людям жизнь. Представь себе, что ты набираешь с десяток другой комманд, чтовы загрузить один драйвер.... Ну как? Конечно мои знания БАТ-ников не такие уж и большие, но попробую тебе помочь!! Мне только надо знать сроки сдачи лабораторной работы!!! Если не смогу сам ее написать. то хотябы попробую указать документ из которго можно почерпатьь информацию...

Ответ отправлен: 18.04.2004, 22:02
Отправитель: Acid Burn


 Вопрос № 5160

Здравствуйте!
Столкнулся с проблемой написания трансляторов.
Не могу понять алгоритм восходящего метода грам.анализа.
Не скажете где взять информацию по нему?



Вопрос отправлен: 18.04.2004, 14:39
Отправитель: Alex

[Следующий вопрос >>] [Список вопросов]

Отвечает Acid Burn

Здравствуйте, Alex!
Я как-то встретил документацию по данной теме на
codenet.ru
rusdoc.ru

Ответ отправлен: 18.04.2004, 22:09
Отправитель: Acid Burn


Отвечает Pawel

Доброе время суток, Alex!
Вроде на rusdoc.ru была такая дока.

Ответ отправлен: 19.04.2004, 18:41
Отправитель: Pawel


Отвечает Portnov

Приветствую Вас, Alex!
см. http://algolang.da.ru/.

Ответ отправлен: 20.04.2004, 18:13
Отправитель: Portnov


 Вопрос № 5161

Здравствуйте!
Пишу курсовую на тему транспортные задачи и задачи о кротчайшем пути.
Не знаете где можно достать хорошую литературу по данной теме?
Спасибо!



Вопрос отправлен: 18.04.2004, 14:42
Отправитель: Alex

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Приветствую Вас, Alex!
У меня примерцик на PASCAL и Fasm есть, если нужно пиши на мыло.

Ответ отправлен: 19.04.2004, 18:43
Отправитель: Pawel


 Вопрос № 5163

Как мне установить прерывание на клавиатуру, заменив стандартное, которое при каждом нажатии издавало бы звук из динамика и делало переход по jmp на стандартный обработчик (желательно именно jmp в конце). Стандартная ф-я BIOS 4h Int 16h не подходит. ОС - MS-DOS.



Вопрос отправлен: 19.04.2004, 14:02
Отправитель: Стас

[Следующий вопрос >>] [Список вопросов]

Отвечает Acid Burn

Здравствуйте, Стас!
Получаете вектор прерывания INT 09h - именно это прерывание отвечает за нажатие клавиш... Сохраняете вектор этого прерывания в переменной нужного размера и при выходе делаете дальний переход примерно так:
...
jmp far [переменная]
...
Потомучто дальний переход сохраняет значеия и сегмента кода и смещения...

Ответ отправлен: 19.04.2004, 22:22
Отправитель: Acid Burn


Отвечает Pawel

Приветствую Вас, Стас!
Пиши свой обработцик для Int09


Ответ отправлен: 22.04.2004, 19:30
Отправитель: Pawel


Отвечает Ayl

Приветствую Вас, Стас!
Ну, "пищать" тебе самому придется. А алгоритм такой. Перехватываешь Int09 и проверяешь, что скен-код у тебя со сброшенным старшим битом (то есть это именно нажатие, а не отпускание). Пищишь (прямым программированием динамика, как именно - см. например у Джордейна). Передаешь управление оригинальному обработчику своим любимым jmp.
Каркас см. в Приложении.


Приложение:

Ответ отправлен: 19.04.2004, 16:22
Отправитель: Ayl


Отвечает Евгений Иванов

Добрый день, Стас!
Прошу.
push es ;Сохраним прежний обработчик клавиатуры
mov ax,3509h
int 33
mov wptr [old_int9],bx
mov wptr [old_int9+2],es
pop es
mov ax,2509h
mov dx,ofs int_9entry
int 33
int_9entry: ;============================================================
push ax
in al,96
mov bptr [cs:Port60],al
pop ax
db 234
old_int9 dd -1
proc sound
pusha
in al,61h
push ax
or al,3
out 61h,al
mov al,10110110b
out 43h,al
mov al,5Bh
out 42h,al
jcxz $+2
sub al,al
out 42h,al
mov ah,86h
mov cx,1
mov dx,0C000h
int 21
pop ax
out 61h,al
popa
ret
endp

* EMan: -=- Любовь существует! =-=


Ответ отправлен: 20.04.2004, 07:19
Отправитель: Евгений Иванов


Отвечает Foamplast

Доброе время суток, Стас!

  • Пишете такую функцию:

    old_int9 dd ?
    int9_handler:
    pusha
    ; задание частоты таймера
    ; включение динамика
    ; задержка
    ; выключение динамика
    popa
    jmp cs:old_int9

  • Выполняете следующий код установки обработчика:

    push 0
    pop es
    mov eax, dword ptr es:[9*4]
    mov dword ptr old_int9, eax
    mov word ptr es:[9*4], offset int9_handler
    mov word ptr es:[9*4] + 2, cs

  • Когда побалуетесь, снимайте обработчик следующим кодом:

    mov eax, dword ptr old_int9
    mov dword ptr es:[9*4], eax




Ответ отправлен: 23.04.2004, 08:26
Отправитель: Foamplast



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (12)
Perl (1)
Builder / Delphi (17)
Pascal (17)
Basic / VBA (2)
Java / JavaScript (3)
PHP (9)
Криптография (6)
WinAPI (10)
Радиоэлектроника (7)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (43)
"Железо" (24)
Поиск информации (14)
Администратору
Windows NT/2000/XP (22)
Linux / Unix (6)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (10)
КоАП (7)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.


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


В избранное