📄 rf3.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 + -