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

📄 exp02.asm

📁 这是学习DSP的一些常用子实例
💻 ASM
字号:
.title	"mac.asm"
.mmregs
.def start
SIZE .set 100
stack .usect "STK", SIZE
SEGSEL .set 0001b           ;数码管使能控制数据, 此处为第0个数码管选通	
SEGSELPORT .set 0h       ;数码管使能控制口地址
SEGPORT  .set 1h             ;数码管数据口地址
       .bss SEG_DATA,10   ;用于存放从SEG_VALUE装载进来的数码管编码数据  
       .bss x,5                    	;用于存放从table0装载进来的输入数据
       .bss z,1                   	;用于存放输出数据(计算结果) 
       .data     
table0:  .word 1,2,3,4,5      ;待计算的一组输入数据
;以下用于存放数码管编码数据,分别控制数码管显示0~9
SEG_VALUE .word 077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6H
              .text
start:stm #stack+SIZE, SP
 	;;;;;;;;;C5402 初始化;;;;;;;;;;;;;;;	
	stm #2b40h,ST1;STM #2B40H,ST1;
	stm #1e00h,ST0;
  	stm #02024h,PMST	 ;IPTR=0010,0000,0  ->RESET=2000H
	stm #0h,SWWSR
	stm #04007h,CLKMD
 	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
             stm #SEG_DATA, AR3      ;将数码管编码数据从SEG_VALUE装入SEG_DATA 
     rpt #9
   	mvpd SEG_VALUE, *AR3+    
   	stm #x,AR1                 	;从空间table0装载输入数据进入空间x
    	rpt #4
    	mvpd table0,*AR1+
    	call sum                  	;调用累加子程序
    	ld #SEGSEL,B           	;第0个数码管选通
    	portw *(0bH), SEGSELPORT
    	stlm A,AR0                 	;累加子程序返回的计算结果转入AR0    
    	stm #SEG_DATA,AR7     ;数码管编码数据区首地址送AR7
    	nop          
    	mar *AR7+0              	;首地址(AR7中的内容)+偏移地址(AR0中的内容)
    	nop
    	portw *AR7,SEGPORT     ;让数码管显示计算结果 
  end: 	b  end
sum: 	stm #x,AR3                	;累加子程序
     	rptz A,#4
     	add *AR3, A
     	stm #z,AR4          
     	stl A,*AR4
     	ret
     	.end 

⌨️ 快捷键说明

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