Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ASM - с чего начать? 
:(
    Опции темы
Akina
Дата 2.6.2004, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата
Где взять Help по прерываниям???

Ralf Brown Interrupt List


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ZAVS
Дата 4.6.2004, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



лучше возмите книгу Абеля и читайте smile.gif

--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
vilfred
Дата 14.6.2004, 23:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(SashOk_ @ 8.2.2004, 05:25)
Все вышесказанное конечно хорошо и приятно, однако никто не подскажет ресурсы для asm32, посколбку программировать под DOS уже НЕ актуально. Не плохо было бы пару примерчиков представить с коментариями.

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

Нам вот надо сейчас сделать некоторую обработку файлов формата FITS, была бы эти проги на асме, то в нашей обсерватории было бы все под досом, кроме файрвола линуксового разве что... идеи есть - а как это реализовать быстро - не ясно.

А уроки реально - просто рулезные. И написаны тоже так же. Мегареспект!
  Вверх
Гость_Andrew
Дата 21.6.2004, 14:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я конечно понимаю что уже дофига говорилось про таймер, но то все про интервалы минимум у которых 55 мс, а как сделать програмку чтоб она каждые 5 мс (или еще чаще) какую-нить цифирку на экран выводила? Если кто может помочь или пример привести не стесняйтесь, пишите smile.gif .Особенно обрадует если это будет как асмовская вставка в СИ.
  Вверх
Chingachguk
Дата 21.6.2004, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Под дос ?

1) Перепрограммирование таймера на другую частоту;
2) Интерфейс прерывания ~int 15h (bios) - вплоть до сотен мкс (!), но не всякая винда его держит.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Гость_Andrew
Дата 28.6.2004, 12:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А можешь простенькую програмку привести, тока полностью на асме написанную
  Вверх
Chingachguk
Дата 28.6.2004, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Вот это может работать (задержка в мкс):

Код

PROCEDURE DLY(MSEC:WORD);
BEGIN
  ASM
   MOV  AX,MSEC
   MOV  DX,1000
   MUL  DX; DX:AX=microseconds
   MOV  CX,DX
   MOV  DX,AX
   MOV  AH,86H
   INT  15H; wait CX:DX microseconds
  END;
END;



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Гость_Andrew
Дата 29.6.2004, 14:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так это просто как пауза получается? Но "microseconds" он не понимает, а если его как переменную обозвать то он на синтаксис ругается.
  Вверх
Chingachguk
Дата 29.6.2004, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Кто ругается ?! ;) Это вставка в языке Паскаль. Вот как это будет на СИ:

Код

void DLY(unsigned int MSEC)
{
 asm {
   MOV  AX,MSEC
   MOV  DX,1000
   MUL  DX // DX:AX=microseconds
   MOV  CX,DX
   MOV  DX,AX
   MOV  AH,0x86
   INT  0x15 // wait CX:DX microseconds
 }
}


У этого прерывания есть также асинхронный сервис: вызываешь его и указываешь в ~es:bx дальний (far) адрес точки программы, куда должно поступить управление спустя указанное тобой число мкс.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Jin X
Дата 29.6.2004, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 5.3.2004

Репутация: нет
Всего: 1



Вот тут гляньте: http://filezzz.nm.ru/pub/asm/delay.htm
Если кого звук интересует: http://filezzz.nm.ru/pub/asm/sound.htm

Это сообщение отредактировал(а) Jin X - 29.6.2004, 22:13
--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
Гость_Andrew
Дата 30.6.2004, 12:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











если в качестве msec ставить число, то на микросекунды оно не дотягивет, скорее это на милисекунды похоже, а если попробовать поставить меньше 65 то вообще пауза пропадает? Так что же делать?
  Вверх
Chingachguk
Дата 30.6.2004, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Эта функция требует в CX:DX микросекунды. Т.е. CX:DX = 100 - это 100 мкс. Мне надо было сделать милисекунды - я и умножил на 1000.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
scriptcoder
Дата 30.6.2004, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



Лично мне понравились туториалы Iczelion'а
--------------------
null
PM MAIL   Вверх
Гость_Andrew
Дата 1.7.2004, 11:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Но если это число в микросекундах ставить меньше чем 65000 микросекунд, то он выдает постоянный сигнал (вообще нет никакой паузы.)
  Вверх
Chingachguk
Дата 1.7.2004, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Приведи код.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.