Поиск:

Ответ в темуСоздание новой темы Создание опроса
> программирование на асемблере под win 
:(
    Опции темы
Sergey
  Дата 13.12.2002, 19:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











народ помогите чем-нибудь
не могу запрограммировать таймер под win на 100 мкс
  Вверх
stab
Дата 2.1.2003, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



Читай SDK, функции такие:
для обычных -- не очень точных таймеров: SetTimer(...)
для более точных: timeSetEvent(...)

это если в третьем кольце, а для нуля читай DDK.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
ARTi
Дата 8.1.2003, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Sergey
Вообще-то, насколько я знаю, вин не даст прото так установить меньше 1000 мкс. Так чтааа... нормальные герои всегда идут в обход...
PM MAIL   Вверх
hex
Дата 18.9.2004, 16:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Извите за тупой вопрос, но мне нужно умножить два двухбатовых числа на асемблере, доку нормальную не где найти не могу. Помогите пожалуйста sad.gif
  Вверх
Chingachguk
Дата 18.9.2004, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

не могу запрограммировать таймер под win на 100 мкс


Это действительно может вызвать проблемы... По крайней мере в 98-х системный таймер работает примерно на 600 мкс. Правда, Soft-Ice может мерять время с точностью около 60-100 мкс. Есть также сервис BIOS int 15h, но он некорректно работает в win - он позволяет работать с временами около 50 мкс.

Цитата
но мне нужно умножить два двухбатовых числа на асемблере


Знаковое умножение:

Код

 mov  ax,word ptr Arg1
 imul  word ptr Arg2
; dx:ax = signed dword = Arg1 * Arg2


Беззнаковое умножение:

Код

 mov  ax,word ptr Arg1
 mul   word ptr Arg2
; dx:ax = unsigned dword = Arg1 * Arg2




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


Опытный
**


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

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



sample.gif


--------------------
Well come to America!
PM MAIL   Вверх
RuslanB
Дата 21.10.2004, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Надо написать программу, выполняющую поиск последовательности байт в 8 разрядном массиве (или текстовой строке). Адрес последовательности в ES:DI, ее длина – в CX, адрес массива – в DS:SI, его длина – в DX. В результате выполнения программы если последовательность найдена, то флаг C=1 и DS:SI содержит адрес совпадения, иначе C=0.
Подскажите хотябы суть!
PM MAIL   Вверх
Chingachguk
Дата 21.10.2004, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код
function substr(scanstr,fstr: pointer; lenscan, lenfstr: word): pointer;
 begin
   asm
   push ds
   mov  word ptr @Result,0
   mov  word ptr @Result+2,0
   lds  si,scanstr
   mov  cx,lenscan
   les  di,fstr
   mov  dx,lenfstr
   cmp  dx,cx
   ja   @@substrDone
   sub  dx,cx
@@FindSeq:
   push cx
   push si
   push di
   rep  cmpsb
   pop  di
   pop  si
   pop  cx
   jnz  @@NextSym
   mov  word ptr @Result,si
   mov  word ptr @Result+2,ds
   jmp  @@substrDone
@@NextSym:
   inc  di
   dec  dx
   jnz  @@FindSeq
@@substrDone:
   pop  ds
   end;
 end;


Это сообщение отредактировал(а) Chingachguk - 21.10.2004, 18:04


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


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



Код

mov esi,mystring
mov edi,mydata
mov ecx,stringLEN
mov edx,dataLEN
lp0:
       push esi
       push edi
lp:
       lodsb
       cmp [edi],al
       jne lp1
       inc edi
       dec edx
       cmp edx,0
       je там куданить типа массив кончился а не совпало
       loop lp
       pop esi
       pop esi < edi указатель на адрес в массиве где совпадение
       ret
lp1:
       pop edi
       pop esi
       inc edi
       jmp lp0




--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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