Aktív témák
-
''Emiatt szerintem pmodeban is eleg lesz 1 privilegiumszint''
Azért ajánlanám a két szintet, mert ha stack hiba van (ami igen gyakori), akkor triple fault miatt reset a vége, és ekkor nem tudod, hol a hiba. Úgy célszerű csinálni, hogy először legyen meg a megfelelő IDT az exception-ök lekezeléséhez. Ezt úgy érdemes csinálni, hogy mondjuk:
exception1:
push 1
jmp exceptionhandler
exception2:
push 2
...
exceptionhandler:
kiírni a CS:EIP-t, a regisztereket, meg egyéb dolgokat, amik jólesnek...:))
Az IDT-be meg szépen beírkálod a címeket.
Meg tanulásnak sem rossz a több privilégiumszint. Mert ahhoz kell a TSS (ami a V86-hoz is kell).
Különben protected mode-ba lépni gyerekjáték, de hogy interaktív programot csináljál... Persze könnyen írhatsz egy billentyűkezelő interruptot pufferrel, meg egy karakterkiíró rutint, ami 0b8000h-tól rakja be a karaktereket (ilyet is csináltam, hogy a debugger csak maga fusson, minden segédrutin nélkül, így BIOS-t is lehet vele lépésről lépésre futtatni). Én inkább csináltam V86-os futtatást, hogy simán használhassam a BIOS rutinokat (meg esetleg a DOS-t).
A NASM pedig tényleg jó, én megszokásból használtam tasm-ot.
Igazából assemblert is akartam írni, meg linkert, talán egyszer még előveszem a ''project''-et :) Csak mostanság a 3D grafikával foglalkozom.
Szóval, ha kell segítség, akkor nyugodtan szólj!
[Szerkesztve] -
WN31RD
addikt
Hacsak nem valami nagyon speciális beágyazott rendszert akarsz csinálni, a legnagyobb problémád nem a védett mód, hanem az eszközvezérlők (driverek) megírása lesz.
Vannak már egyébként egész jó operációs rendszerek, mielőtt egy ilyen projectbe fognál, gondold át, nem lenne-e megoldható a feladat valamelyik már létezővel, pl.: Linux, FreeBSD, NetBSD, OpenBSD, QNX, eCos, BeOS, stb., ezek csak amik hirtelen eszembe jutottak.
Persze ha csak tanulgatni szeretnéd a védett módot/assembly programozást, az más. Ajánlom a korábban említettek mellé még a CWSDPMI nevő DPMI szerver + a DJGPP projectben levő programindító ''stub'' forráskódjának a tanulmányozását is, és esetleg a PMODE 3.07 is érdekes lehet.
[Szerkesztve] -
g4dg3t
senior tag
HeLLa!
Halvanyak az emlekeim, de vmi meg remlik :)
Igen a GDT-t meg belepes elott kell inicializalni, de elotte illik leellenorizni hogy legalabb 386-os procrol van-e szo, es hogy esetleg vedett modban vagyunk-e mar (OS fejlesztesnel utobbit nem szukseges...)! A szegmensregiszterek vedett modban a szelektorokat tartalmazzak, ezek pedig a deszkriptorokat mutatjak...es vegul a deszkriptor fogja meghatarozni a szegmenst!
Udv Gadget. -
blemidon
tag
Hi!
Végre normális téma:)
Anno az egyik legjobb védett módú fejlesztőeszköz a watcom c/c++ volt (ezzel készült az UFO, DOOM, és társai, a.k.a dos4gw) A jó hír, hogy manapság ez már ingyenes. [L]http://www.openwatcom.org[/L]
A Sybase csinálta, csak mikor már nem nagyon kellett, abba akarták hagyni, de a SciTech, aki nagy watcom felhasználó volt, szólt nekik, hogy kéne belőle csináni ha mást nem, opensource valamit. Ez van most folyamatban.
Emellett a watcom assembler a legnagyobb asm amit szerintem valaha PCre csináltak.
Ezzel kellene megpróbálkoznod. Már régen nem foglalkoztam vele, de anno eléggé bentvoltam a témában, megpróbálok segíteni ha gondod van.
Interruptokra visszattérve:
Az int31 a ''global'' védett módú megszakítás, ennek az egyik funkciója hogy hív real módú megszakításokat. Tehát a sima int 21h nem megy, hanem úgy tdod megcsinálni, hogy int31nek megadod hogy a 21et akarod hívni ezekkel a paraméterekkel, és int31, és ő meghívja. pontosan nemtdom hogy melyik funkció, de így működik az biztos.
[Szerkesztve] -
Pizzafutar
aktív tag
Szerintem nem lehet használni az interruptokat.
Annak 3 feltétele lenne:
Létre kellene hozni az uj int. tablazatot, ez ebben a modban 8 byteos cimeket tartalmazna. A táblázat cimét be kell tolteni az IDT regiszterbe.
Létezni-e kellen az uj bios rutinoknak
Az int utasitas vedett modban kizarast eredményezhet.
Egyébként emlékeim szerint, protected modba kapcsolas utan az oprendszerek sem hasznaljak már a BIOS-t.
Az intel szintaktikához talan a fent emlitett
INTeL 80386 Programmer's Reference
# Manual, Mixing 16-bit and 32-bit code, page 16-6
Vagy google lmsw
[Szerkesztve]
Aktív témák
- Xbox Series X|S
- Motoros topic
- Yettel topik
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Samsung Galaxy A55 - új év, régi stratégia
- Gamepad
- Nintendo Switch 2
- Forradalomi előrelépésként jellemzi az NVIDIA a DLSS 5-öt
- Ha az alaplapi hangchipnél jobbra váltanál, itt az új Sound Blaster hangkártya
- Gitáros topic
- További aktív témák...
- GIGABYTE RTX 5060 8GB GDDR7 GAMING OC - Gari 2027.06.26. -ig - Eladó!
- Sapphire RX 580 8GB Nitro+ videókártya - tesztelt
- Zenit FS-12 Fotosnajper Teljes készlet Tair-35 300mm Helios 44M-4 Teljes szűrőkészlet
- Samsung Galaxy S26 Ultra 512GB - Silver Shadow - Samsung.hu, Garanciális, Kártyafüggetlen
- AOC 24G2ZE FHD/IPS/240hz (085)
- BESZÁMÍTÁS! ASRock B450M R5 5600X 16GB DDR4 512GB SSD RTX 4060 8GB Zalman S2 TG Corsair 550W
- MSI Thin GF63 - 15,6"FHD 144Hz - i5-12450H - 16GB - 512GB - Win11 - RTX 4050 - Garancia - MAGYAR
- ÁRGARANCIA!Épített KomPhone i5 14600KF 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- LG 27UP850K-W - 27" IPS LED - 3840x2160 4K - DisplayHDR 400 - USB Type-C - AMD FreeSync
- Samsung Galaxy S23 FE 128GB,Újszerű,Dobozaval,12 hónap garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
