Lecture et ecriture d'un caractere et d'une chaine de caractere !

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 905 fois - Téléchargée 16 fois

Contenu du snippet

bon j'ai essayer d'utiliser des interruption pour la première fois je suis vraiment débutant en assembleur la lecture d'un caractère marche correctement mais pour la chaine de caractère il y a un petit problème un caractère a parai aven la chaine entrer !
tous les conseil critique son les bien venu !

Source / Exemple :


data segment 
v db 'taper un caractere  !                                                           $'
v2 db 'tapez une chaine de caractere  !                                                $'
m1 db 'le caractere taper est : $'
m2 db 'la chaine taper est : $'
chaine db 13,14 dup('$')
data ends
spile segment para stack
bpile equ this word 
spile ends
assume ds:data , cs :code, ss:spile
code segment 
debut:
		mov ax,data
		mov ds ,ax
		mov ax,spile
		mov ss,ax
		mov sp,bpile
		
		mov ah,0
		mov al,02
		int 10h
		
		
		mov dx,offset v
		mov ah,09h
		int 21h
		
		mov ah,0Ch
		mov al,08h
		int 21h
		
		mov ah,0
		int 16
		mov bl,al
	    mov dx,offset m1
		mov ah,09h
		int 21h
		
		mov ah,09h
		mov al,bl
		mov bl,7
		mov bh,0
		mov cx,1
		int 10h
		
		mov dh ,1
		mov dl,30
		mov ah,2
		mov bh,0
		int 10h
		
		mov dx,offset v2
		mov ah,09h
		int 21h
		
		mov ah,0Ch
		mov al,08h
		int 21h
		
		mov dx,offset chaine
		mov di,dx
		mov byte ptr [di],10
		mov ah,0ah
		int 21h
		
		
		
		
		mov dx,offset chaine
		mov ah,09h
		int 21h
		
fin:						
mov ah,4ch 	
int 21h
code ends
end debut

A voir également

Ajouter un commentaire

Commentaire

zilot2
Messages postés
8
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
15 novembre 2009

bonjours je suis debutant en asm et j'utilise emu8086 comme interface pour moi c la meilleur
votre probleme est la string take this note about 0ah fonction
INT 21h / AH=0Ah - input of a string to DS:DX, fist byte is buffer size, second byte is number of chars actually read. this function does not add '$' in the end of string. to print using INT 21h / AH=9 you must set dollar character at the end of it and start printing from address DS:DX + 2.

je crois que ca va resoudre votre probleme et voici un exemple :
org 100h
mov dx, offset buffer
mov ah, 0ah
int 21h
jmp print
buffer db 10,?, 10 dup(' ')
print:
xor bx, bx
mov bl, buffer[1]
mov buffer[bx+2], '$'
mov dx, offset buffer + 2
mov ah, 9
int 21h
ret

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.