全球旧事资料 分类

umsMOVR10
FOR2LDRR3R2LDRR4R24CMPR3R4LDRGTR5R24STRGTR3R24STRGTR5R2ADDR2R24
ADDR1R11CMPR19BCCFOR2
ADDR0R01CMPR09BCCFOR1
AREADataDATAREADWRITE
umsDCD12345144100012103
END
五、实验总结与分析
1、实验分析第一张图为排序前寄存器以及存储器的状态及数据,主要观察两个部分,一
个是寄存器的R2,它代表的是存放哪些数组地址的首地址,所以从这里开始读取数据。然后找到地址为0x8040的存储器,可以看到其中存放了数组中的十个数,其顺序和定义时的顺序是一样的,也就是没有顺序。
再看第二张图,这是程序执行完以后的寄存器和存储器的状态以及数据,从标红的数据看一看出,这十个数据都发生了变化,第一个是最小的0x00,最后一个是最大的0x0100,这样就将这十个数排序好了。
冒泡排序的实现方法有很多种,比如可以先将最大的数推到数组的末尾,也可以将最小的数先拿到数组的前边,两者道理其实都是一样,时间复杂度更是一样,都是O(N2),对于大型的数据来说,最好还是采用快速排序,它的速度是相当快的。
f2、实验总结:在定义数组的时候最好将其直接定义为十六进制,这样在存储器中观察的时候就非容易,不需要自己进行十进制和十六进制的转化。在代码全速运行前先进行单步的运行,以确定数组开始的地址,这样就能在存储器中找到对应的数据了。
f统计字符个数
一、实验目的
1、学会使用字符串编程,如何在代码中定义字符串,字符串字存储器中占有几个字节,如何将字符串中的每个字符取出来。
2、再一次熟悉循环结果,CMP的条件判断,如何执行。
二、实验内容
自定义一个字符串,编写代码来统计这个字符串中的字符个数。这里还是采用循环的方法来遍历整个字符串,没遍历一次字符数目加一,然后判断当前是不是0,时0则结束。
三、实验主要步骤
1、打开ADS,新建一工程,再新建一个s的源文件,将其添加到工程中去,开始编写源代码。
2、链接、编译源文件,检查语法错误。
3、用debug进行调试,观察寄存器的状态,由于此处的数据量较少,因此可以点击单步运行,一直到运行到stop,在此期间观察R1和R2数据的变化,R1代表的是字符数目,R2代表的是当前字符的ASCII码值,当R2的值为0时退出循环。
四、实验代码
AREAsymbolCODEREADONLYENTRYCODE32
fSTARTLDRR0strsMOVR11
LOOPLDRBADDCMPBNE
R2R01R1R11R20LOOP
STOPMOVLDRSWI
R00x18R1200260x12456
AREADataDATAREADWRITEstrsDCB
好听全球资料 返回顶部