好文档 - 专业文书写作范文服务资料分享网站

嵌入式系统原理及应用第三章习题

天下 分享 时间: 加入收藏 我要投稿 点赞

第三章 软件作业习题

3、 将存储器中0x400000开始的200字节的数据,传送到0x400800 开

始的区域。 解:

AREA procedure3,CODE,READONLY ENTRY CODE32 START

MOV R0,#0x400000 LDR R1,=0x400800 MOV R7,#200 LOOP LDRB R2,[R0],#1

STRB R2,[R1],#1 SUBS R7,R7,#1 BNE LOOP CEASE

B CEASE END

4、 编写程序,比较存储器中 0x400000和0x400004两无符号字数据 的大小,并且将比较结果存于0x400008的字中,若两数相等其结果记 为 0, 若前者大于后者其结果记为 1,若前者小于后者其结果记为 -1 。

解:

AREA procedure4,CODE,READONLY ENTRY CODE32 START

MOV R0,#0x400000 LDR R1,[R0],#4 ; 取第 1 个数 LDR R2,[R0],#4 ; 取第 2 个数

CMP R1,R2 MOVHI R1,#1

将两个数相比较

;R1 比R2大

MOVLO R1,#-1 MOVEQ R1,#0 STR R1,[R0] CEASE

BCEASE END

;R1 比 R2小 ; 两个数相等

5、存储器从0x400000开始的100个单元中存放着ASCII码,编写程 序,将其所有的小写字母转换成大写字母, 对其它的ASCII码不做变

换。 解:

AREA procedure5,CODE,READONL Y ENTR Y CODE32 START

MOV R0,#0x400000 MOV R1,#0

LOOP LDRB R2,[R0,R1]

CMP R2,#0x61 ;与‘a'比较

小于转到BLO NEXT

NEXT ;0x7A 为 CMP R2,#0x7B

‘z' SUBLO R2, R2,#0x20

;小于转换 STRBLO R2,[R0,R1];

小于保存 NEXT

ADD R1,R1,#1

CMP R1,#100 BNE LOOP CEASE

BCEASE END

6、编写一程序,查找存储器从0x400000开始的100个字中为0的数 目,将其结果存到0x400190中。

解:

AREA procedure6,CODE,READONLY ENTR Y

CODE32 START

MOV RO , #0x400000

MOV R7, #100

MOV R1, #0 LOOP

LDR R2 , [R0] , #4

CMP R2, #0

ADDEQ R1, R1, #1 SUBS R7, R7, #1

BNE LOOP

STR R1 , [R0]

CEASE BCEASE

END

;控制循环变量 ;保存0的数目 ;取数 ;比较为0 为0加1 修改控制变量 ;保存0的数目

7、编写一程序,存储器中从 0x400200开始有一个64位

数。(1) 将取反,再存回原处;

(2) 求其补码,存放到0x400208

处。 解:

AREA procedure7,CODE,READONL Y ENTR Y CODE32

START

LDR R0 =0x400200

LDR R2,=0xFFFFFFFF ;取低32位数 LDR R1,[R0]

CEASE

EOR R1,R1, R2

STR R1,[R0] ADDS R1,R1, #1 STR R1,[R0, #8] LDR R1,[R0, #4] EOR R1,R1, R2 STR R1,[R0, #4] ADC R1,R1, #0 STR R1,[R0, #12]

;取反

;存低32位反码 又加1为求补 ;存低32位补码 ;取高32位数 ;取反

;存高32位反码 ;高32位求补 ;存高32位补码

BCEASE END

8编写一简单ARM匚编程序段,实现1+2+…+100的运算 解:

AREA procedure8,CODE,READONLY ENTR Y CODE32 START

MOV R2,#100 MOV R1,#0 LOOP

ADD R1,R1,R2 ;R1 SUBS R2,R2,#1 ;R2 BNE LOOP CEASE

B CEASE END

控制循环 中为累加和

嵌入式系统原理及应用第三章习题

第三章软件作业习题3、将存储器中0x400000开始的200字节的数据,传送到0x400800开始的区域。解:AREAprocedure3,CODE,READONLYENTRYCODE32STARTMOVR0,#0x400000LDRR1,=0x400800MOVR7,#200LOOP
推荐度:
点击下载文档文档为doc格式
16klv69k5n83hrt8bf1m52amw9lhr3008a2
领取福利

微信扫码领取福利

微信扫码分享