Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



vypnutie pc cez asm

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: vypnutie pc cez asm

Autor: vrtulex

15:51:39 15.11.2008

To je divné... tak to tam napiš přímo jejich opkódem

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Michal6677

14:10:04 14.11.2008

MazeGen Napsal:
-------------------------------------------------------
> PUSHAD nahraď PUSHA a POPAD POPA, to by měl
> sežrat.
>
> ---------------------
> http://x86asm.net

ziadna zmena napise mi presne tie iste chyby jak pred tym
Ake existuju este schopne kompilatory pre asm ??? Skusim nejaky iny ci to vyriesi.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: V

13:33:53 14.11.2008

Já osobně tedy nechápu, k čemu tam to ukládání registrů na zásobník je. Jedná se přeci o rutinu, jež vypíná počítač a z níž tedy není návratu ;-)

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: MazeGen

10:11:04 14.11.2008

PUSHAD nahraď PUSHA a POPAD POPA, to by měl sežrat.

Citovat příspěvek

 

Re: vypnutie pc cez asm (doplnění)

Autor: JiriValerian

22:32:20 13.11.2008

Váš překladač patrně negeneruje správný kód.
V emulátoru Vám to funguje zřejmě proto, že
emulátor se zřejmě chová jako jiný procesor
než ten co máte fyzicky.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: JiriValerian

22:29:14 13.11.2008

[color=#008000]Michal6677 Napsal:
-------------------------------------------------------
> takze az som dobre pochopil to sa jedna o moj CPU
> v PC a ten je Intel Celeron M340. Neexistuje
> nejaka nahrada tych instrukii???[/color]

Zmíněné instrukce jsou pro procesory Intel Celeron M340 dostupné viz odkaz.
Problém je tedy ve Vašem překladači.

[b]5.1.1 Data Transfer Instructions (viz str. 5-4 Vol. 1)[/b]
[b]PUSHAD[/b] Push general-purpose registers onto stack
[b]POPAD[/b] Pop general-purpose registers from stack
http://developer.intel.com/design/processor/manuals/253665.pdf

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Michal6677

22:10:14 13.11.2008

takze az som dobre pochopil to sa jedna o moj CPU v PC a ten je Intel Celeron M340. Neexistuje nejaka nahrada tych instrukii???

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: JiriValerian

22:03:26 13.11.2008

[color=#008000]Michal6677 Napsal:
-------------------------------------------------------
> skusil som novsiu verziu toho prekladaca a stale
> nic. Pise mi to konkretne toto "Illegal
> instruction for currently selected processor(s)"[/color]

To by mě tedy zajímalo jaký to je procesor, že
je kompatibilní s x86 a přesto zmíněné instrukce
nepodporuje ???

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Michal6677

21:50:50 13.11.2008

skusil som novsiu verziu toho prekladaca a stale nic. Pise mi to konkretne toto "Illegal instruction for currently selected processor(s)"

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: JiriValerian

21:23:07 13.11.2008

[color=#008000]Michal6677 Napsal:
-------------------------------------------------------
> tak ja neviem. mne tam pise tie chyby co som
> spominal vyssie a ked vyhodim "chybne" instrukcie
> tak to nejde.[/color]

Jinak ty instrukce PUSHAD/POPAD by tam měly zůstat
a měly by být na x86 kompatabilních procesorech
běžně dostupné. I z Vašeho zdrojáku je patrné,
že jde o kód pro x86 kompatibilní procesor,
takže spíš bude problém v překladači.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: JiriValerian

21:13:53 13.11.2008

[color=#008000]Michal6677 Napsal:
-------------------------------------------------------
> tak ja neviem. mne tam pise tie chyby co som
> spominal vyssie a ked vyhodim "chybne" instrukcie
> tak to nejde. Ale zaujimalo by ma ako je mozne ze
> tam moja funkcia v emulatore ide v pohode ale na
> skutocnom PC to nejde?? Ved emulator by mal
> emulovat skutocny PC.[/color]

Ve skutečném PC může mít určité funkce APM nebo i celou podporu APM
BIOS v rámci konfigurace vypnutou.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Michal6677

21:10:08 13.11.2008

tak ja neviem. mne tam pise tie chyby co som spominal vyssie a ked vyhodim "chybne" instrukcie tak to nejde. Ale zaujimalo by ma ako je mozne ze tam moja funkcia v emulatore ide v pohode ale na skutocnom PC to nejde?? Ved emulator by mal emulovat skutocny PC.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: JiriValerian

21:06:23 13.11.2008

[color=#008000]Michal6677 Napsal:
-------------------------------------------------------
> tu mi hadzalo nejake chyby pri pushad a popad
> nieco v zmyslel ze instrukcia nie je pre vybrany
> procesor tak som tie 2 instrukice vyhodil ale cela
> funkcia nesla ani v emulatore tak som to ani na
> normal PC neskusal[/color]

Mě to fungovalo dokonce i ve starých Windows 9x a překládal
jsem to s mastavením pro Pentium.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Michal6677

20:43:44 13.11.2008

tu mi hadzalo nejake chyby pri pushad a popad nieco v zmyslel ze instrukcia nie je pre vybrany procesor tak som tie 2 instrukice vyhodil ale cela funkcia nesla ani v emulatore tak som to ani na normal PC neskusal

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: JiriValerian

19:19:24 13.11.2008

Kdysi jsem něco pododného zkoušel v inline asm v céčku viz funkce níže.
Můžete si to vyzkoušet použít v tom Vašem OS.

[code][color=#000080]void vypnout (void)
{
asm {
pushf
pushad
mov ax,0x5300
mov bx,0
int 0x15
jc konec
push ax
and cx,2
jcxz predkonec
mov ax,0x5308
mov bx,1
mov cx,1
int 0x15
jc predkonec
mov ax,0x5308
mov bx,0xFFFF
mov cx,1
int 0x15
jc predkonec
mov ax,0x530E
mov bx,0
pop cx
int 0x15
jc konec
mov ax,0x530D
mov bx,1
mov cx,1
int 0x15
jc konec
mov ax,0x530F
mov bx,1
mov cx,1
int 0x15
jc konec
mov ax,0x5307
mov bx,1
mov cx,3
int 0x15
jmp konec
predkonec:
pop ax
konec:
popad
popf
};
};[/color][/code]

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Michal6677

18:26:38 13.11.2008

ake privilegium??? a ja nechcem vypnut WinXP ale moj vlastny operacny system ktory nabootujem z diskety (WinXP neni spusteny). Zatial ho nemozem vypnut inac nez vypinacom na PC a chcel som tam dat funkciu aby sa dal vypnut napr ked napisem "exit" a cez toto to ide iba v emulatore ale na fyzickej masine to nejde.

Citovat příspěvek

 

Re: vypnutie pc cez asm

Autor: Makovec

17:10:12 13.11.2008

Pro XP budeš potřebovat privilegium...

Citovat příspěvek

 

vypnutie pc cez asm

Autor: Michal6677

14:31:06 13.11.2008

[quote]#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
[/quote]
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???

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: