Hi!
Eddig Visual Basic 4-ben programoztam, de most nekialltam valami
komolyabbnak, es a Visual C++ 5.0-ra esett a valasztasom. Azonban
nezegettem a seged anyagokat a boltokban is, de nem talaltam tul
hasznalhatot. Eddig a Visual sorozatnal a C++ 1.0-tajekaig lattam konyvet,
azontul csak a C-hez vannak.
Mindenesetre az egesz rendszer uj meg a developer studio-val egyutt.
Vegulis szuksegem lenne valami hasznalhato iromanyra/konyvre ami lehetoleg
ezen a verzion keresztul probalja bemutatni a nyelvet..
Lehetoleg magyarul, de angol sem rossz.
Elore is kossz annak, aki segiteni tud...
u.i. Visual C++-os levlista van valahol??
Wintel
|
Sziasztok !
A kerdesem az lenne, hogy vajon a Celeron alatt BP 7-essel forditott
proggik miert allnak le zero divide (0. kivetel) hibaval ?
Es vajon sima Pentiumon miert nem tortenik meg ugyanez?
Szoval en vegigdebugoltam egy ilyen proggit, es a kovetkezo kodnal
lepett fel a kivetel
...
not dx ; DX:AX -en valami hatalmas ertek lesz
mov cx,0037h
div cx ; ezutan az eredmeny >65535
Annyit tudok, hogy a 0. kivetelt okozhatja az is, hogy az eredmeny
nem fer el az AX-ben. Itt eppen ez tortenik valoszinuleg.
De akkor ez miert nem fordul elo egy olyan konfigon, amelyben "csak"
a processzor kulonbozik (konkretan P133) ?
Az is jo lenne, ha valaki meg tudna mondani mit kavar ilyenkor a
Pascal ? Valoszinuleg a crt unit inicializacios kodjaban lehet
valami (a begin end. kozott). Lehet, hogy a CRT forrasa is segiteni
tudna.
Ha ezt leforditom:
begin
end.
akkor minde ok.
Viszont ha fejlesztem egy kicsit:
uses crt;
begin
end.
Akkor fellep a 0. kivetel.
UI: Annyira nincs szuksegem a BP70-re csak idegesit, hogy nem
tudom az okat.
Ja egyebkent Borland C++ 3.1 -nel is elofordul ue. a
jelenseg. Sot, ha TASM 3.1 forditom a kovetkezo kodot
P133 alatt, akkor is (ezt mondjuk ertem miert van):
.model small
.code
org 100h
start:
push cx
mov cx,0037h
div cx
pop cx
ret
end start
Bye!
-- Laci
mailto:
|