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

Ассемблер? Это просто! Учимся программировать (FAQ)


Служба Рассылок Subscribe.Ru проекта Citycat.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

Приложение:


Отправил эксперт: Alex2000
Эксперт отправил ответов (всего): 2

Экспертная группа: нАЫХЕ БНОПНЯШ ОН ОПНЦПЮЛЛХПНБЮМХЧ МЮ юЯЯЕЛАКЕПЕ ОНД DOS

Вопрос №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 - своё устройство, чужое устройство с драйвером или без него?


Отправил эксперт: AVC
Эксперт отправил ответов (всего): 8

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №405

Как перевести шестнадцатиричное число из EAX в десятичное и вывести его на экран? спорим половина из вас думает что это как два байта обнулить, а когда возьметесь круто облажаетесь ? ;) кто сможет, тот настоящий эксперт!!!! вперед!!! ;)

Ответ

Здравствуйте, George Stobbart!

Пожалуйста...
Только почему-то в реальном режиме cdq плохо работает...
А-а-а... тормоз я... :)
cdq же знаковая команда!!! а div я беззнаковый юзаю.

Ну вот короче.
вывод unsigned из eax.

Приложение:


Отправил эксперт: Dron
Эксперт отправил ответов (всего): 45

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №406

Привет, Эксперт.

Я продолжаю всяческие любопытные извращения с видеопамятью и контроллером ЭЛТ (3C8h..). Я думаю, что не один я этим занимаюсь. Поэтому сей вопрос. Есть ли у кого готовые палитры для 13h режима? Или может кто знает, где их можно взять?

Ответ

Hello, Stepan Yar!
б ЮФП ФЩ РПДТБЪХНЕЧБЕЫШ РПД ЗПФПЧЩНЙ РБЙФТБНЙ?
рБУЛБШ ЪОБЕЫШ? уДЕБК РТПЗХ, ЛПФПТБС ВХДЕФ ЗЕОЕТЙТПЧБФШ ЧУСЮЕУЛЙЕ ЗТБДЙЕОФОЩЕ РБЙФТЩ УБНБ...
иПЮХ РТЕДПУФЕТЕЮ: ОЕ УМЙЫЛПН ЬЛУРЕТЕНЕОФЙТХК У гбр ьмф, ЕУМЙ ОЕ ЪОБЕЫШ ЧУЕИ ЖХОЛГЙК, ЬФП НПЦЕФ РМПИП ЛПОЮЙФШУС, ОБРТЙНЕТ, ЧЩЦЗЕЫШ ОЕУЛПМШЛП (ПФ 1 ДП ЧУЕИ) РЙЛУЕМЕК ОБ ЬЛТБОЕ, ФПЗДБ НПОЙЛ - ОБ УЧБЛХ ЙМЙ НПЦЕЫШ УРБМЙФШ ЛБДТПЧЙЛ.


Отправил эксперт: Alex2000
Эксперт отправил ответов (всего): 3

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №406

Привет, Эксперт.

Я продолжаю всяческие любопытные извращения с видеопамятью и контроллером ЭЛТ (3C8h..). Я думаю, что не один я этим занимаюсь. Поэтому сей вопрос. Есть ли у кого готовые палитры для 13h режима? Или может кто знает, где их можно взять?

Ответ

Здравствуйте, Stepan Yar!
Hello, Stepan Yar!
В ажр жэ трдфвяиоеювещы трд ържрюэок твкжфвок?
Твхмвы япвещы? Хдевл тфръи, мржрфву чидеж ъепефкфрювжы юхуаехмке ъфвдкепжпэе твкжфэ хвов...
Йраи тфедрхжефеа: пе хнкщмро шмхтефеоепжкфил х ЗВТ ШНЖ, ехнк пе япвещы юхей ципмзкл, шжр оргеж тнрйр мрпакжыху, пвтфкоеф, юэгъещы пехмрнымр (рж 1 др юхей) ткмхенел пв шмфвпе, жръдв орпкм - пв хювми кнк оргещы хтвнкжы мвдфрюкм.


Отправил эксперт: Alex2000
Эксперт отправил ответов (всего): 4

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №406

Привет, Эксперт.

Я продолжаю всяческие любопытные извращения с видеопамятью и контроллером ЭЛТ (3C8h..). Я думаю, что не один я этим занимаюсь. Поэтому сей вопрос. Есть ли у кого готовые палитры для 13h режима? Или может кто знает, где их можно взять?

Ответ

Здравствуйте, Stepan Yar!
Да что ты подеаешь, закоебался, посылаю в кои8, а оно не так, посылаю в кириллице, а оно опять не так!!!
Снова пробую послать:
1)Сдеай прогу на чем-нибудь вроде паскаля, которая тебе будет разные градиентные палитры гинерировать.
2)Не сожги ЭЛТ, если всех функций контроллера ЦАП ЭЛТ не знаешь можно моник поджечь: или пикселы выгорчят или развертка рухнет.


Отправил эксперт: Alex2000
Эксперт отправил ответов (всего): 5

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №398

Хай ол!
Кто знает как считать Sin(x) & Cos(x) на тасме?
(Можно с юзанием Co-processor)
Пасибо.

Ответ

Здравствуйте, Alex2000!
Есть такие команды у сопра: fsin, fcos и fsincos. Последняя вычисляет и то и другое и помещает соответственно в st(1) и st(0).

Приложение:


Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 12

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №401

Приветик.

Вопрос. Есть ли у сопроцессора команда записи в ST непосредственного значения?

Ответ

Здравствуйте, Оксана!
Такой команды нет (мне она не известна).


Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 14

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №405

Как перевести шестнадцатиричное число из EAX в десятичное и вывести его на экран? спорим половина из вас думает что это как два байта обнулить, а когда возьметесь круто облажаетесь ? ;) кто сможет, тот настоящий эксперт!!!! вперед!!! ;)

Ответ

Здравствуйте, George Stobbart!

Ну, лови прогу. Возможно ее надо было бы еще оптимизировать. Но для начала подойдет.

Приложение:


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 7

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №408

Я установил Internet Explorer 5.0 и столкнулся вот с какой проблемой: при попытке сохранить какую-либо страницу на винчестере вместе с картинками (т.е. полностью) она почему-то повторно загружается с сервера, хотя уже была загружена в браузере, т.е. при сохранении я должен быть в on-line и толко тогда ее можно сохранить полностью. Можно ли что-либо сделать для того, чтобы сохранить уже загруженную страницу вместе с картинками в off-line?

Ответ

Здравствуйте, Денис!
После загрузки страницы выбери "Работать автономно" в меню "Файл"
и сохраняй


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 39

Экспертная группа: Пользовательская работа с Windows

Вопрос №408

ъ СЯРЮМНБХК Internet Explorer 5.0 Х ЯРНКЙМСКЯЪ БНР Я ЙЮЙНИ ОПНАКЕЛНИ: ОПХ ОНОШРЙЕ ЯНУПЮМХРЭ ЙЮЙСЧ-КХАН ЯРПЮМХЖС МЮ БХМВЕЯРЕПЕ БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ (Р.Е. ОНКМНЯРЭЧ) НМЮ ОНВЕЛС-РН ОНБРНПМН ГЮЦПСФЮЕРЯЪ Я ЯЕПБЕПЮ, УНРЪ СФЕ АШКЮ ГЮЦПСФЕМЮ Б АПЮСГЕПЕ, Р.Е. ОПХ ЯНУПЮМЕМХХ Ъ ДНКФЕМ АШРЭ Б on-line Х РНКЙН РНЦДЮ ЕЕ ЛНФМН ЯНУПЮМХРЭ ОНКМНЯРЭЧ. лНФМН КХ ВРН-КХАН ЯДЕКЮРЭ ДКЪ РНЦН, ВРНАШ ЯНУПЮМХРЭ СФЕ ГЮЦПСФЕММСЧ ЯРПЮМХЖС БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ Б off-line?

Ответ

гДПЮБЯРБСИРЕ, дЕМХЯ!
мЮЯЙНКЭЙН ЛМЕ ХГБЕЯРМН, МЕР.


Отправил эксперт: яРЮЯ
Эксперт отправил ответов (всего): 4

Экспертная группа: оНКЭГНБЮРЕКЭЯЙЮЪ ПЮАНРЮ Я Windows

Вопрос №409

ъ СЯРЮМНБХК Internet Explorer 5.0 Х ЯРНКЙМСКЯЪ БНР Я ЙЮЙНИ ОПНАКЕЛНИ: ОПХ ОНОШРЙЕ ЯНУПЮМХРЭ ЙЮЙСЧ-КХАН ЯРПЮМХЖС МЮ БХМВЕЯРЕПЕ БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ (Р.Е. ОНКМНЯРЭЧ) НМЮ ОНВЕЛС-РН ОНБРНПМН ГЮЦПСФЮЕРЯЪ Я ЯЕПБЕПЮ, УНРЪ СФЕ АШКЮ ГЮЦПСФЕМЮ Б АПЮСГЕПЕ, Р.Е. ОПХ ЯНУПЮМЕМХХ Ъ ДНКФЕМ АШРЭ Б on-line Х РНКЙН РНЦДЮ ЕЕ ЛНФМН ЯНУПЮМХРЭ ОНКМНЯРЭЧ. лНФМН КХ ВРН-КХАН ЯДЕКЮРЭ ДКЪ РНЦН, ВРНАШ ЯНУПЮМХРЭ СФЕ ГЮЦПСФЕММСЧ ЯРПЮМХЖС БЛЕЯРЕ Я ЙЮПРХМЙЮЛХ Б off-line?

Ответ

гДПЮБЯРБСИРЕ, дЕМХЯ!
мЮЯЙНКЭЙН ЛМЕ ХГБЕЯРМН, МЕР.


Отправил эксперт: яРЮЯ
Эксперт отправил ответов (всего): 5

Экспертная группа: оНКЭГНБЮРЕКЭЯЙЮЪ ПЮАНРЮ Я Windows

Вопрос №410

Уважаемые эксперты, помогите!
Я еще нахожусь в самом начале обучения.
Не ассемблируется программа (прилагается), с предыдущими программами все было нормально, пользуюсь TASM'ом из DOS Navigatora, текст его ругательств прилагается.
Может быть проглядел чего, но найти не могу.

Ответ

Здравствуйте, electronic!
Он тебе говорит что ты пытаешься сделать ближний переход
в другой сегмент кода.
Возможно ты забыл assume cs:CSEG, это надо сразу за CSEG segment.
И на хрена тебе org 100h ?
Ты что, в com'мы компилишь ?


Отправил эксперт: Autogen
Эксперт отправил ответов (всего): 7

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №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 имя_процедуры


Отправил эксперт: Autogen
Эксперт отправил ответов (всего): 8

Экспертная группа: Работа с MASM/TASM

Вопрос №410

Уважаемые эксперты, помогите!
Я еще нахожусь в самом начале обучения.
Не ассемблируется программа (прилагается), с предыдущими программами все было нормально, пользуюсь TASM'ом из DOS Navigatora, текст его ругательств прилагается.
Может быть проглядел чего, но найти не могу.

Ответ

Здравствуйте, electronic!
Возможно ты забыл assume cs:CSEG, это надо сразу за CSEG segment.
И на хрена тебе org 100h ?
Ты что, в com'мы компилишь ?


Отправил эксперт: Autogen
Эксперт отправил ответов (всего): 9

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Подписаться на рассылки

Рассылки Subscribe.Ru
Ассемблер? Это просто! Учимся программировать
Ассемблер? Это просто! Учимся программировать (FAQ)

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Ведущий рассылки,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

______________

По вопросам сотрудничества, рекламы и спонсорства обращайтесь:

  1. Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
  2. Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
  3. Издание книги (спонсорство): Sponsor@Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное