Salve a tutti,ho cercato la sezione relativa alle presentazioni ma non l'ho trovata quindi mi scuso se mi presento qui. Sono francesco,19 anni,e studio ingegneria elettronica e informatica. Sono al secondo anno e alle prese con l'8086 della intel. Provavo a svolgere questa traccia Realizzare in un linguaggio assemblativo una procedura che riceve in ingresso il puntatore a una stringa di caratteri terminata da 0 (ASCII NUL) e che restituisca la lunghezza della stessa. La procedura dovrà essere richiamabile da un programma esterno e ricevere il numero n come parametro variabile attraverso lo stack. Ho provato a elaborare qualcosa e vorrei un vostro parere in merito al mio procedimento.
codice:
PUSH BP
MOV BP,SP
MOV DX,DI ; salva DI
MOV AX,DS
MOV ES,AX
MOV DI,Word Ptr [BP+04] ;puntatore alla stringa
XOR AX,AX ;azzero AX
MOV CX,0FFFFH ;il massimo numero rappresentabile 65536
REPNE SCASB ; scansiono la stringa fino a cercare la fine
NOT CX
DEC CX
XCHG AX,CX ;sposto il valore di ritorno in ax
MOV DI,DX
POP BP ;ripristino bp
RET
Ci sono errori? avreste altri modi di svolgere il tutto? Grazie a tutti!