实验二存储器寻址及IO操作实验Word文件下载.docx

上传人:b****2 文档编号:14353747 上传时间:2022-10-22 格式:DOCX 页数:19 大小:31.92KB
下载 相关 举报
实验二存储器寻址及IO操作实验Word文件下载.docx_第1页
第1页 / 共19页
实验二存储器寻址及IO操作实验Word文件下载.docx_第2页
第2页 / 共19页
实验二存储器寻址及IO操作实验Word文件下载.docx_第3页
第3页 / 共19页
实验二存储器寻址及IO操作实验Word文件下载.docx_第4页
第4页 / 共19页
实验二存储器寻址及IO操作实验Word文件下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验二存储器寻址及IO操作实验Word文件下载.docx

《实验二存储器寻址及IO操作实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验二存储器寻址及IO操作实验Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。

实验二存储器寻址及IO操作实验Word文件下载.docx

堆栈寻址方式

bk10:

将程序存储器0x1000为起始地址的100个字复制到数据存储器的0x3100为起始地址的空间中

3)全速执行程序,并调整K1~K8开关,观察输出对应的发光管LED1~8是否点亮。

五、实验报告

1)写出各个BK1到BK10的每一小段都使用了那些寻址方式?

注意一条指令可以含有多种寻址方式。

2)写出BK1到BK9每段发生变化的存储器单元的内容,以及BK10实现的功能。

3)自己编写一段程序插入到BK11段后面,使数存单元2000H和~2007H清零,将2100H开始的连续100个单元清零分别初始化为0,2,4…198.

4)读TESTIO段,说明为何程序连续运行后,开关K1~K8的状态会改变LED1~8的显示。

六、源程序及链接命令文件

*************************************************

*FileName:

*

*Description:

数据存储器和程序存储器及I/O实验*

*Writeby:

lanrunze*

*Date:

2004-2-10*

*Update:

2006-10-30*

*输入端口IO地址为8000H使用74ls244作为八个开关K1~K8的输入缓冲

*输出端口IO地址为8001H使用74ls273作为八个发光二极管LED1~LED8的输出锁存

*注意观察存储器或者累加器变化时,由于内部存在流水线原因,

*因此要多执行几个周期才能观察到变化

.title"

ex2.asm"

;

源程序名称

.globalreset,_c_int00;

定义全局变量

.mmregs;

使用预定义的存储器映像寄存器

DAT0.set00H;

定义数存直接寻址方式的低7位地址

DAT1.set01H

DAT2.set02H

DAT3.set03H

DDAT0.set2004H;

定义数存绝对寻址方式的16位地址

DDAT1.set2005H

DDAT2.set2006H

DDAT3.set2007H

PDAT0.set1f00H;

定义程存绝对寻址方式的16位地址

PDAT1.set1f01H

PDAT2.set1f02H

PDAT3.set1f03H

Stack_Length.set100H;

堆栈长度

.sect"

.vectors"

;

定义中断向量段,用于存储中断向量表

reset:

B_c_int00;

复位中断向量入口地址

NOP

.space4*16*31;

为其它中断向量保留空间

STK:

.usect"

STACK"

Stack_Length;

定义堆栈段

.text;

程序段

_c_int00:

默认程序入口

LD#40h,DP;

置数据页为2000h~207Fh

STM#STK+Stack_Length,SP;

置堆栈指针

SSBXINTM;

禁止中断

STM#07FFFh,SWWSR;

置外部等待时间

ldmPMST,A;

修改IPTR段

and#0x3f,A;

去掉IPTR

or#0x3f80,A;

IPTR位等于3F80

stlma,PMST;

写入IPTR

bk1:

ST#1234h,DAT0;

1234为立即数寻址DAT0为直接寻址省略@符号

ST#5678h,*(DDAT1);

*(DDAT1)为绝对寻址DDAT1是符号常数

NOP

NOP

bk2:

MVDKDAT0,DDAT0;

绝对地址(dmad)寻址0X2004单元

MVKDDDAT1,DAT1;

bk3:

MVDPDAT0,PDAT0;

绝对地址(pmad)寻址

MVDPDAT1,PDAT1;

bk4:

LD#PDAT1,A;

累加器寻址

READADAT2;

读取程存0X1F01中的数值送到数存

bk5:

ST#3210h,DAT3;

直接寻址(DP指针)

bk6:

SSBXCPL

ST#9876h,DAT3;

直接寻址(SP指针)

RSBXCPL

bk7:

STM#DDAT3,AR0;

间接寻址

ST#8765h,*AR0

bk8:

STM#8888h,T;

存储器映射寄存器寻址

bk9:

PSHMT;

堆栈寻址

STM#0h,T

POPMT

bk10:

STM#2100h,AR0;

程序存储器到数据存储器的复制

RPT#99;

单指令重复100次

MVPD1000H,*AR0-;

在该指令重复的过程中程存地址自动增加

bk11:

NOP;

自己添加程序段,

(1)将数据存储空间2000H到2007H清零

(2)将2100h开始的连续100个单元分别初始化为0,2,4,6,8...,198

STM#2000h,ar1

ld#0,A

RPT#9

STLA,*AR1+

STM#2000h,AR0

RPT#7(下一条语句循环n+1次)

ST#0000h,*AR0+

ST#0000H,*(2100H)

LD#0,A

STM#98h,BRC(循环计数器)改完程序后要重新编译下载。

STM#2101h,AR2

RPTBTestIO-1

ADD#2,A,A

STLA,*AR2+

TestIO:

为了便于观察按键与显示LED的关系,可将程序连续执行

.bssKey_Value,1;

定义变量用于保存按键数值

stm#Key_Value,ar1;

portr8000h,*ar1;

读端口8000H并存入数存单元

nop

portw*ar1,8001h;

将数存单元内容送到8001H端口

bk12:

为了观察循环执行程序

.end

2、链接器命令文件exp2.cmd

MEMORY

{

PAGE0:

VECS:

origin=0x3f80,length=0x80

PROG:

origin=0x1000,length=0x1000

PAGE1:

DATA:

origin=0x2000,length=0x1000

STACK:

origin=0x3000,length=0x780

}

SECTIONS

.vectors:

{}>

VECSPAGE0

.text:

PROGPAGE0

.data:

DATAPAGE1

STACKPAGE1

第4章附录

附录1:

TMS320C5402CPU及外设存储器寄存器映射表

IMR

中断屏蔽寄存器

1

IFR

中断标志寄存器

2-5

-

测试保留

6

ST0

状态寄存器0

7

ST1

状态寄存器1

8

AL

累加器A低字(15-0比特)

9

AH

累加器A高字(31-16比特)

A

AG

累加器A保护位(39-32比特)

B

BL

累加器B低字(15-0比特)

C

BH

累加器B高字(31-16比特)

D

BG

累加器B保护位(39-32比特)

E

T

暂存寄存器

F

TRN

传送寄存器

10-17

AR0-AR7

辅助寄存器ARnn=0~7

18

SP

堆栈指针

19

BK

循环缓存区大小寄存器

1A

BRC

块重复计数器

1B

RSA

块重复开始地址

1C

REA

块重复结束地址

1D

PMST

状态寄存器

1E

XPC

程存扩展寻址寄存器

1E-1F

保留

20

McBSP0_DRR2

带缓存串口0数据接收寄存器2

21

McBSP0_DRR1

带缓存串口0数据接收寄存器1

22

McBSP0_DXR2

带缓存串口0数据发送寄存器2

23

McBSP0_DXR1

带缓存串口0数据发送寄存器1

24

TIM

定时器计数器

25

PRD

定时器周期寄存器

26

TCR

定时器控制寄存器

27

28

SWWSR

等待状态产生寄存器

29

BSCR

Bank-switching控制寄存器

2A

2B

SWCR

扩展等待控制寄存器

2C

HPIC

主机接口控制寄存器

2D-2F

30

TIM1

31

PRD1

32

TCR1

33-37

38

McBSP0_SPSA

多缓冲串口0子地址寄存器

39

McBSP0_SPSD

多缓冲串口0子数据寄存器

3A-3B

3C

GPIOCR

GPI/O引脚控制寄存器

3D

GPIOSR

GPI/O引脚状态寄存器

3E-3F

40

McBSP1_DRR2

带缓存串口1数据接收寄存器

41

McBSP1_DRR1

带缓存串口1数据发送寄存器

42

McBSP1_DXR2

带缓存串口1控制寄存器

43

McBSP1_DXR1

带缓存串口1控制扩展寄存器

44-47

48

McBSP1_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1