Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 618
от 17.08.2003, 18:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3941 Отправлено ответов: 11662 Активность: 295.9 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Beeblebrox Статус: Профессиональный Общий рейтинг: 107.38 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 126.62 URL: Методы оптимизации работы ПК [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 148.7 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
dimka Статус: Опытный Общий рейтинг: 142.3 Телефон: (231)-4-43-85 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.09 URL: Программирование [Подробней >>] |
Greys Статус: Начальный Общий рейтинг: 120.51 [Подробней >>] |
GL Статус: Опытный Общий рейтинг: 102.58 [Подробней >>] |
Lynx Статус: Опытный Общий рейтинг: 117.43 Телефон: (8442) 750522 [Подробней >>] |
Eugene Статус: Профессиональный Общий рейтинг: 106.78 URL: мощный файловый архив [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 121.04 URL: мой сайт [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 119.11 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 113.12 [Подробней >>] |
Алексей Статус: Доверительный Общий рейтинг: 104.65 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.16 [Подробней >>] |
St Статус: Профессиональный Общий рейтинг: 106.88 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3903. Здравствуйте уважаемые эксперты!!! У меня есть IDA, как мне дизасембировать прошивку материнки!!! Ес... (ответов: 3)
Вопрос № 3904. Еще раз спасибо всем, кто прислал мне ответы по преобразованию дробных чисел в hex код, но для меня ... (ответов: 3)
Вопрос № 3905. Здравствуйте, уважаемые эксперты! Не подскажит ли кто какой программой открыть файл с расширением... (ответов: 3)
Вопрос № 3906. Исходники 34 небольших вирусов: http://kalaidjian.narod.ru/vir/virsim.zip Размер 113Кб Это разновидн... (ответов: 3)
Вопрос № 3907. Здравствуйте, эксперты! Следующий текст предназначен для: Bob Johnson Евгений Иванов GL dimka Tigr... (ответов: 7)
Вопрос № 3908. Ув. тов. эксперты. Я гружусь с дискеты (RealMode). При этом прерывание 10h (ah=4f02) (VESA SVGA) bx=... (ответов: 7)
Вопрос № 3909. Доброго времени суток Как получить изображение? то есть: я открыл бмп-шный файл, загрузил данные из ... (ответов: 2)
Вопрос № 3911. Здравствуйте, уважаемые эксперты. Решил написать программу, при запуске которой она пишет текущую да... (ответов: 14)
Вопросов: 8, ответов: 42
Вопрос № 3903 |
Здравствуйте уважаемые эксперты!!!
У меня есть IDA, как мне дизасембировать прошивку материнки!!!
Если можно по подробнее!!!!
С уважением Ujin!!!
Вопрос отправлен: 13.08.2003, 00:18
Отправитель: Ujin (twixt@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Доброе время суток, Ujin!
То, что ты задал такой вопрос, говорит о том, что никакой пользы от дизассемблированного биоса тебе не будет :) Чтобы получить более-менее нормальный исходник такого размера, у профессионала уйдет полгода напряженного труда. Если же тебе просто надо побаловаться с IDA, загрузи биос как простой бинарный файл и укажи начальный адрес (зависит от размера биоса. Дальше разберешься :)))))
Ответ отправлен: 13.08.2003, 09:43
Отправитель: Beeblebrox
Отвечает Tigran K. Kalaidjian
Добрый день, Ujin!
Никак. Читайте предыдущие вопросы. Я даже где-то подробно на эту тему ответил.
Ответ отправлен: 13.08.2003, 09:04
Отправитель: Tigran K. Kalaidjian
Отвечает Евгений Иванов
Доброе вр
Ответ отправлен: 13.08.2003, 09:28
Отправитель: Евгений Иванов
Вопрос № 3904 |
Еще раз спасибо всем, кто прислал мне ответы по преобразованию дробных чисел в hex код, но для
меня это слишком сложно !
Я пол года писал свой проект на ассемблере,
встречал много трудностей, которые удавалось
кое-как преодалеть, но никогда не думал,
что на последнем этапе возникнут такие
проблемы с дробями.
Ребята, помогите пожалуйста написать процедуру,
которая принимает смещения двух строк и
возвращает в смещение первой строки сумму,
разность, произведение или деление этих строк.
Очень нужно, не откажите в прозьбе...
Спасибо !
Приложение:
Вопрос отправлен: 13.08.2003, 01:02
Отправитель: Fantomas
[Следующий вопрос >>] [Список вопросов]
Отвечает dimka
Приветствую Вас, Fantomas!
Я подумаю. Скажи свой мэил!
Ответ отправлен: 13.08.2003, 12:11
Отправитель: dimka
Отвечает Bob Johnson
Здравствуйте, Fantomas!
Во-первых, ты должен выбрать, что будешь использовать - плавающую точку или целочисленную арифметику.
Пусть для начала будут целые числа, тогда вначале ты должен определить, сколько разрядов ты отведешь под целую часть, а сколько - под дробную. Пусть это будет 16-16, тогда ты проходишь по строке (числу) слева направо и вначале считаешь целую часть:
xor eax, eax
xor edx, edx
m1:
mov al, [esi]
inc esi
cmp al, '.'
jz m2
sub al, '0'
lea edx, [edx*4 + edx]
shl edx, 1
add edx, eax
jmp m1
m2:
Дальше считываешь дробную часть, определяя, сколько в ней знаков:
mov ecx, 1
xor eax, eax
xor edx, edx
m1:
mov al, [esi]
inc esi
test al, al
jz m2
sub al, '0'
lea edx, [edx*4 + edx]
lea ecx, [ecx*4 + ecx]
shl edx, 1
shl ecx, 1
add edx, eax
jmp m1
Таким образом, в edx получается численное значение дробной части, а в ecx - количество знаков, в степенном представлении (т.е. если один знак - то 10, если 2 - то 100, 3 - 1000 и т.д.). Теперь непосредственно переводим:
;edx и ecx после пред. примера
mov esi, 32; количество знаков результата
m5:
shl edx, 1
cmp edx, ecx
sbb eax, eax
xor eax, 0FFFFFFFFh
and eax, ecx
sub edx, eax
cmp eax, 1
rcl ebx, 1
dec esi
jnz m5
xor ebx, 0FFFFFFFFh
Теперь в ebx находится дробная часть. Складывать - так:
add ebx, другая дробная часть
adc целая часть, другая целая часть
В твоем примере, после третьей процедуры в ebx получится 5EB851EBh, что соответствует (если это разделить на 2^32) 0,36999999, т.е. что и было нужно.
Обратно уже сам подумай, как преобразовать.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 13.08.2003, 19:40
Отправитель: Bob Johnson
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Fantomas!
Если Вы хотите работать с дробными числами, то можно поступить следующим образом:
1. Определить положение точки в строке и тем самым определить число разрядов слева от точки (или запятой, как угодно). Т.е. поиск символа с кодом 2Eh.
2. Произвести перевод в число (отнимая от каждого символа строки 30h), исключив точку и учтя число разрядов
3. Произвести нужные арифметические действия (лучше с помощью сопроцессора)
4. Сохранить получившееся число где-нибудь. Делить результат шага3 на 10 до тех пор, пока число не станет меньше 1, при этом увеличивая значение некоторого счётчика на 1 в конце каждой итерации. После этого в счётчике будет число разрядов результата слева от запятой.
5. Преобразуем число в строку, вставив точку(или запятую) на место, которое мы сохранили в счётчике. Заранее следует перевести результат шага3 в целое число (умножением на степень десятки и округлением). Алгоритм перевода в строку целого числа указан в приложении.
Приложение:
Ответ отправлен: 14.08.2003, 10:10
Отправитель: Tigran K. Kalaidjian
Вопрос № 3905 |
Здравствуйте, уважаемые эксперты! Не подскажит ли кто какой программой
открыть файл с расширением *.awd. Заранее благодарен 1!
Вопрос отправлен: 13.08.2003, 07:08
Отправитель: 1 (privat-soap@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает dimka
Доброе время суток, 1!
Попробуй Far'ом
Ответ отправлен: 13.08.2003, 12:07
Отправитель: dimka
Отвечает Tigran K. Kalaidjian
Здравствуйте, 1!
Я знаю 2 типа файлов с таким расширением:
1. Это прошивка BIOS
2. Это факсимильный документ - открывается с помощью Imaging for Windows 95/98
Ответ отправлен: 13.08.2003, 09:21
Отправитель: Tigran K. Kalaidjian
Отвечает Bob Johnson
Добрый день, 1!
Вообще я встречал такие файлы только в одном месте - это файлы биоса (AWARD), предназначенные для перепрошивки. Открыть их можно утилитой aflash.exe, которая должна быть скачена с того же сайта, откуда и сами файлы биоса.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 13.08.2003, 19:41
Отправитель: Bob Johnson
Вопрос № 3906 |
Исходники 34 небольших вирусов:
http://kalaidjian.narod.ru/vir/virsim.zip
Размер 113Кб
Это разновидности Anti-Pascal, Highlander, Intrudder, Joshua, Leprosy-B, разновидности Tiny, V2100, Vienna и др.
Вопрос отправлен: 13.08.2003, 09:37
Отправитель: Tigran Kalaidjian
[Следующий вопрос >>] [Список вопросов]
Отвечает dimka
Доброе время суток, Tigran Kalaidjian!
Спасибо!!!!!!!!!1
Ответ отправлен: 13.08.2003, 11:41
Отправитель: dimka
Отвечает Tigran K. Kalaidjian
Здравствуйте, Tigran Kalaidjian!
Отправил в рассылку
Ответ отправлен: 13.08.2003, 09:43
Отправитель: Tigran K. Kalaidjian
Отвечает Greys
Доброе время суток, Tigran Kalaidjian!
Кстати насчет вирусов! На сайте http://www.wasm.ru/ в разделе статьи есть подраздел вирусологии. Очень помогает тварить черное дело на асьме. Как говорится "на хорошем сайте вири водятся"! Если нужны исходники вирей пишите, а то я тут недавно их себе накачал, аж самому жуть. Хотя знаю одного перца, у него вири на компе как домашние животные: он их иногда выпускает погулять, а потом винты форматирует, но раз по кайфу ему, то пусть развлекается.
Ответ отправлен: 14.08.2003, 00:00
Отправитель: Greys
Вопрос № 3907 |
Здравствуйте, эксперты!
Следующий текст предназначен для:
Bob Johnson
Евгений Иванов
GL
dimka
Tigran K. Kalaidjian
Я по поводу вопроса № 3874. О том чтобы провести тест и об электронике.
Вот вы все высказались против того, что я предложил, пишите "куда писать новичкам" и т.п. Так ведь можно оставить пунктик "Отправить всем экспертам", и к тому же, ведь есть люди (это я не про себя) которые уже разобрались с тем, что такое шестнадцатеричная система счисления, зачем нужно org 100h, как запустить SoftIce и т.п. И у этих людей появились "канкретные" вопросы и они хотели бы получить на них "канкретные" ответы. Как я уже писал пунктик "Отправить всем экспертам" обязательно останется, просто нужно как-то упорядочить имена экспертов по группам. Сомневающиеся будут отправлять вопросы всем экспертам, а определившиеся с вопросом будут направлять конкретным экспертам.
Tigran Kalaidjian и GL пишут, что они разбираются не в чём-то конкретно, а во всём "понемножку". Вот и узнаете после тестирования в чём больше, если же всё-таки будет "во всём "понемножку", то значит будете во всех категориях.
Кое-что...
<< Bob Johnson.
Я в Яндексе искал, не нашёл ничего интересного, то есть не то что мне нужно.
<< Евгений Иванов.
От вас мне пришёл такой ответ "Здравств%". Вы, наверное, хотели дать мне ссылочку на супер-секретный сайт по радиотехнике. Но так как он был секретным кто-то не захотел чтобы это письмо дошло до меня. Наверное, это ФСБ или ещё кто-то. =)
Напишите, пожалуйста, ещё раз, что вы хотели мне написать.
<< GL.
Спасибо вам за ссылки! Этого, я думаю, мне хватит на ближайшие пять лет.
<< dimka.
У вас как я понял на компьютере установлен Линух, вот и решил к вам обратиться. Не можете подсказать какая версия Linux будет нормально, без тормозов, работать на Pentium 166 с оперативкой 32 Мб EDO RAM, с запущенной оболочкой?
<< Tigran K. Kalaidjian.
Направление: "Для начинающих".
Слушайте эксперты. Хочу сделать простенького робота. Нет не андроида орущего "I'll be back" и "Asta lavista baby" (правильно написал-то?), а такую маленькую коробочку на колёсах (да нет, не гроб). Подскажите, что можно использовать как "глаза" (имеется в виду прибор для ориентации в пространстве). Думал исп. радар, да учитель физики обломал, говорит "Фиг ты радар сделаешь, ну разве только если он будет испускать сигналы, но не принимать" (примерно так говорил). А если ИК-лучи? Я в этом не разбираюсь, напишите, пожалуйста, об этом. И ещё, а в качестве ПЗУ, что можно использовать?
-+-+-+-+-+-
Посоветуйте, как запускать незарегистрированную The BAT, чтобы окошко с сообщением о регистрации само закрывалось. Я нашёл ключ в реестре, где записывается сколько дней осталось до конца демонстрационного срока. Хотел сделать программку, которая исправляет это значение и запускает BAT. В этом случае ShellExecute подойдёт? Или вот другой способ, правда я его ещё не пробовал, при запуске программы нужно найти окошко с классом TPаnel, в этом окошке кнопки с классом TButton, среди них как-то выбрать кнопку с надписью "OK" и послать ему сообщение WM_LBUTTONDOWN и WM_LBUTTONUP (использовать кряк не советуйте, это же неинтересно).
Вижу уже достал вас, ладно, заканчиваю.
Спасибо за внимание.
Вопрос отправлен: 13.08.2003, 13:21
Отправитель: Drahus (Drahus@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Добрый день, Drahus!
Робота делай на PIC-контроллере, а датчики выломай из старой мышки. Соответственно, и в ПЗУ надобность отпадает:)
Ответ отправлен: 13.08.2003, 13:51
Отправитель: Beeblebrox
Отвечает GL
Здравствуйте, Drahus!
1. Вообще-то система, которую ты предлагаешь, уже существует. Вопрошающему нужно просмотреть пару-тройку выпусков рассылки, рассортировать по интересующим его темам экспертов и потом уже задавать персональные вопросы. Только в этом случае эксперты-новички, хуббы и такие как я (которые редко отвечают) будут получать меньше вопросов - тут есть и плюсы и минусы.
2. Тут чтобы дать ответ, нужно конкретную задачу знать. Если просто ориентация в пространстве, то можно компас немного доработать (датчики к нему прилепить...), если препятствия разные обходить, то надо ориентир - какие именно, какого размера, с какого расстояния их нужно регистрировать... Пиши мне в ящик, чем смогу - помогу.
Ответ отправлен: 14.08.2003, 16:32
Отправитель: GL
Отвечает Tigran K. Kalaidjian
Здравствуйте, Drahus!
> Вот и узнаете после тестирования в чём больше, если же
> всё-таки будет "во всём "понемножку", то значит будете во
> всех категориях
А я и так во всех категориях =) Меня раздражает сам факт тестирования. Всё время - в школе, в интституте... Опят же Вы не ответили на мой вопрос - _кто_ будет производить тестирование? Кто возьмет на себя ответственность и займет свое время?
Вот еще один аргумент против: что касается лично меня, то для меня приносит пользу попытки отвечать на вопросы из категорий, в которых я не разбираюсь совсем, ибо в поиске правильного ответа я учусь программированию для этой категории. Я пришел на RusFAQ.ru экспертом, когда еще был совсем зелен, т.е. ассемблер начал изучать буквально за неделю до того и то не очень интенсивно. А вот попытки ответов на различные нестандартные(или наоборот типичные) вопросы помогли мне разобраться очень во многом(хотя ни по каким книгам я не учился). Это что касается меня лично. Не думаю, что другим экспертам это принесет пользу - неблагодарно: пришел, понимаешь, добровольцем, а тут еще и тестируют...
Для общих вопросов я и еще несколько экспертов пишем FAQ, дабы разгрузить Систему. Мне этот путь больше нравится, чем сортировка.
Да вообще мы с Вами долго разговариваем - тема не стоит публикования в рассылке.
Теперь насчет робота: вот это уже тема стоящая! В свое время я тоже был увлечен такими штучками. Схема простая: 2 моторчика, транзистор, резистор, батарейка и фоторезистор (я баловался с такой "черепашкой", которая бегает по свету, т.е. бежит к источнику света).
Тема интересная. Если интересует схема или описание, то пишите на kalaidjian@pochtamt.ru - пообщаемся. Укажите, что именно должна делать Ваша "черепашка", также разберемся.
Что касается радиопередатчика, могу посоветовать Вам книгу Борисова - это книга, по которой учатся начинающие радиолюбители нескольких поколений. Купите - не пожалеете!Иметь такую книгу очень полезно. Кстати, там есть отдельная глава по автоматике.
Насчет ПЗУ - не советую, ибо очень сложно, да и зачем оно Вам ?
Ответ отправлен: 13.08.2003, 15:06
Отправитель: Tigran K. Kalaidjian
Отвечает Bob Johnson
Доброе время суток, Drahus!
> Вот и узнаете после тестирования в чём больше
Еще Эйнштейн говорил, что результаты тестирования очень неадекватны. Вполне может возникнуть ситуация, когда эксперт способен дать грамотный ответ в той области, в которой он особенно не разбирается и наоборот. Так что все это излишне. Тем более, что укрупненное распределение осуществляется тематическим направлением рассылок, где зарегистрирован эксперт и дальнейшее дробление сделает работу с системой только более сложной и неудобной как для подписчиков, так и для экспертов.
> Я в Яндексе искал, не нашёл ничего интересного, то есть не то что мне нужно
Ну а ты и ничего конкретного не написал, что тебе надо было искать - когда мне что-то нужно найти, я начинаю с яндекса.
> "Asta lavista baby"
Hasta lavista baby
> Подскажите, что можно использовать как "глаза"
Я бы рекомендовал ультразвук. Ведь что должны делать твои "глаза" - определять, есть ли что-то на пути твоего "терминатора". Если ты поставишь ИК-приемник, то это будет затруднительно, т.к. непонятно, как отличить наличие объекта от его отсутствия (т.е. если ты сам освещаешь себе путь ИК-лампой и рассматриваешь большой уровень сигнала с приемника как препятствие (отражение от него света вызывает этот большой уровень), то тогда просто лампу или дневной свет твой бот будет также расценивать как препятствие, в то время как на темный (для ИК лучей) предмет спокойно ехать).
В то же время при работе с УЗ ты будешь посылать УЗ сигнал и смотреть не на уровень, который получен приемником, а на время, через которое ты его получил - таким образом ты сможешь определять расстояние до ближайшего препятствия - это и будет простейшая модель радара, которую может быть и реально собрать в домашних условиях. (скорость звука - около 350 м/с, так что 1 метр (а это 0,5 до препятствия и 0,5 обратно) звук пройдет за приблизительно 3 мс, что достаточно легко измерить и посчитать).
Кстати, вот те самые Bat, о которых ты говоришь ниже (the bat) летают именно на ультразвуке.
> использовать кряк не советуйте, это же неинтересно
Это похоже на занятие сексом в противогазе...
> и послать ему сообщение WM_LBUTTONDOWN и WM_LBUTTONUP
Ну в целом так.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 13.08.2003, 19:42
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Здравствуйте, Drahus!
> все высказались против того, что я предложил
Я ответил не так!
Я не против и не за. Мне всё равно!
Я вообще отвечаю ради интереса; помню, на один вопрос ни один из
экспертов не ответил конкретно, вот и возмутился, и стал экспертом...
> У вас как я понял на компьютере установлен Линух
Пока нет! Но скоро обязательно!
> Linux будет нормально, без тормозов
Любая! Зависит от потребностей!
> как "глаза"
Свет можно использовать...
ПЗУ - делай управление через PIC!
> о регистрации само закрывалось
Используй мою программу PressButton.
URL=http://eggo.to.kg/thebat/
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Евгений Иванов
Отвечает Евгений Иванов
Здравствуйте, Drahus!
> все высказались против того, что я предложил
Я ответил не так!
Я не против и не за. Мне всё равно!
Я вообще отвечаю ради интереса; помню, на один вопрос ни один из
экспертов не ответил конкретно, вот и возмутился, и стал экспертом...
> У вас как я понял на компьютере установлен Линух
Пока нет! Но скоро обязательно!
> Linux будет нормально, без тормозов
Любая! Зависит от потребностей!
> как "глаза"
Свет можно использовать...
ПЗУ - делай управление через PIC!
> о регистрации само закрывалось
Используй мою программу PressButton.
URL=http://eggo.to.kg/thebat/
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Евгений Иванов
Отвечает Lynx
Доброе время суток, Drahus!
Отвечаю только про "глаза". Я никогда не занимался роботехникой, но желание было. :))) Попробуй смаздрякать какой нить излучатель ультраволн и микрофончик. :)))
Ещё одна бредовая идея: лампочку (остронаправленый пучок света) и фотодиод! :))) (Ну это ночной вариант!)
Ответ отправлен: 15.08.2003, 17:05
Отправитель: Lynx
Вопрос № 3908 |
Ув. тов. эксперты.
Я гружусь с дискеты (RealMode).
При этом прерывание 10h (ah=4f02) (VESA SVGA) bx=103h приводит к выключению монитора.
Я особо в реал. и защищ. режимах не очень рублю, но думаю, что это из-за того, что проц. находится не в защищ. режиме. Подскажите, пожалуйста, как в него перейти!
Заранее спасибо!
Вопрос отправлен: 13.08.2003, 14:18
Отправитель: CODERator
[Следующий вопрос >>] [Список вопросов]
Отвечает Eugene
Добрый день, CODERator!
В защищённом режиме этоже прерывание будет приводить к перезагрузке компа. А кстати, зачем тебе в защищённый режим надо?
Ответ отправлен: 13.08.2003, 14:41
Отправитель: Eugene
Отвечает Broken Sword
Приветствую Вас, CODERator!
не, это тут не при чем. просто видеокарта старая и не держит такой режим
Ответ отправлен: 13.08.2003, 14:52
Отправитель: Broken Sword
Отвечает Tigran K. Kalaidjian
Добрый день, CODERator!
Защищенный режим тут не причём, однозначно.
Вы бы прислали свою программу что ли, чтобы понять где там ошибка...
Напишите на kalaidjian@pochtamt.ru и я Вам вышлю документы на тему программирования SVGA в режиме 256, работающие примеры, а также примеры перехода в PM(хотя это тут ни при чем, но раз уж интересно =) ).
Ответ отправлен: 13.08.2003, 15:24
Отправитель: Tigran K. Kalaidjian
Отвечает Greys
Добрый день, CODERator!
>10h (ah=4f02) (VESA SVGA) bx=103h
Как я понял вы пытаетесь установить SuperVGA видеорежим(текстовый). Но меня смущает текстовый режим который вы выбрали, если учесть тот факт, что в 15 бите установлен 0, т.е. видеопамять будет очищаться,то номер режима 100000011b не используется, на сколько мне известно используются следующие режимы:80x60 (режим 108h), 132x25 (109h), 132x43 (10Ah), 132x50 (10Bh), 132x60 (10Ch)!
Попробуй bx=108h и все должно получиться. А в защищенный режим лучше пока не лезь (там дескрипторы, селекторы, таблицы локальных и глобальных дескрипторов). Страшно, но ты не бойся я сам боялся, но потом немного приспособился. Пиши пока для реального режима: он проше в понимании. Поняв реальный режим-поймешь и защищенный. В реальном ведь только сегмент:смещение, а значит не надо особо мудрить с моделью памяти(хотя и в защищенном...).
А вот насчет того, что ты с дискеты загружаешься и защищенного. По этому вопросу можешь обращаться, я последнее время пишу свою ОС (очень помогает в понимании функционировании компа, точнее его элементов, вот здесь поймешь и реальный,и материальный режимы проца. Насчет материального я, конечно, пошутил, но в каждой шутки есть доля правды, а в правде сила, а сила в Ньютонах!!!).
Если, что надо пиши на ic_box_mail@mail.ru или сюда в рассылку.
Ответ отправлен: 14.08.2003, 00:53
Отправитель: Greys
Отвечает Greys
Добрый день, CODERator!
>10h (ah=4f02) (VESA SVGA) bx=103h
Как я понял вы пытаетесь установить SuperVGA видеорежим(текстовый). Но меня смущает текстовый режим который вы выбрали, если учесть тот факт, что в 15 бите установлен 0, т.е. видеопамять будет очищаться,то номер режима 100000011b не используется, на сколько мне известно используются следующие режимы:80x60 (режим 108h), 132x25 (109h), 132x43 (10Ah), 132x50 (10Bh), 132x60 (10Ch)!
Попробуй bx=108h и все должно получиться. А в защищенный режим лучше пока не лезь (там дескрипторы, селекторы, таблицы локальных и глобальных дескрипторов). Страшно, но ты не бойся я сам боялся, но потом немного приспособился. Пиши пока для реального режима: он проше в понимании. Поняв реальный режим-поймешь и защищенный. В реальном ведь только сегмент:смещение, а значит не надо особо мудрить с моделью памяти(хотя и в защищенном...).
А вот насчет того, что ты с дискеты загружаешься и защищенного. По этому вопросу можешь обращаться, я последнее время пишу свою ОС (очень помогает в понимании функционировании компа, точнее его элементов, вот здесь поймешь и реальный,и материальный режимы проца. Насчет материального я, конечно, пошутил, но в каждой шутки есть доля правды, а в правде сила, а сила в Ньютонах!!!).
Если, что надо пиши на ic_box_mail@mail.ru или сюда в рассылку.
Ответ отправлен: 14.08.2003, 00:54
Отправитель: Greys
Отвечает _vt
Доброе время суток, CODERator!
Нет, это не из-за этого... Проверь, правильные ли ты функции вызываешь? Например, не ah=4f02 , а ax=4f02h
---===*** E-Man - forever! Win2k - forever! WinXP - must die!***===---
Ответ отправлен: 14.08.2003, 04:49
Отправитель: _vt
Отвечает ASMодей
Здравствуйте, CODERator!
Видеорежимы SVGA вполне можно использовать и в реальном режиме работы процессора. Просто перед переключением в нужный режим стоит проверить, поддерживает ли видеокарта этот режим (с помощью функции 4F00h).
Ответ отправлен: 14.08.2003, 08:02
Отправитель: ASMодей
Вопрос № 3909 |
Доброго времени суток
Как получить изображение?
то есть: я открыл бмп-шный файл, загрузил данные из него, настроил указатели, SetDIBitsToDevice - отборазил.
потом эту картинку растянул StretchDIBits. А как теперь "забрать" уже растянутое изображение с устройства назад- мне с этой увеличенной картинкой еще надо поработать.
Может есть что-то типа GetDIBitsFromDevice ? GetDIBits загружает картинку с битового образа, но как его "вытянуть" из устройства я тоже не знаю.
спасибо
Вопрос отправлен: 13.08.2003, 15:22
Отправитель: вова
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, вова!
А что тебе не подходит в GetDIBits? Она вроде и вытаскивает писксели из картинки в память.
Еще можно создать DIBSection, подключить ее в CompatibleDC, после чего скопировать туда изображение и в DIBSection будут требуемые данные.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 13.08.2003, 19:43
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Приветствую Вас, вова!
Рисуй на совместимом DC (в памяти), а потом оттуда бери свою картинку...
Ответ отправлен: 14.08.2003, 12:00
Отправитель: Евгений Иванов
Вопрос № 3911 |
Здравствуйте, уважаемые эксперты. Решил написать программу, при запуске которой она пишет текущую дату и время в определенный файл. Самое интересное заключается в том, что после прерывания 1ah, разделить 2003h на 10h не совсем получается, TD и Afdpro говорят, что деление на нуль. А если изменить программу, убрать получение даты, то все нормально делится. Что это такое? Спасибо.
Приложение:
Вопрос отправлен: 13.08.2003, 16:43
Отправитель: a1 (a111_666@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Алексей
Доброе время суток, a1!
Чтобы разделить на 16, достаточно сдвинуть вправо на 4 разряда(16=2**4)
mov ax,2003
shr ax,4
В твоём случае ошибка возникает, т.к. ты не обнулил перед делением dx. Ведь делимое находится в паре dx:ax!
Приложение:
Ответ отправлен: 13.08.2003, 17:05
Отправитель: Алексей
Отвечает Ayl
Доброе время суток, a1!
Элементарно, Ватсон! После вызова прерывания 1ah в регистре DX находятся месяц и день. Т.е. он не пустой.
Допустим, для сегодняшней даты регистр DX будет равен 0813h (числа в BCD формате). При выполнении команды div bx производится деление значения в паре DX:AX на значение в регистре BX. Т.е. делится число 08132003h на 10h. Результат:
00813200h - частное, 0003h - остаток. Но частное должно быть помещено в регистр AX. Максимальное значение в регистре AX может быть FFFFh, что меньше, чем 00813200h. Отсюда и "деление на 0". Эта ошибка генерируется не только, когда производится реальное деление на 0, но и тогда, когда результат деления не помещается в регистре. Т.е. при делении очень большого числа на маленькое.
Для исправления нужно обнулить регистр DX. Например, вот такой код будет выполнен правильно:
Приложение:
Ответ отправлен: 13.08.2003, 17:08
Отправитель: Ayl
Отвечает Eugene
Добрый день, a1!
Можешь вместо обнуления DX, как тебе советовали, использовать команду DIV BL. Тогда делится только AX без DX.
Ответ отправлен: 13.08.2003, 18:03
Отправитель: Eugene
Отвечает St
Привет, a1!
Вы не обнулили DX, возможно что там находится большое число и результат деления содержимого DX:AX на 10H не помещается в AX. Кстати делить/умножать на числа кратные 2 (в том числе и 16(10H=16)) можно с помощью команды SHR/SHL - сдвиг битов числа (правда при делении теряется остаток).
St
Ответ отправлен: 13.08.2003, 19:45
Отправитель: St
Отвечает Bob Johnson
Доброе время суток, a1!
Это то, что ты забыл обнулить dx перед делением:
xor dx, dx
div bx
Так как div делит dx:ax на число.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Bob Johnson
Отвечает Bob Johnson
Доброе время суток, a1!
Это то, что ты забыл обнулить dx перед делением:
xor dx, dx
div bx
Так как div делит dx:ax на число.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Bob Johnson
Отвечает Bob Johnson
Доброе время суток, a1!
Это то, что ты забыл обнулить dx перед делением:
xor dx, dx
div bx
Так как div делит dx:ax на число.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Bob Johnson
Отвечает Bob Johnson
Доброе время суток, a1!
Это то, что ты забыл обнулить dx перед делением:
xor dx, dx
div bx
Так как div делит dx:ax на число.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 00:53
Отправитель: Bob Johnson
Отвечает Bob Johnson
Доброе время суток, a1!
Это то, что ты забыл обнулить dx перед делением:
xor dx, dx
div bx
Так как div делит dx:ax на число.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 00:53
Отправитель: Bob Johnson
Отвечает Greys
Добрый день, a1!
Когда бы вы не производили деление до вызова прерывания, после или вместо участок кода:
1)mov ax,2003h
2)mov bx,10h
3)div bx
вызовит исключение #DE. Но вот насчет деления на ноль ребята немного погарячились, ведь заменив 10h на 12h или 13h все равно произойдет исключение.
Здесь дело в переполнении. Чтобы избежать этого перед делением обнули регистр DX, в который будет помещен остаток от деления(xor dx,dx)! Выглядит парадоксально, но мне это помогло когда-то.
С уважением,Greys!
Приложение:
Ответ отправлен: 14.08.2003, 01:53
Отправитель: Greys
Отвечает _vt
Добрый день, a1!
Логика div: если размер операнда byte(div bh), то делится ax на bh, а если word (div bx), то делимым будет пара регистров dx:ax, т.е. твой случай! Если ты до деления ничего не записывал в dx, то разделится нормально - ax на dx, а после вызова int 1ah у меня dx=0813 (13 августа сегодня!), поэтому разделить 08132003h на 10h процессор не может: Divide Overflow (переполнение, а не деление на ноль!)...
---===*** E-Man - forever! Win2k - forever! WinXP - must die!***===---
Ответ отправлен: 14.08.2003, 04:50
Отправитель: _vt
Отвечает Beeblebrox
Приветствую Вас, a1!
А чему у тебя равно DX?
DX:AX/BX может вызвать переполнение
Ответ отправлен: 14.08.2003, 09:42
Отправитель: Beeblebrox
Отвечает Tigran K. Kalaidjian
Приветствую Вас, a1!
int 1ah заполняет dx следующим образом:
DH = month (BCD)
DL = day (BCD)
Если мы применяем команду DIV для деления на слово (как у Вас), то делится двойное слово из пары DX:AX. Результат может не "вместиться" в ax
Попробуйте один из следующих методов:
1. sub dx, dx ;чистим dx
div bx
2. div bl
в этом случае присходит деление AX на BL, а не пары DX:AX на BX
Ответ отправлен: 14.08.2003, 10:34
Отправитель: Tigran K. Kalaidjian
Отвечает Евгений Иванов
Доброе время суток, a1!
Должно работать...
Ищи ошибку в другом месте...
Ответ отправлен: 14.08.2003, 12:01
Отправитель: Евгений Иванов
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (38) C / C++ (29) Perl (3) Builder / Delphi (21) Pascal (28) Basic / VBA (12) Java / JavaScript (8) PHP (7) Криптография (10) WinAPI (18) |
Пользователю Windows 95/98/Me (47) Windows NT/2000/XP (57) "Железо" (43) Поиск информации (26) |
Администратору Windows NT/2000/XP (26) Linux / Unix (11) |
Юристу Гражданское право (10) Семейное право (6) Трудовое право (7) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||