Testo:
Si scriva un programma in linguaggio Assembler 8086 che esegua le seguenti operazioni:
a)Acquisisca da tastiera un carattere
b)Manipoli il carattere acquisito in modo che:
b1)Se si tratta di un numero (‘0’,’1’,....,’9’) non esegua alcuna operazione.
b2)Se si tratta di un carattere alfabetico minuscolo (‘a’,’b’,...,’z’) lo converta nel suo corrispondente maiuscolo (‘A’,’B’,...,’Z’) e viceversa
b3)Se non appartiene alla due precedenti categorie, lo sostituisca col carattere “*”
c)Ristampi a video il carattere eventualmente modificato.
Soluzione:
.model small
.stack
.data
.code
.startup
MOV AH, 1
INT 21H ;legge e mette in AL
MOV AH, 'a'
SUB AH, 'A'
CMP AL, '0'
JBE nonnum
CMP AL, '9'
JAE nonnum
MOV DL, AL
JMP fine:
nonnum:
CMP AL, 'a'
JBE nonmin
CMP AL, 'z'
JAE nonmin
SUB AL, AH
MOV DL, AL
JMP fine:
nonmin:
CMP AL, 'A'
JBE niente
CMP AL, 'Z'
JAE niente
ADD AL, AH
MOV DL, AL
JMP fine
niente:
MOV DL, '*'
JMP fine
fine:
MOV AH, 0
INT 21H ;scrive cio' che c'e' in DL
.exit
end
| < Prec. | Succ. > |
|---|






