subtraktioner av 100 resp 10. OK, själva metoden är väl helt solklar
hoppas jag, annars borde du "torrsimma" den med papper och penna
med lite olika värden så att det sitter ordentligt.
Sen ska vi se på koden...

Som det ser ut så förväntar du en 100-talssiffra på enbart "1" eller "0", eller hur ?
Vad är h'30' i "movwf h'30'" ?
För 10-tals siffran gör du i princip samma sak, men med det som blev
över från "Omvandla1" men du behöver en räknare för att hålla reda på
hur många gånger du har dragit av 10. Något i stil med :
Kod: Markera allt
crlf tens ; tens är en tidigare definierad variabel...
movf Result, W ;Läs värdet till W, måste ligga för labeln !!
Omvandla3 ;Ental
sublw 10 ;Dra av 10.
incf tens, f ; Öka tens med 1
btfss W ;är värdet negativt? Ja=hoppa en instruktion
goto Omvandla3 ;upprepa OMvandla3
decf tiotal,f ; minska tens med 1 eftersom det nu är 1 för mycket...
addlw 10 ;Gör värdet positivt, är nu "ental".
movwf ental ; En tidigare definbierad varabel...
Sen, om du tror att du kan testa W-registret för "noll" med "btfss W" så har du fel !
Kolla beskrivningen av instruktionerna SUBLW och BTFSS. Det är bitarna
i STATUS registret du ska kolla, t.ex "BTFSS STATUS, C" eller något liknande.
Det får räcka tillsvidare...