🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #86

Re: [x86] problem z przełączaniem zadań przez CALL/IRET

#86
From: Lopez
Date: Tue, 31 Jan 2006 07:00
62 lines
3533 bytes
Użytkownik "Wiktor S." napisał w wiadomości...
> > Instrukcja ret spowoduje powrot do poprzedniego TSS tylko
> > wtedy gdy jest to zadanie zagniezdzone, czyli jest ustawiony
> > bit NT rejestru eflags.
>
> Ale bit ten ustawia chyba właśnie call do zadania?
> (opieram się na podręczniku AMD64 Architecture Programmer's Manual)

No wlasnie nie zawsze, kiedy to ma miejsce nie potrafie teraz dokladnie
powiedziec. Mozesz po bochsem to latwo sprawdzic, wystarczy ze zrobisz
sobie w odpowiednim momencie petle w programie, i po uruchomieniu
wyswietlisz stan rejestrow procesora.
Co do manuali do dobrze by bylo abys zdobyl wczesniejsze
wersje Intela. Jezeli dopiero poznajesz ta architekture latwiej bedzie Ci
w nich odnalezc najwazniejsze informacje, bez zastanawiania sie czy to
jakis zbedny do ficzer.

> >>> Po co robic takie obejscia w stylu db 9ah...,
>
> >> Bo tasm (w przeciwieństwie do nasma) jest porąbany
>
> > Ja juz dawno porzucilem tasma,
> > Poczatkowo na rzecz nasm'a, potem byl fasm, a obecnie at&t.
>
> at&t jest straszne.
> Pół biedy z tymi wszystkimi % i $, gorzej że kod trzeba się nauczyć
> czytać od tyłu ;-)

Trzeba byc elastycznym, jak sie zna kilka jezykow to jeden wiecej
nie robi roznicy, a na unixach to jest niestety standard.
Co prawda nasm i fasm tez dziala na linuxie, ale nasm niestety
nie jest juz rozwijany i obsluguje tylko x86, fasm dodatkowo x86-64.

> >>> a do testowania bardziej sie chyba nada bochs,
> >>> http://bochs.sourceforge.net/
>
> >> Dlaczego bardziej? Bochs jest dużo wolniejszy, bo emuluje procka
> >> programowo.
>
> > Przy takim przykladzie raczej nie zauwazysz wplywu emulacji
> > na szybkosc dzialania twojego programu.
>
> Ale zauważam przy pisaniu i kompilacji, a dla wygody wszystko robiłem
> pod VPC.
>
> > No i w przeciwinstwie do M$ VirtualPC jest darmowy.
>
> na VirtualPC mam licencję. Ale, ale -- właśnie widzę, że program
> odpalony na "na żywo" jak i pod Bochsem działa prawidłowo... czyli to
> nie ja tylko M$ coś schrzanił w emulatorze? :-/

Bo w VPC nie jest tak na prawde produktem stworzonym przez M$,
to po pierwsze, a po drugie nie jest emulatorem. Posiada on szereg
mechanizmow akceleracji, dzieki ktorym jest szybki, ale moze sie tez
zachowywac dziwnie. IMHO zarowno VPC jak i VMware nie nadaja
sie do testowania kodu na tak niskim poziomie. Poza Bochs'em
jest jeszcze qemu, podobno jest troche szybszy,
moze on Ci przypadnie do gustu.

-- 
Pozdrawiam
Lopez
Technical Details
Message-ID: <drn1tb$on5$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <drjd1e$95k$1@news.onet.pl> <drkctm$2s2$1@inews.gazeta.pl> <drkso7$81k$1@news.onet.pl> <drlh45$mo6$1@inews.gazeta.pl> <drm1ff$d0d$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Lopez" <rtlopezREMOVE@gazeta.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: [x86] problem z przełączaniem zadań
 przez CALL/IRET
Date: Tue, 31 Jan 2006 08:00:25 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 63
Message-ID: <drn1tb$on5$1@inews.gazeta.pl>
References: <drjd1e$95k$1@news.onet.pl> <drkctm$2s2$1@inews.gazeta.pl> <drkso7$81k$1@news.onet.pl> <drlh45$mo6$1@inews.gazeta.pl> <drm1ff$d0d$1@news.onet.pl>
NNTP-Posting-Host: dns.zbt.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1138690795 25317 80.249.4.138 (31 Jan 2006 06:59:55 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Tue, 31 Jan 2006 06:59:55 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
X-Priority: 3
X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
X-User: rtlopez
X-MSMail-Priority: Normal
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit