WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  ASM
  Нужна помощь!!!

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Нужна помощь!!!
DMV опубликован 07-09-2001 23:51 MSK   Click Here to See the Profile for DMV   Click Here to Email DMV  
Всем привет.
Я сам в асемблере соображаю мало, но на работе приходится делать следующее:
Есть исходник на ассемблере и bat файл для компиляции.
Раз в день в исходнике меняются несколько строк (текстовые переменные),прога компилится и рассылается, абонентам.
Работает прога под Win 32. Проблема в том, что надо в определенное место (я уже нашел куда)вставить задержку по времени (40 сек).
То есть прога просто подождала 40 сек. и потом продолжила с этого места.
Все регистры на этот момент свободны.
Компилируется под TASM 5.0
Буду благодарен за любые помощь, особенно просто за кусок кода который можно вставить.
turbo опубликован 08-09-2001 15:22 MSK     Click Here to See the Profile for turbo  Click Here to Email turbo     
mov esi,esp
push 9c40h
call dword ptr [__imp__Sleep@4];Для Masm
;or
сall dword ptr [Sleep:near];Для Tasm
Если так не будет работать
пропиши в заголовок
extrn Sleep:near
//////.....;;;;;

mov esi,esp
push 9c40h
Call Sleep

DMV опубликован 08-09-2001 19:45 MSK     Click Here to See the Profile for DMV  Click Here to Email DMV     
Ок! Спасибо огромное второй способ работает.
Как я понял Sleep это некая API функция?
Organic опубликован 16-09-2001 04:20 MSK     Click Here to See the Profile for Organic  Click Here to Email Organic     
что значит некая :)) это пауза в 1/1000 секунды, а 9C40H ето 40000 миллисекунд, или 40 секунд..
если нужны более мелкие задержки, используй программные циклы.
кстати! никто не знает, как определить частоту процессора в MHz под DOS??
Emerald опубликован 20-09-2001 21:12 MSK     Click Here to See the Profile for Emerald  Click Here to Email Emerald     
2Organic: Если надо - кину примерчик на мыло.
(определение MHz)
7in опубликован 16-10-2001 22:46 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Тока не ругайтесь...
На Паскале (определение частоты). Работает от 1/18.2 до 2/18.2 секунды...

{$G+}
Uses Dos;
Var
TSC: Boolean;
Speed: Longint;
SaveInt8: Pointer;
Stage: Byte;

Procedure SpeedCounter; far; assembler;
Asm
push ax
push ds
mov ax,seg @Data
mov ds,ax
inc Stage
mov al,20h
out 20h,al
pop ds
pop ax
iret
End;

Begin
Asm
db 66h; xor ax,ax
inc ax
db 0Fh,0A2h
and dl,10h
mov TSC,dl
End;
If not TSC then
Begin
WriteLn('Your processor have no TSC.');
WriteLn('Do you wanna try anyway (Y/N) ?');
Asm
mov ah,0
int 16h
or al,20h
mov TSC,0
cmp al,'y'
jne @No
inc TSC
@No:
End;
If not TSC then Halt;
WriteLn
End;
Asm
mov ah,0Dh
int 21h
mov ax,1681h
int 2Fh
in al,0A1h
mov ah,al
in al,21h
push ax
mov al,0FEh
out 21h,al
inc ax
out 0A1h,al
End;
GetIntVec(8, SaveInt8);
SetIntVec(8, @SpeedCounter);
Asm
@1:cmp Stage,1
jne @1
db 0Fh,31h
db 66h; xchg bx,ax
@2:cmp Stage,2
jne @2
db 0Fh,31h
db 66h; sub ax,bx
db 66h; mov word ptr Speed,ax
pop ax
out 21h,al
mov al,ah
out 0A1h,al
End;
SetIntVec(8, SaveInt8);
Asm
mov ax,1682h
int 2Fh
End;
WriteLn('CPU Clock : ', Speed*(1193181/65536): 0: 0, ' Hz')
End.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.