Intanto 250x100 fa 25.000, non 2.500 come hai scritto tu (anche se poi l'HEX è giusto :-)) .
Dovresti poi prendere il datasheet e controllare le istruzioni, perché alcune pongono il risultato nel registro, altre in celle di memoria. Dal codice mi pare di capire che:
caricano i due fattori uno alla volta in R24 e subito li salvano in memoria, nelle celle Y+1 e Y+2
poi caricano ogni fattore in 2 registri differenti ed iniziano un certo numero di operazioni
alla fine dovresti avere tutto nella coppia R22, R0, se non sbaglio.
Ma l'assembly è una brutta bestia, le istruzioni sono da pag. 202, come vedi diverse interessano registri e bit di flag, sono un pò arrugginito a dire la verità
si ho mancato uno zero nel post ma il listato e' giusto
alcune operazioni parlano chiaro, come ad esempio la succitata MUL, ma nel caso specifico invece proprio mi manca meta' risultato.
R0 si, confermo come avevo scritto, contiene meta' risultato, mentre R22 non c'entra perche' viene usato sull'istruzione "Logical Shift Left" fino a che shiftando shiftando non arriva a 0, dopodiche' viene alterato il branching. Quindi R22 e' sempre 0x00 alla fine