mamay
پنج شنبه 17 دی 1383, 20:01 عصر
با سلام
من می خواهم یک برنامه را در حافظه مقیم کنم بطوری که مثلا با هر بار فشردن یک کلید خاص کامپیوتر یک بیپ بزند.
من این برنامه را از یک کتاب نوشتم
cdsg segment para
assume cs:cdsg
org 100h
BEGIN : jmp b10init
saveint9 dd ?
duration dw 100h
a10test:
push ax
push cx
in al,60h
cmp al,01h
jne a50exit
in al,61h
push ax
or al,00000011b
out 61h,al
mov cx,512h
A20: loop A20
or al,00000010b
mov cx,512h
A30: loop A30
pop ax
and al,11111100b
out 61h,al
a50exit: pop cx
pop ax
jmp cs:saveint9
b10init:
cli
mov ah,35h
mov al,09h
int 21h
mov word ptr saveint9,bx
push bx
lea bx,saveint9
mov [bx+2],es
pop bx
mov ah,25h
mov al,09h
mov dx, offset a10test
int 21h
mov ah,31h
mov dx,offset b10init
sti
int 21h
cdsg ends
end BEGIN
اما وقتی آن را اجرا میکنم تنها کاری که میکند هنگ کردن کامپیوترم است
لطفا بگویید چه باید بکنم.
ضمنا یک سوال دیگر اینکه چگونه سیستم عامل از برنامه مقیم شونده تا پایان کامپیوتر حفاظت می کند؟
من می خواهم یک برنامه را در حافظه مقیم کنم بطوری که مثلا با هر بار فشردن یک کلید خاص کامپیوتر یک بیپ بزند.
من این برنامه را از یک کتاب نوشتم
cdsg segment para
assume cs:cdsg
org 100h
BEGIN : jmp b10init
saveint9 dd ?
duration dw 100h
a10test:
push ax
push cx
in al,60h
cmp al,01h
jne a50exit
in al,61h
push ax
or al,00000011b
out 61h,al
mov cx,512h
A20: loop A20
or al,00000010b
mov cx,512h
A30: loop A30
pop ax
and al,11111100b
out 61h,al
a50exit: pop cx
pop ax
jmp cs:saveint9
b10init:
cli
mov ah,35h
mov al,09h
int 21h
mov word ptr saveint9,bx
push bx
lea bx,saveint9
mov [bx+2],es
pop bx
mov ah,25h
mov al,09h
mov dx, offset a10test
int 21h
mov ah,31h
mov dx,offset b10init
sti
int 21h
cdsg ends
end BEGIN
اما وقتی آن را اجرا میکنم تنها کاری که میکند هنگ کردن کامپیوترم است
لطفا بگویید چه باید بکنم.
ضمنا یک سوال دیگر اینکه چگونه سیستم عامل از برنامه مقیم شونده تا پایان کامپیوتر حفاظت می کند؟