Longueur de la chaîne d'entrée dans le langage d'assemblage
Je veux faire deux choses:
1) Prendre une chaîne à partir d'utilisateur
2) trouve la longueur de cette chaîne
J'ai essayé le code suivant:
.model small
.stack 100h
.data
MAXLEN DB 100
ACT_LEN DB 0 ;Actual length of the string
ACT_DATA DB 100 DUP('$') ;String will be stored in ACT_DATA
MSG1 DB 10,13,'ENTER STRING : $'
.CODE
START:
MOV AX,@data
MOV DS,AX
;Normal printing
LEA DX,MSG1
MOV AH,09H
INT 21H
;Cant understand code from here!
LEA DX,ACT_DATA
MOV AH,0AH
MOV DX,OFFSET MAXLEN
INT 21H
LEA SI,ACT_DATA
MOV CL,ACT_LEN
;AND THEH SOME OPERATIONS
END START
Mais je ne sais pas comment la longueur est stocké dans CL
vous inscrire, c'est à dire comment le ACT_LEN
valeur est incrémentée? Et ce n' mov AH,0A
a la relation avec la longueur?
Vous devez vous connecter pour publier un commentaire.
Int 21/AH=0Ah
De la mémoire tampon d'entrée d'interruption de remplir ces valeurs.
Vous n'avez pas besoin
LEA DX,ACT_DATA
mov AH,0A
est le numéro de l'interruption de l'appel. Ralph Brune a une grosse liste des interruptions avec les descriptions et tout ce qui va dans/qui vient de sortir.