Mostra notizie nelle discussioni
Avatar
☺
Scritto da
altg
utente che non utiene
il 2013-09-29 05:25:31.0 alle 2013-09-29 05:25:31.0
Trollate totali: 11540
Lo risapevate? ma trombare?  
...che quel belliffimo systema che la MS chiama Finestre, dopo tutti questi anni, ha dei problemi se una sua applicazione gira col direction flag impostato? A quanto pare ci sono delle chiamate asincrone che non si possono controllare, e che se beccano il thread che stava eseguendo in quel momento con DF=1 in EFLAGS, fanno casino in memoria. Ho verificato divertenti conseguenze mentre allocavo una console (AllocConsole), tipo che il programma funzionava se aveva un certo nome ma non un altro nome (l'eseguibile, proprio), e ovviamente non per via della lunghezza dei nomi, no... proprio la sequenza di lettere. Rotola dal ridere

E` sempre stato un sistema assurdo. Mi ero documentato prima della scelta di usare DF come call state, ma msdn diceva che era importante solo per le funzioni del "C run-time" di Visual Studio. Sicche` m'ero detto vabbe', questa e` un'altra cosa. Invece e` proprio il sistema fallato, non sopporta bene STD mentre sta animando delle cazzate sullo schermo tipo una finestrella di testo. Triste

Il problema e` che ora non posso usare DF per il call state. O rinuncio al call state, che pero` mi piace come idea, oppure lo sposto da un'altra parte conveniente. Vi viene in mente nulla di thread-safe, considerato che tutti i registri sono occupati e che lo stato di quel flag dev'essere indipendente dal call stack? Fantasma

Intanto provo a spostarlo nel bit di segno di ESI, che mappa il registro E. Ma siccome "E" viene usato per mappare i call frame e quindi e` sempre un puntatore n-flat, i puntatori n-flat sono a 30 bit dove ce ne sono 32 perche` vengono multiplicati incondizionatamente per 4 dall'address generator, quindi i due bit piu` alti sono in teoria disponibili. Diventa casinoso pero` impostare e dismettere i call frame stando attenti a non modificare il bit di segno di ESI. La questione e` contorta. Perplesso

Trova Wakanda!

Ad https://imgoat.com/uploads/edebb6e872/182095.jpg
Solo il 5% riesce a trovarla! Provaci anche tu!!‎

Pagina generata in 58 millisecondi

Utenti attivi: 8 nell'ultimo minuto, 26 negli ultimi cinque minuti, 51 negli ultimi 15 minuti