orkideh07
چهارشنبه 28 مرداد 1388, 13:03 عصر
سلام
من نیاز به کدی دارم که بتونه مثلا هر 0.1 میلی ثانیه به طور خودکار عمل مشخصی ( مثلا زیاد کردن مقدار یک متغیر ) رو انجام بده... ممنون میشم اگه کسی بتونه کمکی کنه
tdkhakpur
چهارشنبه 28 مرداد 1388, 15:05 عصر
با استفاه از ماکروی زیر در داخل برنامه ات آدرس تابعی را که میخواهید توسط رمانسنج اجرا بشود را قرار بدید.
SETVECTOR MACRO INTERRUPT, PROCEDURE, OLD_INT_ADDRESS
PUSH AX
PUSH BX
PUSH DX
PUSH ES
CLI
MOV AX, 0
MOV ES, AX
MOV AX, INTERRUPT
MOV BX, 4
MUL BX
MOV BP, AX
MOV BX, WORD PTR ES:[BP]
MOV AX, WORD PTR ES:[BP+2]
MOV WORD PTR OLD_INT_ADDRESS,BX
MOV WORD PTR OLD_INT_ADDRESS[2],AX
MOV DX, OFFSET PROCEDURE
MOV WORD PTR ES:[BP], DX
MOV WORD PTR ES:[BP+2], CS
STI
POP ES
POP DX
POP BX
POP AX
ENDM
طرز استفاده
old_time dd ?
timer dw 1ch
cli
SETVECTOR timer, start, old_time
sti
start proc;------------------------------------------------------------
cli
pushf
call cs:old_time
;------------------
;برنامه تابع را اینجا قرار بدید
;--------------------
exit:
sti
iret
start enp
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.