J'ai besoin d'écrire un programme dans ASSEMBLY pour rechercher une chaîne (entrée pour clavier) dans tous les fichiers du dossier en cours. Quelle interruption puis-je utiliser et quel est l'algorithme de ce programme?rechercher une chaîne dans un fichier dans l'ASSEMBLAGE
Répondre
Hmm ... voici un code que j'ai écrit (au moins je pense je l'ai écrit - il ressemble à du code que j'aurais écrit, mais il n'a pas de commentaires pour le confirmer) pour lister le fichiers dans un répertoire:
.model small, c
.stack
.data
file_spec db "*.*", 0
DTA db 128h dup(0)
buffer db 30 dup(0)
.code
main proc
mov ax, @Data
mov ds, ax
mov dx,offset DTA
mov ah,1Ah
int 21h ; set DTA location
mov dx,offset file_spec
xor cx, cx
mov ah,4Eh
int 21h
jc quit
print_name:
lea si, DTA + 30
next_char:
lodsb
int 29h
test al, al
jnz next_char
mov al, 13
int 29h
mov al, 10
int 29h
mov dx, offset file_spec
xor cx, cx
mov ah, 4fh
int 21h
jnc print_name
quit:
mov ax, 4c00h
int 21h
main endp
end main
Voici une autre qui ouvre et affiche un fichier:
data segment para public 'DATA'
line db 80 dup(?)
file db "test.txt"
handle dw ?
data ends
code segment para public 'CODE'
assume ds:data
assume cs:code
main proc
mov ax,data
mov ds,ax
; okay. First, open the file
mov dx,offset file
mov ax,3d00h
int 21h
mov handle,ax
read_loop:
mov dx,offset line
mov bx,handle
mov cx, 80 ; the size of our buffer.
mov ah,3fh
int 21h
jc done
test ax,ax
jz done
mov bx,1
mov cx,ax
mov dx,offset line
mov ah,40h
int 21h
jmp read_loop
done:
mov ax,4c00h
int 21h
main endp
code ends
end main
la recherche des données dans le fichier seraient essentiellement une question d'écrire un strstr
en langage assembleur. Vous voudrez probablement commencer par une analyse rapide en utilisant rep cmpsb
, puis effectuez une comparaison octet par octet lorsque vous trouvez une correspondance candidate. Si cela échoue, vous augmentez la position et réessayez.
merci beaucoup. Cela m'aide vraiment –
- 1. comment rechercher une chaîne dans le fichier
- 2. comment rechercher une chaîne dans un fichier texte en C#
- 3. rechercher une chaîne unicode dans un fichier en utilisant java
- 4. Rechercher et remplacer une chaîne dans un fichier
- 5. Rechercher une chaîne dans un fichier journal dynamique
- 6. Rechercher une chaîne dans un fichier en utilisant c langauge
- 7. Rechercher une chaîne dans une chaîne
- 8. Comment rechercher un motif dans une chaîne?
- 9. Rechercher une chaîne dans un tableau Excel
- 10. Rechercher une chaîne dans un texte
- 11. Rechercher une chaîne dans un tableau
- 12. Comment rechercher une chaîne dans un tableau
- 13. rechercher une chaîne dans DataGridView
- 14. Rechercher une chaîne dans REQUEST_URI
- 15. rechercher une chaîne de format JSON dans le fichier Java
- 16. Rechercher une chaîne dans une page Web sans l'enregistrer dans un fichier?
- 17. Rechercher une phrase dans une chaîne (C#)
- 18. Rechercher un mot-clé dans une chaîne longue dans mysql?
- 19. Rechercher un caractère dans une chaîne dans Ada
- 20. rechercher une chaîne dans un tableau de cellules
- 21. Rechercher une chaîne dans un tableau et retourner un index
- 22. Utilisation de grep pour rechercher un fichier contenant une chaîne
- 23. rechercher une chaîne entre crochets dans vb.net
- 24. Rechercher des mots individuels dans une chaîne
- 25. Rechercher dans une chaîne en Python
- 26. Rechercher et remplacer dans une chaîne
- 27. comment rechercher une chaîne exacte dans mysql
- 28. Rechercher si une chaîne existe dans une autre chaîne
- 29. Rechercher une chaîne spécifique dans une autre chaîne
- 30. Rechercher une sous-chaîne entre caractères spéciaux dans une chaîne
Je suppose que ce sera infructueux, mais quelle plateforme ciblez-vous? –
La langue n'affecte pas vraiment le (s) algorithme (s) que vous souhaitez utiliser. –
@Jerry: Non, mais il demande des interruptions, ce qui implique qu'il veut plus qu'un algorithme général de recherche de chaînes. –