При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 047 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-08-01
Вопрос №402
оПХБЕР, щЙЯОЕПР.
ъ УНРЕК ЯДЕКЮРЭ Б ОЮКХРЕПЕ ЦПЮДХЕМР НР ВЕПМНЦН Й АЕКНЛС Б ПЕФХЛЕ 13h.
бНР ЙСЯНЙ ОПНЦПЮЛЛШ:
mov al,0
mov dx,3C8h
out dx,al
mov dx,3C9h
@1:
out dx,al
out dx,al
out dx,al
inc al
jne @1
мН ОЮКХРПЮ ОНВЕЛС-РН МЕ ЛЕМЪЕРЯЪ Х НЯРЮЕРЯЪ ЙЮЙ АШКЮ.
оНЛНЦХРЕ, ОНФЮКСИЯРЮ.
Ответ
(KOI-8R КОИ-8Р)
Hello, Stepan Yar!
Таблица цветов VGA - это 256 регистров, в каждом
из которых записаны три 6-битных числа,
(так как_6_бит_значит_это_максимум_от_0_до_63, а не 0..255, сделай более очивидный цикл, с помощью loop, например)
соответствующих уровням красного, зеленого и синего
цветов.
Для записи в эти регистры используют порты 03C8h и
03С9h. Сначала надо записать в 03С8h байт-индекс, что
!!! Да, и ещё: эту операцию нельзя прерывать, т.е. нужно запретить прерывания!!! Ниже прога, не оптимизирована конечно, но...
переведет Таблицу в режим записи.
mov dx,03C8h
mov al,0 ;индекс регистра с которго начинаем
out dx,al
Затем запиывать сами данные: на каждый регистр
требуется три операции записи, перемещающие три 6-
битных значения уровня цвета - красный, зеленый и
синий. После третей операции записи индекс текущего
регистра палитры инкрементируется, по этому можно
записывать сразу в несколько регистров. Пременяют
команду outsb.
mov dx,03C9h
mov cx,256*3 ;Перепишем всю Таблицу
rep outsb
Приложение:
Вопрос №404
Здравствуйте!
Повторяю вопрос, может, кто поможет из новых экспертов
Кто-то программировал USB?
Помогите плз, хоть чем-то...
Ответ
Здравствуйте, Sensey!
Если на этот вопрос так никто и не ответит, то могу посоветовать самостоятельно почитать доки по USB.
USB Programming tools:
http://www.cypress.com/design/progprods/usb/usbprog.html
USB Central:
http://www.lvr.com/usb.htm
Да, и на какой стадии, собственно, нужна помощь? С какой целью программируется USB - своё устройство, чужое устройство с драйвером или без него?
Вопрос №405
Как перевести шестнадцатиричное число из EAX в десятичное и вывести его на экран? спорим половина из вас думает что это как два байта обнулить, а когда возьметесь круто облажаетесь ? ;) кто сможет, тот настоящий эксперт!!!! вперед!!! ;)
Ответ
Здравствуйте, George Stobbart!
Пожалуйста...
Только почему-то в реальном режиме cdq плохо работает...
А-а-а... тормоз я... :)
cdq же знаковая команда!!! а div я беззнаковый юзаю.
Ну вот короче.
вывод unsigned из eax.
Приложение:
Вопрос №406
Привет, Эксперт.
Я продолжаю всяческие любопытные извращения с видеопамятью и контроллером ЭЛТ (3C8h..). Я думаю, что не один я этим занимаюсь. Поэтому сей вопрос. Есть ли у кого готовые палитры для 13h режима? Или может кто знает, где их можно взять?
Ответ
Hello, Stepan Yar!
б ЮФП ФЩ РПДТБЪХНЕЧБЕЫШ РПД ЗПФПЧЩНЙ РБЙФТБНЙ?
рБУЛБШ ЪОБЕЫШ? уДЕБК РТПЗХ, ЛПФПТБС ВХДЕФ ЗЕОЕТЙТПЧБФШ ЧУСЮЕУЛЙЕ ЗТБДЙЕОФОЩЕ РБЙФТЩ УБНБ...
иПЮХ РТЕДПУФЕТЕЮ: ОЕ УМЙЫЛПН ЬЛУРЕТЕНЕОФЙТХК У гбр ьмф, ЕУМЙ ОЕ ЪОБЕЫШ ЧУЕИ ЖХОЛГЙК, ЬФП НПЦЕФ РМПИП ЛПОЮЙФШУС, ОБРТЙНЕТ, ЧЩЦЗЕЫШ ОЕУЛПМШЛП (ПФ 1 ДП ЧУЕИ) РЙЛУЕМЕК ОБ ЬЛТБОЕ, ФПЗДБ НПОЙЛ - ОБ УЧБЛХ ЙМЙ НПЦЕЫШ УРБМЙФШ ЛБДТПЧЙЛ.
Вопрос №406
Привет, Эксперт.
Я продолжаю всяческие любопытные извращения с видеопамятью и контроллером ЭЛТ (3C8h..). Я думаю, что не один я этим занимаюсь. Поэтому сей вопрос. Есть ли у кого готовые палитры для 13h режима? Или может кто знает, где их можно взять?
Ответ
Здравствуйте, Stepan Yar!
Hello, Stepan Yar!
В ажр жэ трдфвяиоеювещы трд ържрюэок твкжфвок?
Твхмвы япвещы? Хдевл тфръи, мржрфву чидеж ъепефкфрювжы юхуаехмке ъфвдкепжпэе твкжфэ хвов...
Йраи тфедрхжефеа: пе хнкщмро шмхтефеоепжкфил х ЗВТ ШНЖ, ехнк пе япвещы юхей ципмзкл, шжр оргеж тнрйр мрпакжыху, пвтфкоеф, юэгъещы пехмрнымр (рж 1 др юхей) ткмхенел пв шмфвпе, жръдв орпкм - пв хювми кнк оргещы хтвнкжы мвдфрюкм.
Вопрос №406
Привет, Эксперт.
Я продолжаю всяческие любопытные извращения с видеопамятью и контроллером ЭЛТ (3C8h..). Я думаю, что не один я этим занимаюсь. Поэтому сей вопрос. Есть ли у кого готовые палитры для 13h режима? Или может кто знает, где их можно взять?
Ответ
Здравствуйте, Stepan Yar!
Да что ты подеаешь, закоебался, посылаю в кои8, а оно не так, посылаю в кириллице, а оно опять не так!!!
Снова пробую послать:
1)Сдеай прогу на чем-нибудь вроде паскаля, которая тебе будет разные градиентные палитры гинерировать.
2)Не сожги ЭЛТ, если всех функций контроллера ЦАП ЭЛТ не знаешь можно моник поджечь: или пикселы выгорчят или развертка рухнет.
Вопрос №398
Хай ол!
Кто знает как считать Sin(x) & Cos(x) на тасме?
(Можно с юзанием Co-processor)
Пасибо.
Ответ
Здравствуйте, Alex2000!
Есть такие команды у сопра: fsin, fcos и fsincos. Последняя вычисляет и то и другое и помещает соответственно в st(1) и st(0).
Приложение:
Вопрос №401
Приветик.
Вопрос. Есть ли у сопроцессора команда записи в ST непосредственного значения?
Ответ
Здравствуйте, Оксана!
Такой команды нет (мне она не известна).
Вопрос №405
Как перевести шестнадцатиричное число из EAX в десятичное и вывести его на экран? спорим половина из вас думает что это как два байта обнулить, а когда возьметесь круто облажаетесь ? ;) кто сможет, тот настоящий эксперт!!!! вперед!!! ;)
Ответ
Здравствуйте, George Stobbart!
Ну, лови прогу. Возможно ее надо было бы еще оптимизировать. Но для начала подойдет.
Приложение:
Вопрос №408
Я установил Internet Explorer 5.0 и столкнулся вот с какой проблемой: при попытке сохранить какую-либо страницу на винчестере вместе с картинками (т.е. полностью) она почему-то повторно загружается с сервера, хотя уже была загружена в браузере, т.е. при сохранении я должен быть в on-line и толко тогда ее можно сохранить полностью. Можно ли что-либо сделать для того, чтобы сохранить уже загруженную страницу вместе с картинками в off-line?
Ответ
Здравствуйте, Денис!
После загрузки страницы выбери "Работать автономно" в меню "Файл"
и сохраняй
Вопрос №408
ъ СЯРЮМНБХК Internet Explorer 5.0 Х ЯРНКЙМСКЯЪ БНР Я ЙЮЙНИ ОПНАКЕЛНИ: ОПХ ОНОШРЙЕ ЯНУПЮМХРЭ ЙЮЙСЧ-КХАН ЯРПЮМХЖС МЮ БХМВЕЯРЕПЕ БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ (Р.Е. ОНКМНЯРЭЧ) НМЮ ОНВЕЛС-РН ОНБРНПМН ГЮЦПСФЮЕРЯЪ Я ЯЕПБЕПЮ, УНРЪ СФЕ АШКЮ ГЮЦПСФЕМЮ Б АПЮСГЕПЕ, Р.Е. ОПХ ЯНУПЮМЕМХХ Ъ ДНКФЕМ АШРЭ Б on-line Х РНКЙН РНЦДЮ ЕЕ ЛНФМН ЯНУПЮМХРЭ ОНКМНЯРЭЧ. лНФМН КХ ВРН-КХАН ЯДЕКЮРЭ ДКЪ РНЦН, ВРНАШ ЯНУПЮМХРЭ СФЕ ГЮЦПСФЕММСЧ ЯРПЮМХЖС БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ Б off-line?
Ответ
гДПЮБЯРБСИРЕ, дЕМХЯ!
мЮЯЙНКЭЙН ЛМЕ ХГБЕЯРМН, МЕР.
Вопрос №409
ъ СЯРЮМНБХК Internet Explorer 5.0 Х ЯРНКЙМСКЯЪ БНР Я ЙЮЙНИ ОПНАКЕЛНИ: ОПХ ОНОШРЙЕ ЯНУПЮМХРЭ ЙЮЙСЧ-КХАН ЯРПЮМХЖС МЮ БХМВЕЯРЕПЕ БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ (Р.Е. ОНКМНЯРЭЧ) НМЮ ОНВЕЛС-РН ОНБРНПМН ГЮЦПСФЮЕРЯЪ Я ЯЕПБЕПЮ, УНРЪ СФЕ АШКЮ ГЮЦПСФЕМЮ Б АПЮСГЕПЕ, Р.Е. ОПХ ЯНУПЮМЕМХХ Ъ ДНКФЕМ АШРЭ Б on-line Х РНКЙН РНЦДЮ ЕЕ ЛНФМН ЯНУПЮМХРЭ ОНКМНЯРЭЧ. лНФМН КХ ВРН-КХАН ЯДЕКЮРЭ ДКЪ РНЦН, ВРНАШ ЯНУПЮМХРЭ СФЕ ГЮЦПСФЕММСЧ ЯРПЮМХЖС БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ Б off-line?
Ответ
гДПЮБЯРБСИРЕ, дЕМХЯ!
мЮЯЙНКЭЙН ЛМЕ ХГБЕЯРМН, МЕР.
Вопрос №410
Уважаемые эксперты, помогите!
Я еще нахожусь в самом начале обучения.
Не ассемблируется программа (прилагается), с предыдущими программами все было нормально, пользуюсь TASM'ом из DOS Navigatora, текст его ругательств прилагается.
Может быть проглядел чего, но найти не могу.
Ответ
Здравствуйте, electronic!
Он тебе говорит что ты пытаешься сделать ближний переход
в другой сегмент кода.
Возможно ты забыл assume cs:CSEG, это надо сразу за CSEG segment.
И на хрена тебе org 100h ?
Ты что, в com'мы компилишь ?
Вопрос №407
Здравствуйте, эксперты!
Как в Tasm'е передать управление в другой сегмент кода и какую модель памяти при этом использовать?
Ответ
Здравствуйте, ORLANDO!
Передать управление можно при помощи jmp, пример:
jmp far ptr имя_метки
При этом метка должна быть определена (в другом сегменте кода)
как "имя_метки label far (заметь, без двоеточия)" а перед этим
(тоже в другом сегменте кода) должна быть обьявлена видимой
для внешних программ "public имя_метки"
В той програме которая вызывает переход надо обьявить эту метку
внешней "extrn имя_метки" и вызвать её.
Возможен вариант когда адрес метки загоняют в регистр:
data segment
addr_m1 dd m1 ;в addr_m1 значение смещения и
;адреса сегмента метки m1
...
data ends
code_1 sement
...
lea bx,addr_m1
jmp dword ptr [bx]
...
code_1 ends
code_2 segment
...
m1 label far
mov ax,bx
...
code_2 ends
Замечу что extrn и public применяются если программа линкуется из нескольких
обьектных файлов.
Другой способ call
Здесь всё тоже самое: в сегменте кода, где пишется тело процедуры,
она обьявляется видимой public имя_процедуры, при этом описание
процедуры начинается с имя_процедуры proc far ....
В другом, где она вызывается, эта процедура обьявлется внешней
extrn имя_процедуры:far и вызывается call far ptr имя_процедуры
Вопрос №410
Уважаемые эксперты, помогите!
Я еще нахожусь в самом начале обучения.
Не ассемблируется программа (прилагается), с предыдущими программами все было нормально, пользуюсь TASM'ом из DOS Navigatora, текст его ругательств прилагается.
Может быть проглядел чего, но найти не могу.
Ответ
Здравствуйте, electronic!
Возможно ты забыл assume cs:CSEG, это надо сразу за CSEG segment.
И на хрена тебе org 100h ?
Ты что, в com'мы компилишь ?
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
http://subscribe.ru/
E-mail: ask@subscribe.ru | Отписаться | Рейтингуется SpyLog |
В избранное | ||