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

📄 rf3.asm

📁 嵌入式操作系统的基本输入输出程序
💻 ASM
字号:
;/////////////////////////////////////////////////////////////////////;////                                                             ////;////  Mini-RISC-1                                                ////;////  Register File Test 3                                       ////;////  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	; ---------------------------------------	; ---- Test RMW on Register fil      ----	; ---------------------------------------	movlw	0x01	; 	TEST 1	movwf	PORTB	; Set Test Number	movlw	0xfc	movwf	r0	incf	r0,F	incf	r0,F	incf	r0,F	incf	r0,F	btfss	STATUS,Z	goto	lerr	movlw	0xfc	movwf	br8	incf	br8,F	incf	br8,F	incf	br8,F	incf	br8,F	btfss	STATUS,Z	goto	lerr	movlw	0x02	; 	TEST 2	movwf	PORTB	; Set Test Number	movlw	r1	movwf	FSR	movlw	0xfc	movwf	INDF	incf	INDF,F	incf	INDF,F	incf	INDF,F	incf	INDF,F	btfss	STATUS,Z	goto	lerr	movlw	br9	movwf	FSR	movlw	0xfc	movwf	INDF	incf	INDF,F	incf	INDF,F	incf	INDF,F	incf	INDF,F	btfss	STATUS,Z	goto	lerr	movlw	0x03	; 	TEST 3	movwf	PORTB	; Set Test Number	movlw	0x04	movwf	r0	decf	r0,F	decf	r0,F	decf	r0,F	decf	r0,F	btfss	STATUS,Z	goto	lerr	movlw	0x04	movwf	br0	decf	br0,F	decf	br0,F	decf	br0,F	decf	br0,F	btfss	STATUS,Z	goto	lerr	movlw	0x04	; 	TEST 4	movwf	PORTB	; Set Test Number	movlw	r1	movwf	FSR	movlw	0x04	movwf	INDF	decf	INDF,F	decf	INDF,F	decf	INDF,F	decf	INDF,F	btfss	STATUS,Z	goto	lerr	movlw	br9	movwf	FSR	movlw	0x04	movwf	INDF	decf	INDF,F	decf	INDF,F	decf	INDF,F	decf	INDF,F	btfss	STATUS,Z	goto	lerr	movlw	0x05	; 	TEST 5	movwf	PORTB	; Set Test Number	movlw	0xfc	movwf	r4	incfsz	r4,F	incfsz	r4,F	incfsz	r4,F	incfsz	r4,F	goto	lerr	movlw	0xfc	movwf	br8	incfsz	br8,F	incfsz	br8,F	incfsz	br8,F	incfsz	br8,F	goto	lerr	movlw	0x06	; 	TEST 6	movwf	PORTB	; Set Test Number	movlw	r1	movwf	FSR	movlw	0xfc	movwf	INDF	incfsz	INDF,F	incfsz	INDF,F	incfsz	INDF,F	incfsz	INDF,F	goto	lerr	movlw	br9	movwf	FSR	movlw	0xfc	movwf	INDF	incfsz	INDF,F	incfsz	INDF,F	incfsz	INDF,F	incfsz	INDF,F	goto	lerr	movlw	0x07	; 	TEST 7	movwf	PORTB	; Set Test Number	movlw	0x04	movwf	r0	decfsz	r0,F	decfsz	r0,F	decfsz	r0,F	decfsz	r0,F	goto	lerr	movlw	0x04	movwf	br0	decfsz	br0,F	decfsz	br0,F	decfsz	br0,F	decfsz	br0,F	goto	lerr	movlw	0x08	; 	TEST 8	movwf	PORTB	; Set Test Number	movlw	r1	movwf	FSR	movlw	0x04	movwf	INDF	decfsz	INDF,F	decfsz	INDF,F	decfsz	INDF,F	decfsz	INDF,F	goto	lerr	movlw	br9	movwf	FSR	movlw	0x04	movwf	INDF	decfsz	INDF,F	decfsz	INDF,F	decfsz	INDF,F	decfsz	INDF,F	goto	lerr	movlw	0x09	; 	TEST 9	movwf	PORTB	; Set Test Number	movlw	0xfc	movwf	FSR	incf	FSR,F	incf	FSR,F	incf	FSR,F	incf	FSR,F	btfss	STATUS,Z	goto	lerr	movlw	0x04	movwf	FSR	movlw	0x7f	decf	FSR,F	decf	FSR,F	decf	FSR,F	decf	FSR,F	andwf	FSR,F	btfss	STATUS,Z	goto	lerr	movlw	0x0a	; 	TEST 10	movwf	PORTB	; Set Test Number	movlw	0xfc	movwf	STATUS	movlw	0x18	incf	STATUS,F	incf	STATUS,F	incf	STATUS,F	incf	STATUS,F	subwf	STATUS,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 + -