innanzitutto ti serve il metodo o comunque il codice che legge il carattere da tastiere, lo hai?
una volta acquisito il carattere (sullo stack hai l' ascii del carattere) ti conviene salvaro in una variabile, dichiarata nel metodo (puoi anche non farlo e usare solo lo stack, ma se sei alle prima armi è meglio di si)
a questo punto devi controllolare se l' ascii del carattere è compreso tra 0x61 e 0x7A
per far ciò, puoi usare solo l' istruzione IFLT offset, la quale esegue le istruzioni dopo la label offset, solose il valoro in cima allo stack è negativo
es.
iload x /porta il valore della var x in cima allo stack
dup /duplica il valore in cima allo stack, perchè la iflt decrementa lo stack pointer
iflt neg /se il valore in cima allo stack è <0, va a neg
bipush 20 /altrimenti esegue il codice dopo la iflt
iadd
goto fine /va alla label fine
neg:
bipush 30
isub
fine:
halt
se la x<0 il codice fa x+20 ed esce
se la x>=0 il codice fa x-30 ed esce
per il tuo codice devi fare 2 controlli, e siccome puoi usare solo la iflt, devi usare anche la isub
x:ascii del carattere
x deve essere >=0x61 riducibile in x>0x60 perchè lavori solo con numeri interi, lo devi ancora trasformare come (...)<0 in questo caso: 0x60-x<0
in codice:
bipush 0x60
iload x
isub //isub,fa la differenza l' elemento al top dello stack (che verrà eliminato)e quello appana sotto (che sarà modificato come risultato)
iflt maggiore_60
ireturn 0
maggiore_60
alla label maggiore_60 (sei sicuro che x sia >=0x61), devi fare una cosa analoga al codice sopra, ma con 0x7A
fammi sapere se hai ancora bisogno