Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kompajler za intelov procesor

[es] :: Kernel i OS programiranje :: Kompajler za intelov procesor

[ Pregleda: 2870 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Huemaj

Član broj: 115981
Poruke: 25
*.edu.uni-linz.ac.at.



+5 Profil

icon Kompajler za intelov procesor04.10.2006. u 17:03 - pre 162 meseci
Pozdrav svima!

Treba mi pomoć iskusnih sistem-programera. Napisao sam jedan compiler (za jedan oberon-like programski jezik) za Intel-procesor, 32-bit addressing mode. Instrukcije pišem u .COM file, koji standardno radi u 16-bit addressing mode. Da bih određene instrukcije koje se tiču registra i operanada izvršavao u 32-bit modu, moram svaku takvu instrukciju da prefix-ujem sa jednim byte-om - 66h. To sam uradio ali čini se da windows-ov 'debug' tool ignoriše taj prefix i dalje radi u 16-bit modusu, posto kad startujem disassemblera vidim da sve interpretira u 16-bit modusu.

Ako mi ne mozete pomoci direktnim savjetom onda mi mozda mozete pomoci indirektno:

treba mi jedan emulator u kojem mogu da pisem instrukcije za 32-bitne registre, npr:

Code:
MOV EAX, EBX.


a koji se moze kompilirati u COM format. Znaci emulator pise instrukcije za 32-bitni modus u format ciji je standard 16-bitni adresni modus.


Veliki pozdrav!
 
Odgovor na temu

Huemaj

Član broj: 115981
Poruke: 25
80.122.56.*



+5 Profil

icon Re: Kompajler za intelov procesor12.10.2006. u 13:52 - pre 162 meseci
Pozdrav jos jednom,

Uspio sam rijesiti problem, danas sam dobio i zvanicno potvrdu da 'debug' tool od Windows-a ne šalta na 32-bitni modus, tako da ako budete htjeli da disassemblujete svoje 32-bitne aplikacije morate traziti neki drugi tool. Ja sam koristio biew (http://sourceforge.net/project...up_id=1475&package_id=1454).

Veliki pozdrav!
 
Odgovor na temu

[es] :: Kernel i OS programiranje :: Kompajler za intelov procesor

[ Pregleda: 2870 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.