.sect ".resect"
B start
.text
.bss x,1 三个变量各为一个字(16位,非初始化段)
.bss y,1
.bss z,1
.textstart:
ldp #0 ;因下面诸变量使用直接寻址,装载DP值
splk #5,x ;变量赋初值,x=5
splk #6,y ; y=2
lacc x ;将x的值装载至累加器
add y ;累加器加上y的值
sacl z ;将累加器结果(32位)的低16位存放到变量z
ldp #4 ;直接寻址,装载DP值,页指针指向片内数据区DARAM B0
splk #1,1 绝对地址201H开始的四个单元存1,2,3,4
splk #2,2
splk #3,3
splk #4,4以下使用间接寻址将201H开始的4个悄型单元的启老猜数
转存到300H开始的4个单元 lar ar0,#201h 源起始地址存在辅助寄存器0
lar ar1,#300h ;目的起始地址存在辅助寄存器1
lar ar2,#3 循环计数值为移动数-1
mar *,ar0 设置当前辅助寄存器为ar0loop1:;开始循环搬移数据
lacc *+,ar1 ;将当前辅助寄存器(ar0);所
;指向的数据内存单元的值装载到acc,
ar0加1,设置当前辅助寄存器为ar1
sacl *+,ar2 acc低16位存放到当前辅助寄存;器(ar1)指定的单元
ar1加1,设置当前辅助寄存器为ar2
banz loop1,ar0 当前辅助寄存器(ar2)如果不等于0则当前辅助寄 存器(ar2)减含神1,转loop1xh: B xh 空循环
.end
//(2) 主程序// 该程序用于实验演示模板上的8个LED的循环显示
#include "register.h"
int temp,i
main()// 初始化子程序
{
asm(" setc SXM")// 抑制符号位扩展
asm(" clrc OVM")//答模 累加器中结果正常溢出
asm(" clrc CNF")// B0被配置为数据存储空间
asm(" setc INTM")// 禁止所有中断
SCSR1=0x81FE// CLKIN=10M,CLKOUT=4*CLKIN=40M
WDCR=0x0E8// 不使能看门狗,因为SCSR2中的WDOVERRIDE
// 即WD?の桓次缓蟮娜笔≈滴?,故可以用
// 软件禁止看门狗
IMR=0x0000 // 禁止所有中断
IFR=0x0FFFF// 清除全部中断标志,"写1清0"皮举饥
MCRA=MCRA&0x00EF // IOPA4,IOPA6,IOPB端口配置为一般的I/O功能, TMS320LF240x的
// 端口均为8位,MCRA为16位因此控制了IOPA,
// 和IOPB的设置
while(1)
{
PBDATDIR=0x0FFe0 // IOPB端口设置为输出方式燃返
PFDATDIR=0x0404
PFDATDIR=0x0FFF0 // IOPF2 设置为输出方式,且IOPF2=1
}
}
// 直接返回中断服务程序
void interrupt nothing( )
{
return
}
//这是一个可用的程序,供你参考
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)