Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 524
от 16.04.2003, 09:00
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2990 Отправлено ответов: 8810 Активность: 294.6 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
VicSimon Статус: Доверительный Общий рейтинг: 102.88 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.4 URL: Программирование [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.01 [Подробней >>] |
K0dMaster Статус: Доверительный Общий рейтинг: 121.05 [Подробней >>] |
Hangatyr Статус: Начальный Общий рейтинг: 125.71 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 123.86 URL: моя рассылка по Protected Mode [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.89 [Подробней >>] |
Tigran K. Kalaidjian Статус: Доверительный Общий рейтинг: 110.75 [Подробней >>] |
Joy Статус: Опытный Общий рейтинг: 124.93 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 111.79 URL: Мой сайтик... [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 135.99 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
keleb-glin Статус: Опытный Общий рейтинг: 109.35 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2956. Есть аппарат(MR Vectra), пишет дискеты 3.5'' в своем формате, который обычным PC'шным флопиком не чи... (ответов: 2)
Вопрос № 2958. Привет, эксперты! Я тут задавал вопрос про уд. соединения. и у меня возник еще один - как сервер обс... (ответов: 4)
Вопрос № 2959. Приветствую вас, эксперты. У меня вопрос: Из-за выбора неродного видеоадаптера на некоторых прогах ... (ответов: 1)
Вопрос № 2960. Доброе время суток !! Прога что в приложении дергает состояние оси Y джойста А. Подскажите как сдерн... (ответов: 2)
Вопрос № 2961. гДПСБЯРБСИРЕ, ЩЙЯОЕПРШ! оНЛНЦХРЕ НОРХЛХГХПНБЮРЭ ОПНЦПЮЛЛС, НВЕМЭ ХМРЕПЕЯМН, ЛНФМН КХ ЩРН ЯДЕКЮРЭ БНН... (ответов: 2)
Вопрос № 2962. Здравствуйте уважаемые эксперты! Вопрос простой,пытаюсь сделать простую интерактивную программу:)Выв... (ответов: 7)
Вопрос № 2963. Ув. эксперты. Пытаюсь перевести десятичное число в двоичное. По логике, вроде бы, все должно получат... (ответов: 4)
Вопрос № 2964. У меня вопрос, я чайник в Ассме, но очень хочется.. что посоветуете? Вообще нужно небольшое руководс... (ответов: 6)
Вопрос № 2965. Здравствуйте! Уважаемые Эксперты, у меня к вам такой вопрос: есть программа, которая работает с неко... (ответов: 3)
Вопросов: 9, ответов: 31
Вопрос № 2956 |
Есть аппарат(MR Vectra), пишет дискеты 3.5'' в своем формате, который обычным PC'шным флопиком не читается (говорит, диск не отформатирован).
Как можно содрать при помощи обычного FDD-контроллера всю находящуюся на диске информацию(вроде как raw)?
Можно ли перепрограммировать контроллер, как нам надо? И если можно, то как?
Если кто знает, откуда рыть, то подскажите тоже...
Вопрос отправлен: 11.04.2003, 09:38
Отправитель: Alexander (alex@cld.nkz.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает VicSimon
Доброе время суток, Alexander!
Изумительная вещь для копирования защищенных дискет - FDA (Floppy Disk Analyzer). Версию 6.1 можно найти на www.filesearch.ru.
Ответ отправлен: 11.04.2003, 09:51
Отправитель: VicSimon
Отвечает Bob Johnson
Добрый день, Alexander!
Если принцип записи такой же, то можно. Прежде всего попробуй программу diskdupe - если она прочитает, значит должно получиться, если нет - то это плохо. Еще посмотри с объемом диска - может быть этот аппарат пишет на дискету не 1.44мб, а 720кб - тогда попробуй заклеить дырку на дискете (не Write-protect, а с другой стороны) и прочитать еще раз.
И читать, естественно надо не far'om, а самому посекторно (int 13h, кажется).
Ответ отправлен: 11.04.2003, 18:18
Отправитель: Bob Johnson
Вопрос № 2958 |
Привет, эксперты!
Я тут задавал вопрос про уд. соединения. и у меня возник еще один - как сервер обслуживает
несколько подключений одновременно? Простите за глупый вопрос, конечно.
Вопрос отправлен: 11.04.2003, 15:38
Отправитель: Deny
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, Deny!
А в чем, собственно проблема? При приеме удаленного соединения winsocket выделяет для него новый порт и создает новый сокет, который и отвечает за соединение. Старый же продолжает слушать исходный порт и ждать нового соединения. В программе для этого можно использовать отдельный поток или одним потоком поочередно опрашивать несколько сокетов (можно для этого фиберы приделать).
Ответ отправлен: 12.04.2003, 01:55
Отправитель: Bob Johnson
Отвечает vitya
Здравствуйте, Deny!
Нужно написать многопоточное соединение,
каждый из потоков будет обрабатывать лишь одно из соединений.
Вот.
Наследуй от TThread.
Ответ отправлен: 11.04.2003, 15:42
Отправитель: vitya
Отвечает K0dMaster
Приветствую Вас, Deny!
Если несколько способов :через сообщения Windows и через создания потоков.
Второй способ более приемлимый и переносимый !!!
Вообщем все очень просто слушаешь порт и если на него поступает запрос то создаешь еще один поток и перенаправляешь в него все взаимодействие с клиентом здесь ограничение лишь количество свободной памяти более подробно с примерами смотри здесь www.wasm.ru
Ответ отправлен: 11.04.2003, 15:53
Отправитель: K0dMaster
Отвечает Hangatyr
Доброе время суток, Deny!
Если честно, то я не совсем понял твой вопрос. Какой именно тип сервера тебя интересует? Соединения какого типа? Допустим, ты спрашиваешь о соединении с помощью сокета (если не так - сам виноват)?
Здесь все зависит от типа сервера - возможно, для каждого нового соединения будет порождаться новый процесс,
возможно, программа сама берет на себя функции ОС и контролирует выделение ресурсов и т.д. Короче, ставь
вопрос конкретнее.
Ответ отправлен: 11.04.2003, 16:06
Отправитель: Hangatyr
Вопрос № 2959 |
Приветствую вас, эксперты.
У меня вопрос:
Из-за выбора неродного видеоадаптера на некоторых прогах глючит
СофтАйс (синее окно смерти или перезагрузка). Подскажите, что можно
сделать или какая наиболее совместима с видюхой (standart VGA непредлагать).
Система: Win2k
Видюха: Radeon 9000 (чипсет RV 250)
SoftIce взят из DriverStudio 2.6
Вопрос отправлен: 11.04.2003, 19:07
Отправитель: Rustem
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Доброе время суток, Rustem!
standart VGA никто и не предлагает, поставь Universal Video Driver
Ответ отправлен: 11.04.2003, 20:23
Отправитель: Broken Sword
Вопрос № 2960 |
Доброе время суток !!
Прога что в приложении дергает состояние оси Y джойста А.
Подскажите как сдернуть остальные состояния осей и кнопок.
Заранее спасибо.
Приложение:
Вопрос отправлен: 11.04.2003, 20:13
Отправитель: anton (oven_mars@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Здравствуйте, anton!
Вот смотри:
Прерывание 15h, функция 84h (задается в AH)
Подфункция задается через регистр DX:
0 - получить состояние кнопок в регистре AL - биты 4-7 показывают состояние кнопок джойстика
1 - получить координаты джойстика в регистрах AX, BX, CX и DX:
AX = горизонтальная координата джойстика A
BX = вертикальная координата джойстика A
CX = горизонтальная координата джойстика B
DX = вертикальная координата джойстика B
Для всех вызовов этой функции установленный флаг CF указывает на неправльное значение в регистре DX при вызове
Ответ отправлен: 14.04.2003, 12:34
Отправитель: Ayl
Отвечает Tigran K. Kalaidjian
Доброе время суток, anton!
После вызова прерывания 15h (функция 1h) в следующих регистрах хранятся состояния кнопок:
AX = X позиция джойстика A
BX = Y позиция джойстика A
CX = X позиция джойстика B
DX = Y позиция джойстика B
Подробнее см. в приложении описание Ральфа Брауна
Приложение:
Ответ отправлен: 11.04.2003, 22:21
Отправитель: Tigran K. Kalaidjian
Вопрос № 2961 |
гДПСБЯРБСИРЕ, ЩЙЯОЕПРШ!
оНЛНЦХРЕ НОРХЛХГХПНБЮРЭ ОПНЦПЮЛЛС, НВЕМЭ ХМРЕПЕЯМН, ЛНФМН КХ ЩРН ЯДЕКЮРЭ БННАЫЕ, ХКХ МЕР?
оПНЦПЮЛЛЙЮ БШБНДХР ЯБНИ 16-ПХВМШИ ЙНД.
Приложение:
Вопрос отправлен: 11.04.2003, 20:32
Отправитель: Witt
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Доброе время суток, Witt!
Слушай, я тебя не понял... Ты что, с первого раза не понимаешь? Я же тебе присылал отпимизированную программу в ответ на твой предыдущий вопрос от 10 апреля. Что, за 4 дня не смог прочитать?
И разберись со своей кодировкой - в таком виде вопрос нечитабелен, требуется перекодировщик.
Ответ отправлен: 14.04.2003, 12:50
Отправитель: Ayl
Отвечает Joy
Здравствуйте, Witt!
Оптимизировать?! По скорости или по размеру? А вообще, что она делает?
Ответ отправлен: 15.04.2003, 11:16
Отправитель: Joy
Вопрос № 2962 |
Здравствуйте уважаемые эксперты!
Вопрос простой,пытаюсь сделать простую интерактивную программу:)Вывод на экран вопроса напр.'Сейчас утро?',если да то жму на 'Y' и выдаётся сообщение 'Доброе утро',если ввожу 'N', то сообщение 'Добрый день'.Есть иходник ,но он видимо кривой.Плз.,покажите где ошибка и в чем она заключается.Спасибо!
Приложение:
Вопрос отправлен: 11.04.2003, 22:40
Отправитель: Dim-A
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Доброе время суток, Dim-A!
Конечно есть! У тебя постоянно выводится "Dobroe utro" и не ожидает ответа на вопрос? Ну и правильно! А кто будет вводить символ с клавиатуры? Тебе нужно перед командой
cmp al, 'Y'
написать такое:
xor ax, ax
int 16h
Тоогда будет работать.
Ответ отправлен: 14.04.2003, 12:56
Отправитель: Ayl
Отвечает Hangatyr
Добрый день, Dim-A!
В принципе, правильно, но надо бы добавить считывание символа с клавиатуры посредством функции 01h/21h.
Приложение:
Ответ отправлен: 12.04.2003, 05:44
Отправитель: Hangatyr
Отвечает Portnov
Доброе время суток, Dim-A!
mov ah,9
int 21h
cmp al,'Y'
jz m1
Откуда здесь в al возмется 'X','y', или что бы то ни было???
Для ввода клавиши используйте напр. int16h/Fn0: (см. приложение).
С уважением, Portnov
Приложение:
Ответ отправлен: 12.04.2003, 15:33
Отправитель: Portnov
Отвечает Bob Johnson
Приветствую Вас, Dim-A!
Функция 9 только выводит на экран символы. Она не обеспечивает ввода данных с клавиатуры. Чтобы ввести один символ следует воспользоваться функцией 00h int 16h:
mov ah, 0
int 16h
;теперь al=символ ASCII
Ответ отправлен: 12.04.2003, 21:59
Отправитель: Bob Johnson
Отвечает Joy
Здравствуйте, Dim-A!
Все написал ты правильно (смотри в приложении), вот только забыл "спросить" клавишу у пользователя (ну еще проверку бы надо, если пользователь нажал другую кравишу, напривер "о").
Приложение:
Ответ отправлен: 15.04.2003, 14:42
Отправитель: Joy
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Dim-A!
Исправленный вариант в приложении.
Ты забыл принять символ для обработки.
используй ah=08hint 21h
Приложение:
Ответ отправлен: 13.04.2003, 16:58
Отправитель: Tigran K. Kalaidjian
Отвечает Maverick
Добрый день, Dim-A!
Да ты сам погляди описание ф-ий и все поймешь.
Ты только выводишь сообщения, но нигде не принимаешь ввод.
Можно так принимать
mov ah,10h
int 16h
Ответ отправлен: 15.04.2003, 05:11
Отправитель: Maverick
Вопрос № 2963 |
Ув. эксперты. Пытаюсь перевести десятичное число в двоичное. По логике, вроде бы, все должно получаться, но происходит ошибка. Код прилагается. Кто знает в чем дело, подскажите, пожалуйста.
Приложение:
Вопрос отправлен: 11.04.2003, 22:47
Отправитель: BAPABP
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, BAPABP!
Какая ошибка происходит? А, ну я, в принципе, догадался, какая... Все дело в том, что у тебя выполнение программы сразу же начинается с процедуры. Ассемблер - это тебе не язык высокого уровня, который сам разбирает, с какого места начать выполнение. Здесь все строго - для COM-файла (в который ты это все и формируешь) стартовой является точка cs:100h. Этот адрес ты устанавливаешь с помощью директивы org 100h, в результате чего первая команда процедуры является первой командой для выполнения. В результате у тебя регистр AX неинициализирован (равен 0 при старте программы), это значение заносится в регистр DI, в результате чего ты затираешь начальные байты PSP. после выполнения команды ret управление передается по адресу PSP:0, а там у тебя к этому моменту черт знает что находится. Результат - на лице!
Как исправить? Перенести процедуру перевода за команду int 20h.
Ответ отправлен: 14.04.2003, 13:44
Отправитель: Ayl
Отвечает Hangatyr
Добрый день, BAPABP!
Не знаю, я посмотрел код - алгоритм вроде верный, а ошибка в самой структуре программы - точкой входа считается (в твоем случае) то, что стоит за меткой start т.е. первая инструкция твоей процедуры. Вторая ошибка -"STR" - это мнемокод, его нельзя использовать в качестве имени переменной. Исправленный вариант в приложении...
Приложение:
Ответ отправлен: 12.04.2003, 06:07
Отправитель: Hangatyr
Отвечает Bob Johnson
Добрый день, BAPABP!
Работает у тебя все... Есть только такая ошибка - stos использует es:di (но в com файле ds=es, так что все нормально), а ты потом пишешь mov [DI],DL - если ds не будет равно es, то тогда будут проблемы. В общем, смотри как ты вызываешь свою процедуру - я делал так:
mov bx, 1000h
mov ax, offset str
call NmbrToBi
mov dx, offset str
mov ah, 9
int 21h
ret
И число выводилось...
Ответ отправлен: 12.04.2003, 21:59
Отправитель: Bob Johnson
Отвечает Maverick
Здравствуйте, BAPABP!
Ой-ей, это ты писал?
Гораздо проще:
есть у тебя например в AH число 7, тебе надо вывести его двоичный эквивалент.
mov ah,7 ;Число
mov cx,8 ;столько разрядов
Cycle:
xor al,al
rol ax,1
add al,30h
int 29h
loop cycle
Вот и все.
Ответ отправлен: 15.04.2003, 05:11
Отправитель: Maverick
Вопрос № 2964 |
У меня вопрос, я чайник в Ассме, но очень хочется.. что посоветуете? Вообще нужно небольшое руководство. Не игнорируйте пожалуйста.
Вопрос отправлен: 12.04.2003, 05:22
Отправитель: BL00dASp
[Следующий вопрос >>] [Список вопросов]
Отвечает keleb-glin
Здравствуйте, BL00dASp!
Руководство - это всегда пожалуйста.
А я ещё посоветую две книги:
В. Юров "assembler, учебный курс"
Зубков "ассемблер для ДОС, Виндоуз и Юникс"
Ответ отправлен: 12.04.2003, 19:16
Отправитель: keleb-glin
Отвечает Bob Johnson
Доброе время суток, BL00dASp!
Почитай Зубкова. Говорят, хорошая книга для начинающих. bobjohnson.nm.ru
Ответ отправлен: 13.04.2003, 12:51
Отправитель: Bob Johnson
Отвечает Tigran K. Kalaidjian
Доброе время суток, BL00dASp!
Олег Калашников "Ассемблер? Это просто !"
В. Юров "Ассемблер. учебник"
Я сам начинал с Питера Абеля “Ассемблер и программирование для IBM PC”
Для начала достаточно...
Ответ отправлен: 12.04.2003, 14:47
Отправитель: Tigran K. Kalaidjian
Отвечает Hangatyr
Доброе время суток, BL00dASp!
Ну, по Асму тонны книг написаны. Скажи какая конкретно область программирования тебя интересует и какого типа руководство нужно.
Ответ отправлен: 12.04.2003, 05:50
Отправитель: Hangatyr
Отвечает Joy
Приветствую Вас, BL00dASp!
На сайте Боба Джонсона есть рассылка О. Калашникова "Ассемблер - это просто ..." Вот с нее и начни.
Ответ отправлен: 15.04.2003, 11:16
Отправитель: Joy
Отвечает Maverick
Приветствую Вас, BL00dASp!
Это не ответ, а так...напоминание о там как задавать вопросы...
Чисто интимный вопрос, чего именно хочется? Если пива то нам по пути :)
Вообще под какую операционку собираешся писать, что писать?
Для чего вообще тебе нужен асм?(для каких целей: драйвера, лабуда, вирусы и т.д.)
Ответ отправлен: 15.04.2003, 05:11
Отправитель: Maverick
Вопрос № 2965 |
Здравствуйте!
Уважаемые Эксперты, у меня к вам такой вопрос: есть программа, которая работает с некоторым устройством через порты и мне надо, чтобы при попытке чтения/записи в порт управление получала моя программа. Возможно ли такое? И если да, то как?
Заранее благодарен.
Вопрос отправлен: 12.04.2003, 06:14
Отправитель: sem@k
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Приветствую Вас, sem@k!
Найди в программе место, где она работает с портами и поставь там вызов своей функции.
Ответ отправлен: 13.04.2003, 12:52
Отправитель: Bob Johnson
Отвечает Hangatyr
Приветствую Вас, sem@k!
Это возможно. Нужно использовать внутренние средства отладки процессоров. Поля +16, +20, +24 и +28 (если мне память, конечно, не изменяет) регистра DR7 задают тип перехватываемого обращения, и если установлено 10, то при обращении к порту возникнет ислючение отладки #DB, на которое и надо будет установить свой обработчик.
Ответ отправлен: 12.04.2003, 06:35
Отправитель: Hangatyr
Отвечает Broken Sword
Доброе время суток, sem@k!
Используй отладочные регистры (R/W=10b - бряк на чтение/запись в I/O порты), или воспользуйся готовым отладчиком (SoftICE тот же)
Ответ отправлен: 12.04.2003, 13:23
Отправитель: Broken Sword
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (39) C / C++ (30) Perl (7) Delphi (16) Pascal (23) Basic / VBA (9) Java / JavaScript (11) PHP (5) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (29) Windows NT/2000/XP (21) "Железо" (24) Поиск информации (12) |
Администратору Windows NT/2000/XP (11) Linux / Unix (13) |
Юристу Гражданское право (8) Семейное право (5) Трудовое право (5) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||