⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rf1.asm

📁 嵌入式操作系统的基本输入输出程序
💻 ASM
字号:
;/////////////////////////////////////////////////////////////////////;////                                                             ////;////  Mini-RISC-1                                                ////;////  Register File Test 1                                       ////;////  Tests Register File                                        ////;////                                                             ////;////  Author: Rudolf Usselmann                                   ////;////          russelmann@hotmail.com                             ////;////                                                             ////;/////////////////////////////////////////////////////////////////////;////                                                             ////;//// Copyright (C) 2000 Rudolf Usselmann                         ////;////                    russelmann@hotmail.com                   ////;////                                                             ////;//// This source file may be used and distributed without        ////;//// restriction provided that this copyright statement is not   ////;//// removed from the file and that any derivative work contains ////;//// the original copyright notice and the associated disclaimer.////;////                                                             ////;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY        ////;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT           ////;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND   ////;//// FITNESS FOR A PARTICULAR PURPOSE.                           ////;////                                                             ////;/////////////////////////////////////////////////////////////////////	list	p=16c57	#include p16c5x.inc; global Registersr0	equ	0x8r1	equ	0x9r2	equ	0xar3	equ	0xbr4	equ	0xcr5	equ	0xdr6	equ	0xer7	equ	0xf; banked Registersbr0	equ	0x10br1	equ	0x11br2	equ	0x12br3	equ	0x13br4	equ	0x14br5	equ	0x15br6	equ	0x16br7	equ	0x17br8	equ	0x18br9	equ	0x19br10	equ	0x1abr11	equ	0x1bbr12	equ	0x1cbr13	equ	0x1dbr14	equ	0x1ebr15	equ	0x1f;	PORTB Indicates Test Number;	PORTA Indicates Status: 0 - Running; 1 - done OK; ff - stoped on errormain	; Main code entry	; Port IO Test	; All ports have a Pull up resistor		; SETUP all ports	clrw	movwf	FSR	movwf	PORTA	movwf	PORTB	movwf	PORTC	tris	PORTA	tris	PORTB	tris	PORTC	bsf	STATUS,5	; ---------------------------------------	; ---- Test the entire register file ----	; ---------------------------------------	movlw	0x81	movwf	r0	movlw	0x82	movwf	r1	movlw	0x83	movwf	r2	movlw	0x84	movwf	r3	movlw	0x85	movwf	r4	movlw	0x86	movwf	r5	movlw	0x87	movwf	r6	movlw	0x88	movwf	r7	movlw	0x90	movwf	br0	movlw	0x91	movwf	br1	movlw	0x92	movwf	br2	movlw	0x93	movwf	br3	movlw	0x94	movwf	br4	movlw	0x95	movwf	br5	movlw	0x96	movwf	br6	movlw	0x97	movwf	br7	movlw	0x98	movwf	br8	movlw	0x99	movwf	br9	movlw	0x9a	movwf	br10	movlw	0x9b	movwf	br11	movlw	0x9c	movwf	br12	movlw	0x9d	movwf	br13	movlw	0x9e	movwf	br14	movlw	0x9f	movwf	br15	bsf	FSR,5	; Select Register Bank 01	movlw	0xa0	movwf	br0	movlw	0xa1	movwf	br1	movlw	0xa2	movwf	br2	movlw	0xa3	movwf	br3	movlw	0xa4	movwf	br4	movlw	0xa5	movwf	br5	movlw	0xa6	movwf	br6	movlw	0xa7	movwf	br7	movlw	0xa8	movwf	br8	movlw	0xa9	movwf	br9	movlw	0xaa	movwf	br10	movlw	0xab	movwf	br11	movlw	0xac	movwf	br12	movlw	0xad	movwf	br13	movlw	0xae	movwf	br14	movlw	0xaf	movwf	br15	bcf	FSR,5	; Select Register Bank 10	bsf	FSR,6 	movlw	0xb0	movwf	br0	movlw	0xb1	movwf	br1	movlw	0xb2	movwf	br2	movlw	0xb3	movwf	br3	movlw	0xb4	movwf	br4	movlw	0xb5	movwf	br5	movlw	0xb6	movwf	br6	movlw	0xb7	movwf	br7	movlw	0xb8	movwf	br8	movlw	0xb9	movwf	br9	movlw	0xba	movwf	br10	movlw	0xbb	movwf	br11	movlw	0xbc	movwf	br12	movlw	0xbd	movwf	br13	movlw	0xbe	movwf	br14	movlw	0xbf	movwf	br15	bsf	FSR,5	; Select Register Bank 11	bsf	FSR,6	movlw	0xc0	movwf	br0	movlw	0xc1	movwf	br1	movlw	0xc2	movwf	br2	movlw	0xc3	movwf	br3	movlw	0xc4	movwf	br4	movlw	0xc5	movwf	br5	movlw	0xc6	movwf	br6	movlw	0xc7	movwf	br7	movlw	0xc8	movwf	br8	movlw	0xc9	movwf	br9	movlw	0xca	movwf	br10	movlw	0xcb	movwf	br11	movlw	0xcc	movwf	br12	movlw	0xcd	movwf	br13	movlw	0xce	movwf	br14	movlw	0xcf	movwf	br15	; Register File		TEST 1	movlw	0x01	movwf	PORTB	; Set Test Number	clrw	movwf	FSR	movlw	0x81	subwf	r0,W	btfss	STATUS,Z	goto	lerr	movlw	0x82	subwf	r1,W	btfss	STATUS,Z	goto	lerr	movlw	0x83	subwf	r2,W	btfss	STATUS,Z	goto	lerr	movlw	0x84	subwf	r3,W	btfss	STATUS,Z	goto	lerr	movlw	0x85	subwf	r4,W	btfss	STATUS,Z	goto	lerr	movlw	0x86	subwf	r5,W	btfss	STATUS,Z	goto	lerr	movlw	0x87	subwf	r6,W	btfss	STATUS,Z	goto	lerr	movlw	0x88	subwf	r7,W	btfss	STATUS,Z	goto	lerr	movlw	0x90	subwf	br0,W	btfss	STATUS,Z	goto	lerr	movlw	0x91	subwf	br1,W	btfss	STATUS,Z	goto	lerr	movlw	0x92	subwf	br2,W	btfss	STATUS,Z	goto	lerr	movlw	0x93	subwf	br3,W	btfss	STATUS,Z	goto	lerr	movlw	0x94	subwf	br4,W	btfss	STATUS,Z	goto	lerr	movlw	0x95	subwf	br5,W	btfss	STATUS,Z	goto	lerr	movlw	0x96	subwf	br6,W	btfss	STATUS,Z	goto	lerr	movlw	0x97	subwf	br7,W	btfss	STATUS,Z	goto	lerr	movlw	0x98	subwf	br8,W	btfss	STATUS,Z	goto	lerr	movlw	0x99	subwf	br9,W	btfss	STATUS,Z	goto	lerr	movlw	0x9a	subwf	br10,W	btfss	STATUS,Z	goto	lerr	movlw	0x9b	subwf	br11,W	btfss	STATUS,Z	goto	lerr	movlw	0x9c	subwf	br12,W	btfss	STATUS,Z	goto	lerr	movlw	0x9d	subwf	br13,W	btfss	STATUS,Z	goto	lerr	movlw	0x9e	subwf	br14,W	btfss	STATUS,Z	goto	lerr	movlw	0x9f	subwf	br15,W	btfss	STATUS,Z	goto	lerr	; Register File		TEST 2	movlw	0x02	movwf	PORTB	; Set Test Number	bsf	FSR,5	; Select Register Bank 01	movlw	0x81	subwf	r0,W	btfss	STATUS,Z	goto	lerr	movlw	0x82	subwf	r1,W	btfss	STATUS,Z	goto	lerr	movlw	0x83	subwf	r2,W	btfss	STATUS,Z	goto	lerr	movlw	0x84	subwf	r3,W	btfss	STATUS,Z	goto	lerr	movlw	0x85	subwf	r4,W	btfss	STATUS,Z	goto	lerr	movlw	0x86	subwf	r5,W	btfss	STATUS,Z	goto	lerr	movlw	0x87	subwf	r6,W	btfss	STATUS,Z	goto	lerr	movlw	0x88	subwf	r7,W	btfss	STATUS,Z	goto	lerr	movlw	0xa0	subwf	br0,W	btfss	STATUS,Z	goto	lerr	movlw	0xa1	subwf	br1,W	btfss	STATUS,Z	goto	lerr	movlw	0xa2	subwf	br2,W	btfss	STATUS,Z	goto	lerr	movlw	0xa3	subwf	br3,W	btfss	STATUS,Z	goto	lerr	movlw	0xa4	subwf	br4,W	btfss	STATUS,Z	goto	lerr	movlw	0xa5	subwf	br5,W	btfss	STATUS,Z	goto	lerr	movlw	0xa6	subwf	br6,W	btfss	STATUS,Z	goto	lerr	movlw	0xa7	subwf	br7,W	btfss	STATUS,Z	goto	lerr	movlw	0xa8	subwf	br8,W	btfss	STATUS,Z	goto	lerr	movlw	0xa9	subwf	br9,W	btfss	STATUS,Z	goto	lerr	movlw	0xaa	subwf	br10,W	btfss	STATUS,Z	goto	lerr	movlw	0xab	subwf	br11,W	btfss	STATUS,Z	goto	lerr	movlw	0xac	subwf	br12,W	btfss	STATUS,Z	goto	lerr	movlw	0xad	subwf	br13,W	btfss	STATUS,Z	goto	lerr	movlw	0xae	subwf	br14,W	btfss	STATUS,Z	goto	lerr	movlw	0xaf	subwf	br15,W	btfss	STATUS,Z	goto	lerr	; Register File		TEST 3	movlw	0x03	movwf	PORTB	; Set Test Number	bcf	FSR,5	; Select Register Bank 10	bsf	FSR,6	movlw	0x81	subwf	r0,W	btfss	STATUS,Z	goto	lerr	movlw	0x82	subwf	r1,W	btfss	STATUS,Z	goto	lerr	movlw	0x83	subwf	r2,W	btfss	STATUS,Z	goto	lerr	movlw	0x84	subwf	r3,W	btfss	STATUS,Z	goto	lerr	movlw	0x85	subwf	r4,W	btfss	STATUS,Z	goto	lerr	movlw	0x86	subwf	r5,W	btfss	STATUS,Z	goto	lerr	movlw	0x87	subwf	r6,W	btfss	STATUS,Z	goto	lerr	movlw	0x88	subwf	r7,W	btfss	STATUS,Z	goto	lerr	movlw	0xb0	subwf	br0,W	btfss	STATUS,Z	goto	lerr	movlw	0xb1	subwf	br1,W	btfss	STATUS,Z	goto	lerr	movlw	0xb2	subwf	br2,W	btfss	STATUS,Z	goto	lerr	movlw	0xb3	subwf	br3,W	btfss	STATUS,Z	goto	lerr	movlw	0xb4	subwf	br4,W	btfss	STATUS,Z	goto	lerr	movlw	0xb5	subwf	br5,W	btfss	STATUS,Z	goto	lerr	movlw	0xb6	subwf	br6,W	btfss	STATUS,Z	goto	lerr	movlw	0xb7	subwf	br7,W	btfss	STATUS,Z	goto	lerr	movlw	0xb8	subwf	br8,W	btfss	STATUS,Z	goto	lerr	movlw	0xb9	subwf	br9,W	btfss	STATUS,Z	goto	lerr	movlw	0xba	subwf	br10,W	btfss	STATUS,Z	goto	lerr	movlw	0xbb	subwf	br11,W	btfss	STATUS,Z	goto	lerr	movlw	0xbc	subwf	br12,W	btfss	STATUS,Z	goto	lerr	movlw	0xbd	subwf	br13,W	btfss	STATUS,Z	goto	lerr	movlw	0xbe	subwf	br14,W	btfss	STATUS,Z	goto	lerr	movlw	0xbf	subwf	br15,W	btfss	STATUS,Z	goto	lerr	; Register File		TEST 4	movlw	0x04	movwf	PORTB	; Set Test Number	bsf	FSR,5	; Select Register Bank 11	bsf	FSR,6	movlw	0x81	subwf	r0,W	btfss	STATUS,Z	goto	lerr	movlw	0x82	subwf	r1,W	btfss	STATUS,Z	goto	lerr	movlw	0x83	subwf	r2,W	btfss	STATUS,Z	goto	lerr	movlw	0x84	subwf	r3,W	btfss	STATUS,Z	goto	lerr	movlw	0x85	subwf	r4,W	btfss	STATUS,Z	goto	lerr	movlw	0x86	subwf	r5,W	btfss	STATUS,Z	goto	lerr	movlw	0x87	subwf	r6,W	btfss	STATUS,Z	goto	lerr	movlw	0x88	subwf	r7,W	btfss	STATUS,Z	goto	lerr	movlw	0xc0	subwf	br0,W	btfss	STATUS,Z	goto	lerr	movlw	0xc1	subwf	br1,W	btfss	STATUS,Z	goto	lerr	movlw	0xc2	subwf	br2,W	btfss	STATUS,Z	goto	lerr	movlw	0xc3	subwf	br3,W	btfss	STATUS,Z	goto	lerr	movlw	0xc4	subwf	br4,W	btfss	STATUS,Z	goto	lerr	movlw	0xc5	subwf	br5,W	btfss	STATUS,Z	goto	lerr	movlw	0xc6	subwf	br6,W	btfss	STATUS,Z	goto	lerr	movlw	0xc7	subwf	br7,W	btfss	STATUS,Z	goto	lerr	movlw	0xc8	subwf	br8,W	btfss	STATUS,Z	goto	lerr	movlw	0xc9	subwf	br9,W	btfss	STATUS,Z	goto	lerr	movlw	0xca	subwf	br10,W	btfss	STATUS,Z	goto	lerr	movlw	0xcb	subwf	br11,W	btfss	STATUS,Z	goto	lerr	movlw	0xcc	subwf	br12,W	btfss	STATUS,Z	goto	lerr	movlw	0xcd	subwf	br13,W	btfss	STATUS,Z	goto	lerr	movlw	0xce	subwf	br14,W	btfss	STATUS,Z	goto	lerr	movlw	0xcf	subwf	br15,W	btfss	STATUS,Z	goto	lerr	nop	nop	nop	nop	movlw	0x01	movwf	PORTA	nop	nop	nop	nopgood			; Loop in good on success	goto	good	nop	nop	nop	noplerr	movlw	0xff	movwf	PORTA	nop	nop	nop	noplerr_loop		; Loop in lerr on failure	goto	lerr_loop	nop	nop	nop	nop   END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -