; Assembly PIC18 - Versione 0.1 - Agosto 2017 ; Copyright (c) 2016-2017, Vincenzo Villa ; Creative Commons | Attribuzione - Condividi allo stesso modo 4.0 Internazionale (CC BY-SA 4.0) ; Creative Commons | Attribution-Share Alike 4.0 Unported ; http://www.vincenzov.net/tutorial/PIC18/Assembly/esercizi.htm ; Conversione da binario 16 bit ad ASCII (esempio 6b) #include "p18f26k20.inc" ; Nome dei registri e dei flags RADIX DEC ; Usa la base 10 UDATA_ACS count res 1 ASCII res 5 bin res 2 inizio CODE 0 ; esempio 1: 12345 (0x3039) movlw 0x39 ; LSB movwf bin movlw 0x30 ; MSB movwf bin+1 ; Esempio 2: 65535 (0xFFFF) ; movlw 0xFF ; movwf bin ; movwf bin+1 Bin16ToASCII movlw 16 movwf count clrf ASCII clrf ASCII+1 clrf ASCII+2 clrf ASCII+3 clrf ASCII+4 repeat rlcf bin rlcf bin+1 movf ASCII+4,w addwfc ASCII+4,W daw btfsc WREG,4; bsf STATUS, C andlw 0x0F movwf ASCII+4 movf ASCII+3,w addwfc ASCII+3,W daw btfsc WREG,4; bsf STATUS, C andlw 0x0F movwf ASCII+3 movf ASCII+2,w addwfc ASCII+2,W daw btfsc WREG,4; bsf STATUS, C andlw 0x0F movwf ASCII+2 movf ASCII+1,w addwfc ASCII+1,W daw btfsc WREG,4; bsf STATUS, C andlw 0x0F movwf ASCII+1 movf ASCII,w addwfc ASCII,W daw btfsc WREG,4; bsf STATUS, C andlw 0x0F movwf ASCII decfsz count bra repeat movlw 0x30 addwf ASCII, f addwf ASCII+1, f addwf ASCII+2, f addwf ASCII+3, f addwf ASCII+4, f sleep END