school

thing1's amazing school repo
Log | Files | Refs | Submodules | README

stack.asm (854B)


      1 start: 
      2 init: 
      3 	clrf    PORTA           ; make sure port A output latches are low 
      4 	clrf    PORTB           ; make sure port B output latches are low 
      5 	bsf     STATUS,RP0      ; select memory bank 1 
      6 	movlw 	b'00000000'     ; set port A data direction to inputs 
      7 	movwf 	TRISA         
      8 	movlw 	b'00001111'     ; set port B data direction to outputs 
      9 	movwf 	TRISB          
     10 	bcf     STATUS,RP0      ; select memory bank 0 
     11 
     12 	;stackptr EQU B10
     13 	tmpdata EQU B9
     14 
     15 	goto    main 
     16 
     17 main: 
     18 	;movlw	0
     19 	;movwf	stackptr
     20 	
     21 	movlw	b'00000001'
     22 	movwf	PORTA
     23 
     24 	movlw	b'10100000'	; move 1111 to the output
     25 	movwf	PORTB
     26 
     27 	movlw	b'00000000'
     28 	movwf	PORTA
     29 
     30 	movlw 	b'11111111'    
     31 	movwf 	TRISB          
     32 	
     33 	movf	PORTB, W
     34 	movwf	tmpdata	
     35 
     36 	movlw 	b'00001111'     
     37 	movwf 	TRISB          
     38 
     39 	swapf	tmpdata, W 
     40 	movwf	PORTB
     41 noend:
     42 	goto 	noend
     43 	END		        ; ends the program