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

📄 shft.asm

📁 lf2407自检源代码
💻 ASM
字号:
	.title "TMS320C2xx PROCESSOR SELFCHECK -- SHIFTER TESTS"
	.length 60
	.width 120
	.option X
************************************************************
*                                                          *
* SHIFTER TESTS                                            *
*                                                          *
* This routine checks the three shifters of the C2xx:      *
*                                                          *
*        1. input data-scaling shifter                     *
*        2. output data-scaling shifter                    *
*        3. product-scaling shifter                        *
*                                                          *
* Written by David M. Alter                                *
*            member technical staff                        *
*            Texas Instruments Inc.                        *
*                                                          *
* Release Version 1.0                                      *
*                                                          *
************************************************************
	.def    shft, end2xx
	.nolist
	.copy   "options.h"
	.copy   "memmap.h"
	.list

	.text
shft:   .set    $+SS

;preliminary setup
	LDP     #0h             ;data page @ 0h

*
* INPUT DATA-SCALING SHIFTER TEST
*
	
	SPLK    #1h,TEMP00      ;data(TEMP00) = 1h
	LACC    TEMP00,0        ;ACC = 00000001h
	ADD     TEMP00,1        ;ACC = 00000003h
	ADD     TEMP00,2        ;ACC = 00000007h
	ADD     TEMP00,3        ;ACC = 0000000fh
	ADD     TEMP00,4        ;ACC = 0000001fh
	ADD     TEMP00,5        ;ACC = 0000003fh
	ADD     TEMP00,6        ;ACC = 0000007fh
	ADD     TEMP00,7        ;ACC = 000000ffh
	ADD     TEMP00,8        ;ACC = 000001ffh
	ADD     TEMP00,9        ;ACC = 000003ffh
	ADD     TEMP00,10       ;ACC = 000007ffh
	ADD     TEMP00,11       ;ACC = 00000fffh
	ADD     TEMP00,12       ;ACC = 00001fffh
	ADD     TEMP00,13       ;ACC = 00003fffh
	ADD     TEMP00,14       ;ACC = 00007fffh
	ADD     TEMP00,15       ;ACC = 0000ffffh
	XOR     #0ffffh         ;ACC = 0
	BCND    ershft1,NEQ     ;if ACC != 0 then error

*
* OUTPUT DATA-SCALING SHIFTER TEST
*
	SETC    SXM             ;sign extension mode on
	LACL    #1h             ;ACC = 00000001h
	SACL    TEMP01,0        ;data(TEMP01) = 0001h
	LACC    TEMP01          ;ACC = 00000001h
	SACL    TEMP01,1        ;data(TEMP01) = 0002h
	LACC    TEMP01          ;ACC = 00000002h
	SACL    TEMP01,2        ;data(TEMP01) = 0008h
	LACC    TEMP01          ;ACC = 00000008h
	SACL    TEMP01,3        ;data(TEMP01) = 0040h
	LACC    TEMP01          ;ACC = 00000040h
	SACL    TEMP01,4        ;data(TEMP01) = 0400h
	LACC    TEMP01          ;ACC = 00000400h
	SACL    TEMP01,5        ;data(TEMP01) = 8000h
	LACC    TEMP01          ;ACC = ffff8000h
	SACH    TEMP01,6        ;data(TEMP01) = ffe0h
	LACC    TEMP01,16       ;ACC = ffe00000h
	SACH    TEMP01,7        ;data(TEMP01) = f000h
	LACL    TEMP01          ;ACC = 0000f000h
	XOR     #0f000h         ;ACC = 0
	BCND    ershft2,NEQ     ;if ACC != 0 then error

*
* PRODUCT-SCALING SHIFTER TEST
*

	SPLK    #0aah,TEMP00    ;data(TEMP00)=aah
	LT      TEMP00          ;TREG = aa00h
	MPY     #100h           ;PREG = ffffaa00h
	LPH     TEMP00          ;PREG = 00aaaa00h

	SPM     0               ;set shift = 0
	PAC                     ;ACC = 00aaaa00h
	SPM     1               ;set shift = 1 left
	APAC                    ;ACC = 01fffe00h
	SPM     2               ;set shift = 4 left
	APAC                    ;ACC = 0caa9e00h
	SPM     3               ;set shift = 6 right
	APAC                    ;ACC = 0cad48a8h
	SPM     0               ;turn off shifter
	XOR     #48a8h          ;ACC = 0cad0000h
	XOR     #0cadh,16       ;ACC = 0
	BCND    ershft3,NEQ     ;if ACC != 0 then error

	RET                     ;test passes

*
* ERROR HANDLERS
*

ershft1: .set   $+SS
	LACL    #80h            ;input data-scaling shifter error
	RET                     ;test fails
ershft2: .set   $+SS
	LACL    #81h            ;output data-scaling shifter error
	RET                     ;test fails
ershft3: .set   $+SS
	LACL    #82h            ;product-scaling shifter error
	RET                     ;test fails

*
* Constants needed to perform the optional program code checksum test.
*
end2xx: .set    $+SS
CHKSUMHI .word  0ffach
CHKSUMLO .word  0a017h

⌨️ 快捷键说明

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