riccardinofuffolo

Architetture dei Sistemi a Elaborazione - 0301

Nov 6th, 2012
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Architetture dei Sistemi a Elaborazione - a.a. 2012/13
  2. ; Esercitazione di Laboratorio 3    
  3.  
  4. ; 1. Si scriva un programma in linguaggio Assembler 8086 che esegua le seguenti operazioni:
  5. ;    a. Acquisisca da tastiera una stringa di caratteri
  6. ;    b. Controlli se la stringa acquisita è palindroma
  7. ;    c. Visualizzi a video un messaggio
  8. ;        i. che indichi se la stringa se è palindroma o meno
  9. ;       ii. nel caso non sia palindroma stampi a video la stringa invertita
  10.  
  11. .MODEL SMALL
  12. .DATA
  13.      
  14. STRINGA DB 32, ?, 32 DUP("$")  
  15. SUCCESS DB "STRINGA PALINDROMA", "$"
  16.  
  17. .STACK    
  18. .CODE
  19. .STARTUP  
  20.     LEA DX, STRINGA
  21.     MOV AH, 0AH    
  22.     INT 21H    
  23.    
  24.     XOR CX, CX
  25.     MOV CL, STRINGA+1
  26.     MOV BX, CX
  27.     SHR CX, 1  
  28.    
  29.     LEA SI, STRINGA+2
  30.     LEA DI, STRINGA+BX+2-1
  31.    
  32. CICLO:  MOV AH, [SI]
  33.         MOV AL, [DI]
  34.         CMP AH, AL
  35.         JE WIN
  36.         MOV DH, 0FFH
  37. WIN:    MOV [SI], AL
  38.         MOV [DI], AH
  39.         INC SI
  40.         DEC DI
  41.         LOOP CICLO
  42.        
  43.         LEA DX, SUCCESS
  44.         JMP STAMPA        
  45. FAIL:   LEA DX, STRINGA+2
  46.  
  47. STAMPA: MOV AH, 09
  48.         INT 21H
  49.              
  50. .EXIT
  51. END
Advertisement
Add Comment
Please, Sign In to add comment