FURAX! int 21h sous fonction 42h - ASM - Programmation
Marsh Posté le 31-08-2005 à 11:48:40
Voici les réponses (source : MS-DOS Encyclopedia, MS Press, 1988, page 1312)
doit-on rentrer dans cx:dx des nombres signés? |
Si l'on veut faire un déplacement à partir du début du fichier (AL=0), alors CX : DX est un entier 32-bit positif. Sinon, pour AL=1 (déplacement à partir de la position courante) ou AL=2 (déplacement à partir de la fin du fichier), CX : DX peut être positif ou négatif.
quelle valeur de dx pour un déplacement de +1 octet ? |
DX = 1 et CX = 0.
quelle valeur de dx pour un déplacement à l'octet précédent |
DX = - 1 et CX = 0.
Marsh Posté le 31-08-2005 à 11:55:40
Réponses complémentaires :
aucune fonction ne donne la position du pointeur |
Faux. La fonction 42h retourne la position du pointeur dans DX : AX, si on lui donne AL = 1, BX = handle, CX = 0, DX = 0.
Marsh Posté le 31-08-2005 à 16:27:06
merci beaucoup pour la réponse, que j'ai trouvé pendant la nuit d'ailleurs...eh oui, aucuns des ouvrages que j'ai ne mentionne qu'avec cx et dx à 0 (al=1) la fonction nous retourne la position du pointeur...d'autant qu'avec al=2 on obtient le déplacement du pointeur à la fin et en retour la taille du fichier...aucuns sites ne le précisent non plus quand ils détaillent la fonction 42h...j'aurais peut-être du y penser plus tôt!
en tous cas encore merci pour votre aide!
Marsh Posté le 04-09-2005 à 08:44:25
On a pourtant la même fonction en C dérivée de la 42h.
Marsh Posté le 03-01-2008 à 22:00:42
le problème, c'es que le c, je ne le lis pas, je n'ai jamais pu m'y faire... je déteste!
on dirait que le type qui a inventé ce language a utilisé certains signes pour s'en servir de pointer... comme le "+" par exemple...
je déteste au plus haut point! (j'préférais le pascal...)
je sais, j'suis vieux... mais bon...
Marsh Posté le 03-01-2008 à 23:21:51
flyeric a écrit : on dirait que le type qui a inventé ce language a utilisé certains signes pour s'en servir de pointer... comme le "+" par exemple... |
flyeric a écrit : je déteste au plus haut point! (j'préférais le pascal...) |
MAIS OUAIS !
MOI AUSSI JE PREFERE ECRIRE POINTEUR^ QUE *POINTEUR §§§
flyeric a écrit : je sais, j'suis vieux... mais bon... |
T'as pensé à essayer ADA ?
(et au passage, pelle d'or of teh day )
Marsh Posté le 03-01-2008 à 23:27:19
Elmoricq a écrit : |
"Ada" !
Spoiler : |
Spoiler : |
Marsh Posté le 20-02-2008 à 11:00:31
tardis
Je suis (à la base) programmeur en ASM. Et venir au C a été trés facile pour moi...
En rêgle générale, pour la gestion des fichiers c'est un format d'entiers non signés.
Marsh Posté le 31-08-2005 à 01:11:26
comment décrémenter (de 1, de 2 de x octets) la position du pointeur dans le fichier ouvert en mode 1 (al=1, distance se rapportant à la position actuelle du pointeur)
aucune fonction ne donne la position du pointeur...avec cette information j'aurais pu decrementer le mot de poids faible de la position du pointeur, la copier et rebalancer le tout dans int 21h f 42h...mais elle n'existe pas. les fonctions de manipulation de fichier ne donnent que l'adresse du buffer ou sont stockés les octets lus ou écrits...
dans la sous fonction 42h,
doit-on rentrer dans cx:dx des nombres signés?
quelle valeur de dx pour un déplacement de +1 octet ?
quelle valeur de dx pour un déplacement à l'octet précédent (-1) ? (c'est précisément ce que je recherche)
ça m'agace beaucoup...je devrais contimuer mon pgm mais je suis bloqué à cause d'une bétise...en réalité, je suis fou de rage de perdre mon temps pour un détail...
merci à caux qui pourront m'aider!