Vypnutie PC s assemblerom – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vypnutie PC s assemblerom – C / C++ – Fórum – Programujte.comVypnutie PC s assemblerom – C / C++ – Fórum – Programujte.com

 

Jefries0
Duch
13. 11. 2008   #1
-
0
-

#ifndef __APM__

#define __APM__


word APM_PowerOff(){
asm proc c;
asm mov ax,5301h; /*Do a real mode connection*/
asm mov bx,0; /*device = BIOS*/
asm int 15h;
asm jc error;

asm mov ax,5300h;
asm xor bx,bx;
asm int 15h;

asm mov cx, ax;
asm mov ax,530eh; /*Enable latest version of APM*/
asm mov bx,0; /*device = BIOS*/
asm int 15h;
asm jc error;

asm mov ax,530dh; /*Now engage and enable CPU management*/
asm mov bx,1; /*device = all*/
asm mov cx,1; /*enable*/
asm int 15h;
asm jc error;

asm mov ax,530fh;
asm mov bx,1; /*device = ALL*/
asm mov cx,1; /*enable*/
asm int 15h;
asm jc error;

asm mov ax,5307h; /*Do the power down*/
asm mov bx,1; /*device = ALL*/
asm mov cx,3; /*mode = OFF*/
asm int 15h; /*shutdown CPU*/

error: asm mov ax, 0FFFFh;
asm ret;
asm endp;


}

#endif


potrebujem pomoct s touto funkciou. Je to funkcia na vypnutie PC v mojom vlastnom operacnom systeme. Ked to dam do emulatora (vyrtualny PC) tak to ide v pohode a PC sa vypne ale na fyzickom (skutocnom) PC to nic nespravi ako je to mozne???

Nahlásit jako SPAM
IP: 195.91.79.–
Mautinek
~ Redaktor
0
Grafoman
14. 11. 2008   #2
-
0
-

Řekl bych, že to bude nejspíš tím, že ti OS prostě nedovolí vypnout PC a hlídá si to...

A toto IMHO patří do sekce Assembler

Nahlásit jako SPAM
IP: 147.229.9.–
Programujte.com redaktor
Sleduj mě na @MartinSimko
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
14. 11. 2008   #3
-
0
-

To Mautinek : ale ja som do toho OS nedaval ziadne funkcie na chranenie proti vypnutiu tak to pochybujem. Pre vysvetlenie: ja nechcem vypnut WinXP ale OS ktory som si sam naprogramoval
btw v sekcii assembler mi moc ludi neporadi lebo tam moc ludi nehodi a ludia co chodia do tejto sekcie sa vyznaju aj v asm (samozrejme nie vsetci)

Nahlásit jako SPAM
IP: 195.91.79.–
Jefries0
Duch
14. 11. 2008   #4
-
0
-

posledna odpoved je odomna

Nahlásit jako SPAM
IP: 195.91.79.–
o-lox0
Super člen
14. 11. 2008   #5
-
0
-

to Jefries: imho právě jsi nadefinoval problém bludného kruhu :)

Nahlásit jako SPAM
IP: 85.71.152.–
Jefries0
Duch
14. 11. 2008   #6
-
0
-

to o-lox: nepochopil som :D

Nahlásit jako SPAM
IP: 195.91.79.–
o-lox0
Super člen
15. 11. 2008   #7
-
0
-

(asm denunciace:) Ty ses přiklonil na stranu nebudu klestit zarostlé křoví a houštiny.
- tímto dál přikládáš pod své faktické tvrzení a zamezuješ úniku/změně :D

btw ten tvůj asm ani mne PC nevypnul za to tento kód ano

mov ax,5301h

xor bx,bx
int 15h
mov ax,530eh
xor bx,bx
mov cx,102h
int 15h
mov ax,5307h
mov bx,1
mov cx,3
int 15h
hlt

Nahlásit jako SPAM
IP: 85.71.152.–
Jefries0
Duch
18. 11. 2008   #8
-
0
-

To o-lox : nepomohlo....to tvoje mi robi to isto co aj to moje lebo je to vlastne aj to iste. PC mi to nevypne

Nahlásit jako SPAM
IP: 195.91.79.–
Jefries0
Duch
18. 11. 2008   #9
-
0
-

alebo da sa vypnut PC aj s C alebo C++???mne je to jedno aky to je jazyk len potrebujem nieco co vypne PC

Nahlásit jako SPAM
IP: 195.91.79.–
o-lox0
Super člen
18. 11. 2008   #10
-
0
-

POZOR zatim co jsem napsal si STOJIM!) Neni to to iste..

předpokládám že Win ti vypnou a máš ACPI OK.

zkus ještě tohle smetí:
out 71,al ; al=5 reset, experimentuj , per to za sebe v cyklu atd.
out 64,al ; al=feh

§A co čekáš že C++ bude asi používat? Kouzelnou hůlku? Tao samé nanejvýš...

Nahlásit jako SPAM
IP: 85.71.152.–
Jefries0
Duch
18. 11. 2008   #11
-
0
-

o-lox napsal:
předpokládám že Win ti vypnou a máš ACPI OK



s tym tvojim kodom ani s tym mojim mi ani Win nevypnu ked to dam skompilovat tak mo hadze okno "nastala chyba 'ladit' 'zavriet' "

Nahlásit jako SPAM
IP: 195.91.79.–
o-lox0
Super člen
18. 11. 2008   #12
-
0
-

To Jefries : Mluvim tu s člověkem, který je při smyslech?? (prosto útoků)
Vyjasněme si pár věcí - tim vypnutim Windows jsem měl na mysli obyčejný Start - Vypnout. To ti musí vypnout PC, jinak máš špatnou správu ACPI a problém je v BIOSu !! A samozřejmě, že z Windows ti žádný spuštěný kód z Promptu počítač nevypne, Win si to hlídaj !!! To lze jen bootovánim z tvého OS a příp. čistého DOSu, jasno??

Chyba kompilace, taky nechápu přesně? dej

out dx,al
; dx=... , al= ....

Nahlásit jako SPAM
IP: 85.71.152.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

Podobná vlákna

Vypnutie PC v C# — založil Anonymní uživatel

Vypnutie PC v C++ — založil Lukáš

Vypnutie zvuku — založil dartanan

Vypnutie lcd... — založil Nrigo

Vypnutie X vo vlastnostiach okna — založil Martin Ocetník

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý