[Turbo Assembleur] Récup données

Statut
N'est pas ouverte pour d'autres réponses.

Froggy

fake geek
au même endroit ou tu déclare le nom de la routine :)
 
1er
OP
Angy

Angy

Elite
Et dans mon programme principal, je dois y mettre quoi pour qu'il reconnaisse les routines de l'autre?
 

Froggy

fake geek
simplement EXTERN nomdelaroutine au début et puis call routine pour l'appeler ;)
 
1er
OP
Angy

Angy

Elite
Fiou... je me répète, tu l'avais déjà dis. Désolé :-D

Bon. Global foire, je crois que Public revient au même?

Sinon, ca foire :-( (j'ai pas mis grand chose dans le programme, c'est normal vu que j'essaye d'abord de linker les routines :-D )


Principal
Code:
.386

Donnees SEGMENT PARA PUBLIC USE16
	Chaine1 db 'Entrez un nombre en hexadecimal: ','$'
	Chaine2 db 'Voici le nombre en decimal: ', '$'
	nbHexa db 2 dup(0)
	nbDeci db 2 dup(0)
		
Donnees ENDS


Code SEGMENT PARA PUBLIC USE16
	ASSUME DS: Donnees,CS:Code

	EXTRN affiche, encode, passeligne, conversion
debut:
	mov AX,Donnees
	MOV DS,AX
	mov dx, offset chaine1
	call affiche
	call passeligne
	mov dx, offset nbHexa
	call encode
	call passeligne
	call conversion
	mov dx, offset chaine2
	call affiche
	
	mov ah,4cH
	int 21h
 


Code ENDS
Pile SEGMENT PARA stack USE16 'stack'
	db 256 dup (?)
Pile ENDS
end debut

Routines
Code:
.386


Donnees SEGMENT PARA PUBLIC USE16

		
Donnees ENDS


Code SEGMENT PARA PUBLIC USE16
	
	
	Public affiche, encode, passeligne, conversion


	affiche proc near
	; affiche le contenu de la variable dans dx
	;
	; Entree: DX = offset de la variable … afficher
	;
	; Sortie: rien
	; 
		
	push ax
	mov ah,09h
	int 21h
	pop ax
	ret
	affiche endp	


	encode proc near
	;Entree: DX = offset de la variable receptrice
	;
	;
	;Sortie: ah = contient nombre caract pr‚sent dans le tampon
	;

	push bx
	mov bx,dx
	mov [bx],ah
	mov ah,0Ah
	int 21H
	mov ah,[bx+1]
	pop bx
	ret
	encode endp

	passeligne proc near
	; Passe … la ligne et fait un carriage return
	;
	; Entree: rien
	;
	; Sortie: rien 
	;
	push ax
	push dx
	mov dl,0dh
	mov ah,02h
	int 21h
	mov dl,0ah
	mov ah,02h
	int 21h
	pop dx
	pop ax
	ret
	passeligne endp
	
	conversion proc near
	
	ret
	conversion endp

END
Code ENDS
Pile SEGMENT PARA stack USE16 'stack'
	db 256 dup (?)
Pile ENDS
 

Ahava

Revenant
D'ou il sait que tes liens sont pas des variables externes mais bien des fonctions externes ?


J'ai vraiment vraiment plus le courage d'aller chercher comment ça marche vraiment ce bidule là, moi comme Froggy j'ai fait de l'ASM, pas du Tubro ASM, mais je te file toutes mes sources, projets & autres (c'est le foutoir parfois) de mes deux premières années à l'ESI (oui, je l'ai aussi faite en deux fois :oops: ) :



ps : Froggy si t'a besoin d'aide ou autres hésite pas à me demander hein ! :)
 

Froggy

fake geek
bah c'est sur que je peux pas te garantir que ça marchera pour le turbo asm mon truc hein ... comme l'a dis ahava ... nous on fait/a fait du asm tt court :/


ps : merci pour la proposition ahava, je n'y manquerai pas si jamais j'en ai besoin ;) :proud:
 
1er
OP
Angy

Angy

Elite
C'est bon!!! J'ai trouvé :-D

Merci quand même :cool:
 
1er
OP
Angy

Angy

Elite
Quelqu'un aurait déjà fais une conversion héxa en décimal en assembleur? Parce que j'y arrive pas :-(
 

Ahava

Revenant
Décimal ? Tu dois alors utiliser le co-processeur mathématique pour ça...


T'es prêt à t'y frotter ? :p
 

Froggy

fake geek
Ahava a dit:
Décimal ? Tu dois alors utiliser le co-processeur mathématique pour ça...


T'es prêt à t'y frotter ? :p

je crois pas qu'il y ai vraiment besoin de ça, non ?

il me semble que je l'ai fais l'année dernière et que c'était faisable sans puisqu'on en a pas parler :p
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut