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

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


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

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

Выпуск № 437
от 08.12.2002, 15:30

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


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

Max
Статус: Начальный
Общий рейтинг: 120.28
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 119.72
[Подробней >>]
St
Статус: Опытный
Общий рейтинг: 115.82
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 138.75
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 122.53
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 153.41
[Подробней >>]
 
baldr
Статус: Профессиональный
Общий рейтинг: 114.4
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.37
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 150.07
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 128.48
URL: моя рассылка по Protected Mode
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.15
[Подробней >>]


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

Вопрос № 2021. Здравствуйте. У меня вопрос: Вкаком порядке необходимо записывать файл на дискету чтобы он оказался ... (ответов: 4)
Вопрос № 2022. Bob Johnson, если не затруднит, кинь мне их(лаб. раб.) тоже...... (ответов: 3)
Вопрос № 2023. Здравствуйте, все! Делал ли кто-нибудь закрытие cd-rom используя int 21h, func 44h, код подфункциии ... (ответов: 2)
Вопрос № 2024. Здравствуйте уважаемые Эксперты! Извините, может быть вопрос несколько глупый, но поверьте ответы на... (ответов: 1)
Вопрос № 2025. Здравствуйте уважаемые эксперты. Может быть кто нибуть знает,есть ли такая asmовская прога(конструкт... (ответов: 3)
Вопрос № 2026. Happy time for all experts. Сделал небольшую програмку на Си со вставкой на ассемблере. Борланд Турб... (ответов: 3)
Вопрос № 2027. Уважаемые эксперты, наверное мой вопрос не по ассемблеру так что извните. Не могли бы вы обьяснить з... (ответов: 4)
Вопрос № 2028. К вопросу 1939. Объясните, пожалуйста, непонятливому, как, все таки перевести вещественное число в A... (ответов: 1)
Вопрос № 2029. Здравствуйте, masquer! К вопросам 1939 и 2028. Имеется небольшая проблема. В MSDN об опции "F&q... (ответов: 1)
Вопрос № 2030. Привет,эксперты! Не подскажите, почему при одних и тех же параметрах phoneNegotiateAPI нормально вы... (ответов: 1)
Вопрос № 2031. Здравствуйте эксперты. Только сегодня начал учить ассемблер! Не знаете ли где достать электронную кн... (ответов: 2)

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


 Вопрос № 2021

Здравствуйте. У меня вопрос:
Вкаком порядке необходимо записывать файл на дискету чтобы он оказался правельно размещён на ней т.е есть файл копия boot дискеты как его правильно перенести назад на дискету, как чередовать номер головки(сторон дискеты я так понимаю?), сектора, дорожки.(13h)
Спасибо.



Вопрос отправлен: 03.12.2002, 17:50
Отправитель: Mio (rs-str@mail.ru)

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

Отвечает Max

Доброе время суток, Mio!
Записывать надо так : С начала записываешь все сектора на стороне, меняешь голову,записываешь сектора на ентой стороне, меняешь и голову и цилиндр , повторяешь заново.

Ответ отправлен: 05.12.2002, 21:42
Отправитель: Max


Отвечает ASMодей

Приветствую Вас, Mio!
Сначала увеличивается номер сектора. Как только все сектора
прочитаны, увеличивается номер головки и снова перебираются
все сектора. После перебора всех секторов снова происходит
увеличение номера головки и т.д. Когда переберутся все номера
головок, увеличивается номер цилиндра и все действия повторяются
пока не будет прочитан (записан) весь диск.
PS. Для дискеты: сектор = сектор, сторона = головка, дорожка = цилиндр
PPS. Можно сделать это проще - просто использовать прерывания INT 25h,26h.


Ответ отправлен: 04.12.2002, 18:38
Отправитель: ASMодей


Отвечает St

Привет, Mio!
Запись всех секторов данной дорожки на стороне 0, затем та же дорожка на стороне 1, после чего читается следующая дорожка стороны 0 и тд. Можно использовать 26h прерывание DOS там уже все стороны/дорожки/сектора сосчитаны.
St

Ответ отправлен: 03.12.2002, 18:54
Отправитель: St


Отвечает Maverick

Здравствуйте, Mio!
Я не понял, тебе нужно программу написать, или у тебя есть имидж диска и тебе его надо на дискету развернуть. У меня есть утилитка, если надо, пиши.
Есть так же чей то исходник, инсталирующий загрузчик на дискету.

Ответ отправлен: 04.12.2002, 07:06
Отправитель: Maverick


 Вопрос № 2022

Bob Johnson, если не затруднит, кинь мне их(лаб. раб.) тоже...



Вопрос отправлен: 03.12.2002, 18:21
Отправитель: Igi(t)32 (Igitname@mtu-net.ru)

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

Отвечает Sensey

Добрый день, Igi(t)32!
Я придумал!
Кинь их мне (sensey@ukr.net) а я попрошу Артема временно разместить их на своем сайте, а потом с Калашниковым мы что-нить придумаем. И архивы хранить где-то надо, и раазные всякие весчи нужные. Я думаю что сделаем еще сайтик какой-нить третьего уровня на РУСФАГЕ...


Ответ отправлен: 03.12.2002, 19:03
Отправитель: Sensey


Отвечает Bob Johnson

Приветствую Вас, Igi(t)32!
Ok.


Ответ отправлен: 04.12.2002, 23:28
Отправитель: Bob Johnson


Отвечает Maverick

Здравствуйте, Igi(t)32!
Bob!!! Если бы ты за каждую такую просьбу брал бутылку пива, то ты бы уже спился :) Но... есть всегда выход, ты бери с них пиво и делись с экспертами, и ты здоров и нам хорошо :)))
(снимите 5 баллов за "ответ")


Ответ отправлен: 04.12.2002, 07:06
Отправитель: Maverick


 Вопрос № 2023

Здравствуйте, все! Делал ли кто-нибудь закрытие cd-rom используя int 21h, func 44h, код подфункциии al=0Dh? Какие надо параметры передать, чтобы cd-rom закрылся? В любом случае, запустите, пожалуйста, вопрос в рассылку - может кто-нибудь из подписчиков встречался с этим.
Заранее спасибо всем, кто поможет.


Приложение:


Вопрос отправлен: 03.12.2002, 20:06
Отправитель: Евгений (other@mail.kz)

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

Отвечает baldr

Приветствую Вас, Евгений!
Давно такой вопрос был гвоздем в рассылке... :)
В общем, советую работать с лотком CD-ROM'а используя не int 21h, а мультиплексорное прерывание
2fh - в нем смотри функции driver.sys - там есть работа с произвольным устройством. Обычно
такие программы через него работают. Если нужно описания прерываний - на моем
сайте есть. http://www.dospage.by.ru


Ответ отправлен: 04.12.2002, 00:08
Отправитель: baldr


Отвечает Maverick

Приветствую Вас, Евгений!
А ты уверен, чтоб с помощью этой функции можно было бы закрыть. В приложении описание этой функции.


Приложение:

Ответ отправлен: 04.12.2002, 07:06
Отправитель: Maverick


 Вопрос № 2024

Здравствуйте уважаемые Эксперты!
Извините, может быть вопрос несколько глупый, но поверьте ответы на него мне жизненно необходим.
Дело в следующем:
мне нужно (насколько я понял по очень короткому разговору) написать программу, которая бы могла осуществлять копирование данных с РС машины на какой то учебный стенд, который оснащен МК-51. Программы под МК51 я уже писал, но отлаживал их только на эмуляторе. Я не знаю что за учебный стенд с МК 51 применяется для обучения студентов - очников в университете (сам заочник). Вот отсюда вопрос:
1.что за учебный стенд (думаю что таких долно быть немного)
2.какими устройствами для связи с другими компьютерами он располгает
3.есть ли какие-то забронированные под что то (ну скажем установочные программы и прочее) ячейки РПД (или какие я могу использовать для хранения принимаемых данных, где лучше разместить программу?)
Если кто то может поделиться ссылками по теме или материалом - буду очень признателен.



Вопрос отправлен: 03.12.2002, 20:39
Отправитель: Maxmuska

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

Отвечает Sensey

Доброе время суток, Maxmuska!
Что за стенд - не знаю, но:
МК51 обладает встроенным rs232(COMпорт)
Соответственно надо написать прогу - терминал обмена по СОМ-порту...
Уточни. Если это так - могу выслать исходники для МК51 настройки СОМ-порта...


Ответ отправлен: 04.12.2002, 11:54
Отправитель: Sensey


 Вопрос № 2025

Здравствуйте уважаемые эксперты.
Может быть кто нибуть знает,есть ли такая asmовская прога(конструктор) для создания всяких окошек,кнопочек и т.п.
Я что то такое слышал но найти немогу,может подскажите естьли такая,а если есть где искать.



Вопрос отправлен: 04.12.2002, 02:01
Отправитель: WiX

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

Отвечает Max

Добрый день, WiX!
Есть исходник создание окна под Windows
же отослал


Ответ отправлен: 05.12.2002, 21:58
Отправитель: Max


Отвечает Bob Johnson

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


Ответ отправлен: 05.12.2002, 15:06
Отправитель: Bob Johnson


Отвечает Maverick

Добрый день, WiX!
Ага, есть. Вроде Visual Assembler называется. Не совсем то, что тебе надо, но ближе, чем NotePad


Ответ отправлен: 04.12.2002, 07:07
Отправитель: Maverick


 Вопрос № 2026

Happy time for all experts.
Сделал небольшую програмку на Си со вставкой на ассемблере.
Борланд Турбо Си 3.0 Она в приложении(вставка). Пашет. Но
если я пытаюсь внутри функции избавиться от локальных переменных
и присвоить значения параметрам, передаваемым в функцию(в ассемблерную
вставку), напрямую, без посредничества локальных переменных,
то ничего не получается. Вопрос: а почему так? Почему вариант
в приложении правильный, а без локальных переменных не працюэ.
Знаю. У меня нет коректного перевода BCD чисел в тот формат,
который нужен и данный вариант правилен только для 30 ноября.
Это я потом доделаю. Меня интересует локальные переменные.
Поскольку вопрос двойственный, то отправил в две рассылки.
Настойчивый оффтопик(в прошлых вопросах он был, но вряд ли вы
его получили) -
Offtopic of Fun: В Far Managerе нажимаем F11, выбираем список
процессов(List Process), ищем explorer.exe, нажимаем F8,
подтверждаем удаление, нажимаем F10, выходим из Фара и
... ляпота
Работает также в Win2000 Server, если админ ленивый:)


Приложение:


Вопрос отправлен: 04.12.2002, 04:16
Отправитель: Начинающий ламер

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

Отвечает ASMодей

Приветствую Вас, Начинающий ламер!
Так ведь то, что у тебя в функцию передается, это не переменные,
а ссылки на них, то есть по сути адрес. Как же ты можешь этому
адресу присвоить какое-то значение? Используй его как адрес на
переменные.


Ответ отправлен: 04.12.2002, 18:38
Отправитель: ASMодей


Отвечает Bob Johnson

Здравствуйте, Начинающий ламер!
Потому что ты передаешь параметры по ссылке, а это, для компилятора тоже самое, что и указатель на переменную. Т.е. физически твоя функция воспринимает два параметра - указатель на переменную month и указатель на переменную day. Тип указателя - в зависимости от разрядности и модели, применяемой в программе (последнее только для 16 разрядных прог) - 2 или 4 байта. А если бы тебе в функцию передавалось значение, как бы ты мог добиться, чтобы при изменении его в функции оно менялось вне ее?
Т.е. тебе надо делать что-то типа:
mov bx, [month]
mov [bx], al
Offtopic: Explorer является Windows Shell, что вполне позволяет системе (в приниципе) работать без него. Это как Нортон для ДОСА.


Ответ отправлен: 05.12.2002, 15:07
Отправитель: Bob Johnson


Отвечает Ayl

Приветствую Вас, Начинающий ламер!
Почему не работает без локальных переменных? А каким образои происходит запись?
Все дело в том, что в ассеьблерном блоке конструкция month преобразуется в [bp+6] (для ближнего вызова) или [bp+8] для дальнего. Причем в стеке находятся 2 слова, представляющие собой сегмент и смещение (возможно, для некоторых моделей памяти только смещение) переменной month.
Соответственно, если просто написать mov byte ptr month, dh, то это будет переведено в move byte ptr [bp+xx], dh, что немного не то, что хотелось бы.
Надо делать так:
les di, month
mov es:[di], dh


Ответ отправлен: 04.12.2002, 11:01
Отправитель: Ayl


 Вопрос № 2027

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



Вопрос отправлен: 04.12.2002, 09:49
Отправитель: Merilyn Manson

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

Отвечает masquer

Приветствую Вас, Merilyn Manson!
Ну, тебе должно быть виднее - где использовать. Задача хеширующей функции создать из набора битов такой набор (хеш), который при изменении исходного набора хотя бы в одном бите давал бы совершенно отличную картину. Хе-хе, туманно, не так ли? Пример хеш-функций - CRC32, RC4, MD5, и т.д. В криптографии, например, используется, но можно где угодно применять.

Ответ отправлен: 04.12.2002, 10:35
Отправитель: masquer


Отвечает Broken Sword

Приветствую Вас, Merilyn Manson!
Как где? Вся современная криптография основана на использовании методов хеширования (CRC, MD5, ... в свою очередь, используются при защите прог (RAR, например), а вообще любая мало мальски серьезная прога использует MD5-подобное криптование). Метод хеширования позволяет хранить множество элементов множества А в линейном массиве Х. Как правило, число элементов А много больше, чем Х. Математически это можно записать:
h: А --> {0,x-1}
Это читается функция h отображает каждый элемент А в индекс множества Х. Поскольку число элементов А как правило намного больше Х, то функция h наверняка неинъективна. Однако, возможно существование такого интервала на области определения функции, в границах которого она становится инъективной. Это означает, что только для одного элемента А существует индекс x1. Функция будет инъективной и в том случае, если ни один элемент А не отображается на интервал {x1,x2} при условии, что последний не равен нулю. В любом другом случае на каждый индекс множества Х отображается более одного элемента А. Это так называемая коллизия хеш-функции. Реверс хеш функции заключается в поиске всех отображаемых на данный индекс элементов. Для любого конечного множества А это разрешимая задача, которая наиболее простое решение имеет на инъективных интервалах хеш-множества.
и т.д. могу кинуть док.

Ответ отправлен: 04.12.2002, 14:53
Отправитель: Broken Sword


Отвечает Maverick

Добрый день, Merilyn Manson!
Насколько я знаю, это нужно, в том числе, для наколки отладчиков защищенного режима.


Ответ отправлен: 04.12.2002, 09:56
Отправитель: Maverick


Отвечает vitya

Доброе время суток, Merilyn Manson!
Хэширование это метод для ускорения поиска в таблице.
Если у тебя есть хэш значение элемента, то поиск в таблице составит О(1), что очень быстро.
В общем и целом, если у тебя есть коллизии, то время будет в среднем равно O(n/m), где n - количество элементов, m -количество слотов. Обычно делается так, что m = Округленное до ближайшей степени двойки или, например STLPorts там округляется до ближайшего простого числа, которое ближайшее к ближайшей степени двойки (мудрено). В этом случае если хэш-функция достаточно хороша - то есть она дает близкое к равномерному распределение время поиска на самом деле получается О(1).
Должен отметить, что все мне известные реализации хэш-таблиц занимали в памяти места в 1.5 раза больше, чем например, черно-красное дерево, или просто АВЛ дерево.

Ответ отправлен: 04.12.2002, 10:20
Отправитель: vitya


 Вопрос № 2028

К вопросу 1939. Объясните, пожалуйста, непонятливому, как, все таки перевести вещественное число в ASCII строку, с помощью wsprintf. Заранее спасибо.



Вопрос отправлен: 04.12.2002, 11:49
Отправитель: Konstantin

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

Отвечает masquer

Добрый день, Konstantin!
Ну, например, так. Сишный пример из кернигана и ричи
PRINTF("%4.2F", FAHR)

Ответ отправлен: 04.12.2002, 14:33
Отправитель: masquer


 Вопрос № 2029

Здравствуйте, masquer! К вопросам 1939 и 2028. Имеется небольшая проблема. В MSDN об опции "F" строки формата у функции wsprintf ничего не сказано.



Вопрос отправлен: 04.12.2002, 15:01
Отправитель: Konstantin

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

Отвечает masquer

Добрый день, Konstantin!
Есть там, только поискать нужно. Ну, или сам поэкспериментируй...

Ответ отправлен: 04.12.2002, 16:46
Отправитель: masquer


 Вопрос № 2030

Привет,эксперты! Не подскажите, почему при одних и тех же параметрах phoneNegotiateAPI нормально вып., а lineNegotiateAPI -нет?
Не могли бы вы выслать исходкод или оригинал Kleza (вирус)
Можно ли с пом. WinTAPI записыать телеф. разговор?
Чем отличаетя lineDiale и line? (формат адреса для них одинаков)



Вопрос отправлен: 04.12.2002, 15:01
Отправитель: oleg

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

Отвечает Bob Johnson

Добрый день, oleg!
Хотел бы я тоже посмотреть на его исходик. Еще что-то мне подсказывает, что тебе его не вышлют... Хотя бы потому, что ты забыл указать свой обратный адрес...
Записывать телефонный разговор можно, только если у тебя voice-modem - для этого и так уже много прог (типа автоответчиков). Если нет - то никак (т.к. нет этого АЦП). Но можешь взять в руки паяльник и собрать схемку для подключения к линейному входу звуковой карты - только не забудь трансформатор поставить.


Ответ отправлен: 05.12.2002, 15:07
Отправитель: Bob Johnson


 Вопрос № 2031

Здравствуйте эксперты. Только сегодня начал учить ассемблер! Не знаете ли где достать электронную книженцию? (только для ламаков). Заранее ПАСИБО!



Вопрос отправлен: 04.12.2002, 15:29
Отправитель: pcgamer

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

Отвечает Sensey

Здравствуйте, pcgamer!
Тут тебе Юрова с Зубковым (или Свана) посоветуют в бумажном варианте и без меня.
Кинь мне адресок, вышлю справочник по командам - все равно пригодится...


Ответ отправлен: 04.12.2002, 15:47
Отправитель: Sensey


Отвечает Maverick

Доброе время суток, pcgamer!
В поисковике ищи книгу Юрова.


Ответ отправлен: 04.12.2002, 16:08
Отправитель: Maverick



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (38)
C / C++ (28)
Perl (6)
Delphi (19)
Pascal (22)
Basic / VBA (9)
Java / JavaScript (11)
PHP (6)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (21)
"Железо" (29)
Поиск информации (14)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (16)
Юристу
Гражданское право (9)
Семейное право (3)
Трудовое право (5)
КоАП (3)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


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

В избранное