При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 046 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-07-30
Вопрос №401
Приветик.
Вопрос. Есть ли у сопроцессора команда записи в ST непосредственного значения?
Ответ
Здравствуйте, Оксана!
Может я ошибаюсь но вроде нет таких команд. Единственое
что я знаю о передаче в стэк контант это
fldz загрузка нуля в вершину стэка
fld1 загрузка единицы
fldpi загрузка числа П
fldl2t загрузка двоичного логарифма десяти
fldl2e загрузка двоичного логарифма числа e
fldlg2 загрузка десятичного логарифма двух
fldlf2 загрузка натурального логарифма двух
Вопрос №397
Здравствуйте.
Как можно получить системное время, не используя прерываний.
Если можно, то с исходниками.
Заранее спасибо.
Ответ
Здравствуйте, Павел!
Есть такая штука, называется КМОП память. И в ней хранится системное время и много другой инфы о писюке. Доступ к КМОП осуществляется посредством портов 70h и 71h. В 70h нужно поместить номер байта (нумерация с нуля) и из 71h считать значение из КМОП (из 71h значение в байт)
В 70h: Из 71h:
0h Секунды системного времени
1h Секунды будильника
2h Минуты системного времени
3h Минуты будильника
4h Часы системного времени
5h Часы будильника
6h День недели текущей даты
7h День текущей даты (типа число)
8h Месяц
9h Год
Информация полученая из 71h храниться в BCD числах, в старшей
тетраде (старшие 4 бита) храниться число десятков. В младшей,
соответственно, число единиц.
Время будильника определяет момент времени инициации аппаратного
прерывания irq8, спомощью которого можно автоматически запустить
какую нибудь прогу реального времени т.е. в строго назначеный момент
запускается прога.
Ну и всё. Должен пердупредить, КМОП вещь весьма тормозная. Поэтому
между двумя последовательными обращениями к КМОП, полезно
сделать небольшую паузу.
Вопрос №398
Хай ол!
Кто знает как считать Sin(x) & Cos(x) на тасме?
(Можно с юзанием Co-processor)
Пасибо.
Ответ
Здравствуйте, Alex2000!
Тут есть несколько варианов:
1:Используя таблицы приведения. (самое быстрое)
2:Вычисляя ряды разложения sin и cos (надеюсь все знают матан :/
3:Ну и наконец у сопроцесора есть команды fsin и fcos
Перед тем как их применить исходный угол в радианах надо поместить
в вершину стэка сопроцессора.
Затем fsin или fcos (без параметров), и считать из вершины стэка искомое.
Вопрос №400
Приветик.
А как программно перезагрузить компьютер?
Ответ
Здравствуйте, Оксана!
INT 19 H
ИЛИ JMP 0000:FFFFH
Вопрос №399
Привет.
Подскажите, где я могу достать информацию о стандарте VESA и о его режимах?
Если у кого есть прям на жестком диске, вышлите плз на stepan@hotbox.ru
Ответ
Здравствуйте, Stepan Yar!
iNTERRUPT LIST
Вопрос №397
Здравствуйте.
Как можно получить системное время, не используя прерываний.
Если можно, то с исходниками.
Заранее спасибо.
Ответ
Здравствуйте, Павел!
Переменная БИОС 40h:6Сh длиной 4 байта содержит колво тиков таймера с
начала суток (увеличивается каждые 18 раз в сек)
Переменная 40h:70h - флаг переполнения таймера(перешел через 24 часа)
Вопрос №400
Приветик.
А как программно перезагрузить компьютер?
Ответ
Здравствуйте, Оксана!
Попробуй в переменную БИОСа 40h:72h записать 1234h- по моему оно, хотя не уверен:(
Вопрос №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
мН ОЮКХРПЮ ОНВЕЛС-РН МЕ ЛЕМЪЕРЯЪ Х НЯРЮЕРЯЪ ЙЮЙ АШКЮ.
оНЛНЦХРЕ, ОНФЮКСИЯРЮ.
Ответ
гДПЮБЯРБСИРЕ, Stepan Yar!
дЮ ОПНЯРЪР ЛЕМЪ ЩЙЯОЕПРШ, ЕЯКХ Ъ НЬХАСЯЭ (Ъ ДЮБМН ЩРХЛ ГЮМХЛЮКЯЪ Х БЯЕ ТЮИКШ С ЛЕМЪ ДНЛЮ, Ю ЯЕИВЮЯ Ъ МЮ ПЮАНРЕ)
мЕЯЙНКЭЙН ГЮЛЕРНЙ:
1)оН-ЛНЕЛС Б ОНПР 3c9h ОНЯШКЮЕРЯЪ 4-Е АЮИРЮ
L-R-G-B, L - МЕ ЧГЮЕРЯЪ.
2)mov al,0- РСР РНВМН ДНКФЕМ АШРЭ МНКЭ?
бНАЫЕЛ Ъ ОНЯЛНРПЧ ДНЛЮ ХЯУНДМХЙ НДМНИ ЛНЕИ ДПЕБМЕИ ОПНЦХ_РЮЛ_ЩРН_ЕЯРЭ--РНЦДЮ Ъ ОПХЬКЧ РНВМШИ НРБЕР.
Вопрос №399
Привет.
Подскажите, где я могу достать информацию о стандарте VESA и о его режимах?
Если у кого есть прям на жестком диске, вышлите плз на stepan@hotbox.ru
Ответ
Здравствуйте, Stepan Yar!
На моей страничке http:\\vdragon-pas.chat.ru
в разделе TEXT
Вопрос №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
Но палитра почему-то не меняется и остается как была.
Помогите, пожалуйста.
Ответ
Здравствуйте, Stepan Yar!
А че тут мучится, ты меняешь значение только нулевого цвета палитры,
который ты послал в порт 3C8h в самом начале.
Даже если у тебя все и получилось то ты увидал бы 4 градиента, так как в порт 3C9h можно посылать значения от 0 до 63
Вобщем это делается так
Приложение:
Вопрос №400
Приветик.
А как программно перезагрузить компьютер?
Ответ
А так.
Приложение:
Вопрос №398
Хай ол!
Кто знает как считать Sin(x) & Cos(x) на тасме?
(Можно с юзанием Co-processor)
Пасибо.
Ответ
Здравствуйте, Alex2000!
У сопроцессора есть очень классная команда fsincos. Соответственно она считает и то и другое, для числа в ST(0) и пишет в ST - косинус, а в ST(1) - синус. Действует начиная с 80387. Для предыдущих есть команды fcos и fsin. Угол должен быть в радианах и не дожен превышать 2 в 63 степени по модулю...
Вопрос №401
Приветик.
Вопрос. Есть ли у сопроцессора команда записи в ST непосредственного значения?
Ответ
Здравствуйте, Оксана!
Конечно есть! Для загрузки целого числа используй fild, а для загрузки действительного fld. У обеих команд 1 операнд. Число загружается в вершину стека. Если стек сопроцессора заполнен, то fld изменяет значение вершины на NAN(не число - специальное значение). Операндом fild может быть только переменная(DW,DD,DQ), а операндом fld как переменная(DD(одинарная точность),DQ(двойная точность),DT(80bit точность, максимальная)), так и регистр сопроцессора.
Вопрос №395
Здравствуйте ув. эксперты!
У меня такой вопрос: можно ли с помощью матерной
платы например от 486 прошивать УФРПЗУ (например
27512 у нее всего 28 ног)
Если да то как?
Ответ
Здравствуйте, Dr. Zombie!
По-моему ты сам на него ответил - оно же УльтраФиолет стираемое, а не ЭлектрическиСтираемое. Если ты эту БИОС оттуда извлечешь, то тогда ты сможешь его репрограммировать, но с использованием дополнительных средств: УФ лампа(можно прямые солнечные лучи в течение получаса), программатор, руки прямые 1 штука(лучше 2).
Вопрос №389
Здравствуйте, уважаемые эксперты.
У меня к Вам есть пара вопросов:
1: Есть одно-байтовый регистр, например, ah и есть переменная str dw ?. Как число из регистра ah в шестнадцатиричной системе (0h-63h) перевести в строковой формат в переменную str в десятичной форме?
2: Есть две переменные, например, str dq ? и str2 db 'abcdefghijk'. Как из m-ого байта переменной str2 перенести один байт в n-ый байт переменной str, причем, числа m и n содержатся в регистрах, например, ah и al соответственно (проверка корректности чисел m и n не требуется)?
Заранее благодарен.
Ответ
Здравствуйте, Павел!
Сразу к делу!
Ответ1. По-моему самое изящное решение(число должно быть в al).
aam
add ax, 3030h
mov cl,8
rol ax, cl
mov str, ax
Ответ2. Тут совсем некрасиво выходит...
mov bx, offset str2
add bx, m
mov al, [bx]
mov bx, offset str1
add bx, n
mov [bx], al
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
http://subscribe.ru/
E-mail: ask@subscribe.ru | Отписаться | Рейтингуется SpyLog |
В избранное | ||