ASM Dysk twardy!

0

Hi All!.Otóż mam pytanie czy a jeżeli tak to jak w assemblerze można wyłączyć dysk twardy(z poziomu systemu) chodzi mi o kawałek kodu źródłowego jeśli można :d

0

Programik napisałem parę lat temu - dokładnie to, czego potrzebujesz - dodałem tylko parę komentarzy.

kod segment
org 100h
assume cs:kod,ds:kod
Start:	mov ah,9
	lea dx,DisOrEn
	int 21h			;Wyświetlenie komunikatu "D or E" - Disable or Enable
	mov ah,1
	int 21h			;Odczytanie znaku z klawiatury
	and al,0dfh		;Zerujemy 5 bit (UpCase)
	cmp al,'E'		;ASCII 69
	je Drive
	cmp al,'D'		;ASCII 68
	jne Start
Dis:	mov byte ptr OnOff,1
Drive:	mov ah,9
	lea dx,Pytanie
	int 21h			;Wyświetlenie komunikatu "A..Z" - czyli oczekiwanie na literę dysku do wyłączenia
	mov ah,1		;Odp. znak do AL
	int 21h			;Odczytanie znaku z klawiatury
	and al,0dfh		;Zerujemy 5 bit (UpCase)
	sub al,'A'		;65 -> kod 'A' w ASCII ; A -> 0
	mov dl,al
	mov ax,5f07h
	add al,byte ptr OnOff
	int 21h			;Włączenie/wyłączenie danego dysku
	mov ax,4c00h
	int 21h			;Zakończenie programu

DisOrEn	db "D or E : $"
Pytanie	db " A..Z : $"
OnOff	db 0
kod ends
end start

kompilacja:
[code]tasm plik.asm
tlink plik.obj /t[/code]

0

Dzięki bardzo.ozdroP [cya]

0

czy mi się tylko tak wydaje, czy jest problem z tą funkcją w WIN XP?, słyszałem że w tym systemie nie można wykonać wszystkich przerwań

0

Nie wiem - WinXP to w ogóle jakaś jawna kpina - nie interesuje mnie ten system.

1 użytkowników online, w tym zalogowanych: 0, gości: 1