2011-01-24 3 views
1

은 내가 대신, MVC++ 어셈블러에서 'DW는'

__asm 
{ 
    db 0EAh 
    dw 0000h 
    dw 0FFFFh 
} 

(http://msdn.microsoft.com/en-us/library/h70hd396.aspx)의 사용해야 추가 MVC++에서
? 당신은 secuentially 옵 코드를 emmiting하여 코드를 실행할 수 있습니다 __emit (INT 연산 코드)

:

+0

로 설정 정교하게? –

+0

mvC++에서 데이터 지시문과 연산자를 사용할 수 없지만 어셈블러 블록을 사용하여 시스템을 재부팅하려고합니다. http://msdn.microsoft.com/en-us/library/h70hd396.aspx – Neomex

+0

3 개의 변수를 uint8_t, uint16_t, uint16_t로 정의하고 그 값을 할당 할 수 있습니다. 그러나 나는 내가 따라야하는지 100 % 확신하지 못한다. –

답변

1
_asm { 
     mov ax, 40h 
     mov ds, ax 
     mov word ptr ds:[72h], 1234h 
     jmp dword ptr cs:0ffff0000h 
    } 

덕분에 나는 마침내 당신이 뭘 하려는지 이해 ... 당신이 당신의 머신이 방법을 다시 부팅에 성공 생각하지 않습니다. 이 테스트를 수행 할 Windows 컴퓨터가 없기 때문에 이것이 작동하는지 잘 모르겠지만 시도 해봐야합니다. 0000H 40 : 72 FFFF에 훨씬 호출입니다

차가운 1234h로 설정 : 0000H 40 일 :

따뜻한 FFFF에 훨씬 호출입니다 72 당신이 상관 할 0

+0

이러한 코드 조각 중 하나라도 (사용자 모드) Windows 프로세스에서 작동하지 않는다고 생각합니다. 커널 모드 드라이버를 작성하면 PC를 아주 쉽게 재부팅 할 수 있습니다 ... – gusbro

+0

@gusbro Windows를 마지막으로 사용한 시간을 기억할 수 없으며 사용 가능한 정보를 도왔습니다. 밝은면에는 항상 시스템 ("shutdown/r")이 있습니다. 나는 –

+0

Hehe를 맞힌다고 생각한다. 내 요점은 프로그래밍 방식으로 재설정을 수행 할 권한이 없다는 것입니다. shutdown/r은 재부팅을 수행하는 데 필요한 권한이있는 경우에만 작동합니다 – gusbro

0

intrinsic function와 옵 코드를 방출 할 수있다. 는 그러나, 나는 @의 gusbro의 의견에

+0

내가 부팅 진행에 사용하는거야? – Neomex

+0

"jump_to_bios"를 다시 시작하려고하는 것 같습니다. 그들이 어떻게하는지에 대한 리눅스 소스를보십시오 (점프하는 것만 큼 간단하지는 않습니다). http://lxr.free-electrons.com/source/arch/x86/kernel/reboot.c에서 찾으십시오. – gusbro

관련 문제