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

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


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

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

Выпуск № 667
от 27.11.2003, 11:50

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


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

Bob Johnson
Статус: Профессиональный
Общий рейтинг: 148.51
URL: Программирование
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.07
[Подробней >>]
never_again
Статус: Опытный
Общий рейтинг: 138.46
[Подробней >>]
 
dr_dolphin
Статус: Доверительный
Общий рейтинг: 117.08
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 142.61
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Artemy
Статус: Доверительный
Общий рейтинг: 130.09
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 112.79
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 122.54
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Duncan MacLeod
Статус: Начальный
Общий рейтинг: 109.67
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 106.41
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Hangatyr
Статус: Профессиональный
Общий рейтинг: 110.02
[Подробней >>]
PUSH
Статус: Начальный
Общий рейтинг: 108.33
[Подробней >>]


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

Вопрос № 4501. Здравствуйте, эксперты! Подскажите, как вычислить арксинус числа, если язык программирования поддерж... (ответов: 4)
Вопрос № 4502. Доброго времени суток. Уважаемые господа эксперты. Не так давно задавал вам вопрос: При установке ка... (ответов: 5)
Вопрос № 4503. Как на ассемблере изменить состояние лампочек клавиатуры? Заранее спасибо.... (ответов: 4)
Вопрос № 4504. Как написать утилиту Copy на Ассемблере для FAT 12 (какие-то дела с секторами происходят), которая б... (ответов: 1)
Вопрос № 4505. Где можно найти .inc файлы к DirectX 9? Или, если нету таковых, к DirectX 8? ... (ответов: 4)
Вопрос № 4506. Многоуважаемые експерты! Здравствуйте!!! Обращаюсь к вам с надеждой на помощь. Вот моя проблема: нуж... (ответов: 3)
Вопрос № 4507. Что неправильно в этой программе. Заранее извнияюсь, прога очень простая но я в ассемблере почти нич... (ответов: 2)
Вопрос № 4508. Привет! Может объяснит мне кто-нить, что за число 12C, например. Насколько я знаю, шестнадцатерично... (ответов: 5)

Вопросов: 8, ответов: 28


 Вопрос № 4501

Здравствуйте, эксперты!
Подскажите, как вычислить арксинус числа, если язык программирования поддерживает в стандартной библиотеке вычисление только арктангенса (в данном случае BorlandPascal for DOS, лабу нужно писать именно на нем).
Заранее благодарен,
EraSer



Вопрос отправлен: 20.11.2003, 08:52
Отправитель: EraSer (eraser99@tut.by)

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

Отвечает Bob Johnson

Здравствуйте, EraSer!
См. в справочнике по математике, там обязательно есть формула. Раздел "Тригонометрия". Да, еще помни, что здесь следует задавать вопросы по ассемблеру.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 20.11.2003, 22:35
Отправитель: Bob Johnson


Отвечает vitya

Здравствуйте, EraSer!
asin(x) = atan(x /(sqrt(1 - x * x)));

Ответ отправлен: 20.11.2003, 09:31
Отправитель: vitya


Отвечает never_again

Доброе время суток, EraSer!
да посмотри просто в любой книжке по математике как тригонометрические функци преобразовываются одна в другую и всё.


Ответ отправлен: 20.11.2003, 14:02
Отправитель: never_again


Отвечает dr_dolphin

Добрый день, EraSer!
Отношение следующее:
asin(x)=atan(x/sqrt(1-x2)),
где atan - Арктангенс, а sqrt - квадратный корень
Кстати в BP есть функция arctan для вычисления арктангенса.
Пока !

Ответ отправлен: 21.11.2003, 07:57
Отправитель: dr_dolphin


 Вопрос № 4502

Доброго времени суток.
Уважаемые господа эксперты.
Не так давно задавал вам вопрос:
При установке какого либо видеорежима стандартными функциями BIOS (int 10h) происходит сброс системы и компьютер перезагружается.
В свое время нашел в сети исходник, где перед установкой видеорежима производятся какие-то манипуляции со стеком (если не изменяет память).
При использовании этого куска в своей программе вышеуказанная ошибка не возникала.
Но связи с некоторыми обстоятельствами драгоценный код был утерян (format c: и т.д.:)), а его назначение так и не понял, но без него программа не идет (см. выше).
Так вот кое кто ответил что такого быть не может - проверьте, если есть возможность на "маме" с чипсетом i810 и интегрированной видеокартой + WinMe - у меня не работает!!!
Кусок кода я нашел!!!
mov dx,1659h
mov ds,dx
mov bx,ss
sub bx,dx
shl bx,04
mov ss,dx
add sp,bx
mov ax,0013h
int 10h
Не могли бы вы объяснить что и для чего.
Заранее спасибо.



Вопрос отправлен: 20.11.2003, 12:13
Отправитель: Сергей (intro@nikol.ru)

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

Отвечает Bob Johnson

Приветствую Вас, Сергей!
Это все курево какое-то. Код до предела глючный, а не работать переключение режима действительно не может... Так что разбирайся.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 20.11.2003, 22:35
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Здравствуйте, Сергей!
Ерунда это всё!
Зависает не из-за стека и "хватит мозги пудрить, дядя Вова!"...
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 20.11.2003, 12:37
Отправитель: Евгений Иванов


Отвечает Artemy

Здравствуйте, Сергей!
Что за пурга!?
Стек ещё туда-сюда... но DS-то тут при чем?


Ответ отправлен: 20.11.2003, 13:47
Отправитель: Artemy


Отвечает never_again

Приветствую Вас, Сергей!
mov dx,1659h
mov ds,dx
mov bx,ss
sub bx,dx
shl bx,04
mov ss,dx
add sp,bx
кому вобще нужно стэк и дату хрен знает куда переносить, а?
всё, что выше написано сотри к е.м. и используй
только вот эти две строчки
mov ax,0013h
int 10h


Ответ отправлен: 20.11.2003, 14:00
Отправитель: never_again


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

Добрый день, Сергей!
Не важно какая у тебя мать видеокарта или чипсет - ты переключаешься в СТАНДАРТНЫЙ VGA-режим. И именно этим стандартом гарантируется, что не требуется никаких специальных манипуляций со стеком или с какими-либо другими сегментами. Если бы это было не так, у тебя бы многие программы, работающие с графикой, просто не смогли бы запуститься.
Попробуй запустить простейшую программу (в приложении) и если она сработает, ищи ошибку в другом месте.

Приложение:

Ответ отправлен: 21.11.2003, 07:24
Отправитель: ASMодей


 Вопрос № 4503

Как на ассемблере изменить состояние лампочек клавиатуры?
Заранее спасибо.



Вопрос отправлен: 21.11.2003, 09:28
Отправитель: e1vin

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

Отвечает never_again

Приветствую Вас, e1vin!
Зубкова почитай там всё это есть.


Ответ отправлен: 21.11.2003, 12:23
Отправитель: never_again


Отвечает dr_dolphin

Здравствуйте, e1vin!
Посредством записи в порт 0x60 команды 0xED, а затем
значения битовой маски состояния лампочек:
бит 0 - Scroll Lock
бит 1 - Num Lock
бит 2 - Caps Lock
Пример включения NumLock:
mov al,0xED
out 0x60,al ;Запись команды управления
mov cx,0x2000
ll: loop ll ;Небольшая пауза для отработки команды
mov al,0x2 ;Битовая маска для NumLock
out 0x60,al
;Тут уже Num Lock горит
вот и все, Пока !


Ответ отправлен: 21.11.2003, 12:12
Отправитель: dr_dolphin


Отвечает Maverick

Приветствую Вас, e1vin!
я появился, а тут тишина такая...
Погляди у эксперта, baldr на сайте, там есть в исходниках.


Ответ отправлен: 21.11.2003, 22:41
Отправитель: Maverick


Отвечает Duncan MacLeod

Добрый день, e1vin!
Думаю, не буду слишком оригинальным, если просто пришлю пример из книги Зубкова! Тем более там есть комментарии!

Приложение:

Ответ отправлен: 22.11.2003, 02:20
Отправитель: Duncan MacLeod


 Вопрос № 4504

Как написать утилиту Copy на Ассемблере для FAT 12 (какие-то дела с секторами происходят), которая будет объединять два файла через копирование? file1+file2=fil3



Вопрос отправлен: 21.11.2003, 13:23
Отправитель: K-ReaL (K-ReaL@mail.ru)

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

Отвечает never_again

Доброе время суток, K-ReaL!
Fat значения не имеет. просто создей file3 и скопируй в него сначала file1, а потом file2


Ответ отправлен: 21.11.2003, 17:01
Отправитель: never_again


 Вопрос № 4505

Где можно найти .inc файлы к DirectX 9?
Или, если нету таковых, к DirectX 8?



Вопрос отправлен: 21.11.2003, 17:16
Отправитель: Torvic (uoyevoli@mail.ru)

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

Отвечает Bob Johnson

Доброе время суток, Torvic!
В DirectX SDK.

* EMan1.5: ---===*** The game we play ***===---


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


Отвечает Gibbel

Здравствуйте, Torvic!
На сайте MicroSoft, ищи DirectX 9 SDK


Ответ отправлен: 21.11.2003, 17:22
Отправитель: Gibbel


Отвечает Hangatyr

Приветствую Вас, Torvic!
У меня есть DirectX9 SDK, могу скинуть от него инклюдники. Только
переделать их в *.inc придется самому. Короче, если надо - мой e-mail: hangatyr@centrum.cz

Ответ отправлен: 22.11.2003, 06:19
Отправитель: Hangatyr


Отвечает Евгений Иванов

Добрый день, Torvic!
H2ASH32.EXE ещё никто не отменял!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 25.11.2003, 13:04
Отправитель: Евгений Иванов


 Вопрос № 4506

Многоуважаемые експерты!
Здравствуйте!!!
Обращаюсь к вам с надеждой на помощь.
Вот моя проблема: нужно расспечатать содержимое текущего каталога.
Часть программы я уже сделал - не получаеться вот, блин, с датой/временем и размером файлов.
Ниже прилагаю свой труд.
Надеюсь и жду


Приложение:


Вопрос отправлен: 22.11.2003, 21:55
Отправитель: Denis (mikelangello@ukr.net)

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

Отвечает Artemy

Добрый день, Denis!
Лови приложение

Приложение:

Ответ отправлен: 25.11.2003, 11:26
Отправитель: Artemy


Отвечает never_again

Добрый день, Denis!
Як давно я не читав коментарiiв на украiнськiй мовi.
а что касается твоего вопроса, то почитай Зубкова, у него там всё подробно расписано.


Ответ отправлен: 23.11.2003, 13:32
Отправитель: never_again


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

Доброе время суток, Denis!
А чтобы распечатать дату/время или размер тебе понадобится написать или где-нибудь найти процедуру преобразования целого числа в строку символов (эту строку ты и будешь выводить на экран).
Дата и время в структуре DTA хранится в упакованном формате (см. приложение). Для извлечения этих значений используй команды AND и OR, а также команды побитового сдвига (ROL, ROR, SHL, SHR). Дальше преобразуй эти значения в строку и выводи на экран.
Размер файла - это обычное целое число, записанное в обратном порядке (сначала младшие байт/слово, потом старшие).


Приложение:

Ответ отправлен: 24.11.2003, 07:16
Отправитель: ASMодей


 Вопрос № 4507

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


Приложение:


Вопрос отправлен: 23.11.2003, 02:08
Отправитель: e1vin

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

Отвечает Duncan MacLeod

Доброе время суток, e1vin!
Не совсем понял, что имеется ввиду под "пишет время задано неправильно"?
Ну, а по программе, эта функция (02h, int 1Ah) возвращает в dh BCD(binary code decimal)-число значения секунд, что бы видеть на экране секунды в привычном формате, тебе надо преобразовать число BCD к ASCI-виду.

Ответ отправлен: 23.11.2003, 16:33
Отправитель: Duncan MacLeod


Отвечает never_again

Приветствую Вас, e1vin!
CSEG segment
assume CS:CSEG
org 100h
main:
mov ah,2
int 1Ah

mov ax,0B800h
mov es,ax
mov di,0

push dx ; сохраним секунды и флаги
push cx ; сохраним часы и минуты
mov dl,dh ; переложим секунды в dl
; для большего удобства
xor dh,dh ; обнулим dh
mov cl,4 ; будем двигать 4 раза
shl dx,cl ; сдвинуть десятки секунд в dh
shr dl,cl ; вернуть еденицы секунд в
; исходное состояние
or dx,3030h ; преобразовать десятки и
; еденицы секунд в ASCII
mov es:[di],dh ; вывести на экран десятки
mov es:[di+2],dl ; вывести на экран секунды
pop cx ; восстановить часы и минуты
pop dx ; восстановить секунды и флаги
jmp main ; бесконечный цикл это не хорошо.
; добавь опцию выхода из программы.

CSEG ends ; обрати внимание!!!!!
end main


Ответ отправлен: 23.11.2003, 13:27
Отправитель: never_again


 Вопрос № 4508

Привет!
Может объяснит мне кто-нить, что за число 12C, например. Насколько я знаю, шестнадцатеричное число состоит из одного, двух, трех и т.п. байт. А это - из полутора байт %)
Как оно должно выглядеть, чтобы записать его в память - 012C и 120С или как еще. Буду благодарен, если дадите пару ссылок, где почитать по этой теме. Заранее спасибо



Вопрос отправлен: 23.11.2003, 11:40
Отправитель: e1vin

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

Отвечает Duncan MacLeod

Доброе время суток, e1vin!
Число как число. :)
В программе, если такая запись есть, то запишеться число 012C, а число 120C - это уже совсем другое число! Зайди на http://prog.dax.ru, там Зубков лежит, скачай его почитать.

Ответ отправлен: 23.11.2003, 16:19
Отправитель: Duncan MacLeod


Отвечает dr_dolphin

Приветствую Вас, e1vin!
Однозначно это число 0x012C, т.е. просто старшие 4 бита равны 0
Пока !

Ответ отправлен: 23.11.2003, 11:52
Отправитель: dr_dolphin


Отвечает never_again

Добрый день, e1vin!
ноли впереди особого значения не имеют и потому часто опускаются.
если будешь смотреть на память по словам то правильно будет 012с, а если по байтам то 2с 01 (от младшего к старшему)



Ответ отправлен: 23.11.2003, 13:11
Отправитель: never_again


Отвечает Maverick

Добрый день, e1vin!
Агрхм, фантастика, полтора байта. Это анекдот :)
Не, это обычное двухбайтовое число 012Ch.
Да вот думается мне, что по это теме почитать то и нечего. Логика, логика...


Ответ отправлен: 24.11.2003, 05:49
Отправитель: Maverick


Отвечает PUSH

Добрый день, e1vin!12C h = 300 - число оно и есть число,можешь записать его так 012С если надо,а записывать в память word ptr 12Ch - как 2 байтиа
dword ptr 12Ch - как 4


Ответ отправлен: 24.11.2003, 07:57
Отправитель: PUSH



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (28)
C / C++ (22)
Perl (3)
Builder / Delphi (18)
Pascal (20)
Basic / VBA (6)
Java / JavaScript (10)
PHP (12)
Криптография (6)
WinAPI (10)
Пользователю
Windows 95/98/Me (40)
Windows NT/2000/XP (56)
"Железо" (35)
Поиск информации (19)
Администратору
Windows NT/2000/XP (34)
Linux / Unix (14)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (6)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


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

В избранное