summaryrefslogtreecommitdiff
path: root/electronics/asm/stack.asm
blob: 5d78ada2fc1503e4e321451fcf0b8b21fe6ac1f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
start: 
init: 
	clrf    PORTA           ; make sure port A output latches are low 
	clrf    PORTB           ; make sure port B output latches are low 
	bsf     STATUS,RP0      ; select memory bank 1 
	movlw 	b'00000000'     ; set port A data direction to inputs 
	movwf 	TRISA         
	movlw 	b'00001111'     ; set port B data direction to outputs 
	movwf 	TRISB          
	bcf     STATUS,RP0      ; select memory bank 0 

	;stackptr EQU B10
	tmpdata EQU B9

	goto    main 

main: 
	;movlw	0
	;movwf	stackptr
	
	movlw	b'00000001'
	movwf	PORTA

	movlw	b'10100000'	; move 1111 to the output
	movwf	PORTB

	movlw	b'00000000'
	movwf	PORTA

	movlw 	b'11111111'    
	movwf 	TRISB          
	
	movf	PORTB, W
	movwf	tmpdata	

	movlw 	b'00001111'     
	movwf 	TRISB          

	swapf	tmpdata, W 
	movwf	PORTB
noend:
	goto 	noend
	END		        ; ends the program