;Scrivere un programma in linguaggio Assembly che ha in Input una stringa
;di caratteri o numeri e calcolare il numero DI CARATTERI inseriti, dividere
;questo numero per 2, e stampare a video come Output se il numero dei caratteri e' pari
;o dispari. Utilizzare macro per stampa a video.
;name "6" ;Output file name.
include 'emu8086.inc'
ORG 100h
;#MAKE_COM#
LEA SI, msg1 ;Ask for the character string
CALL GET_STRING
CALL PRINT_STRING
MOV AH, 1
INT 21h
MOV SI, 0
MOV DI, 5
vettore PROC
CMP A[DI], 5 ;Controlla se zero (Criterio di stop)
JE even_or_odd
MOV DL, A[SI] ;Legge il prossimo carattere ASCII ;Voglio visualizzare il vettore
MOV AH, 2 ;di interi(senza spazi, per ora)
INT 21h
INC SI ;Incrementa l'indice dell'Array
DEC DI ;Decrementa il DI
vettore ENDP
even_or_odd: MOV AX, SI
MOV BL, 2
MOV BH, 0
DIV BX
CMP AH, 0 ;NON L'HO CAPITA!!!!
PRINTN 'The number of characters is odd!'
CMP AH, 0
PRINTN 'The number of characters is even!'
JMP stop
stop: RET ;Return to Operating System.
msg1 DB 'Enter a character string : ', 0
A DB 5 DUP (?)
DEFINE_PRINT_STRING
DEFINE_GET_STRING
END ;Directive to stop the compiler.