-
第三章
软件作业习题
3
、将存储器中
0x400000
p>
开始的
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
两无符号字数据
的大小
,
并且将比较结果存于
< br>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 R1
比
R2
小
MOVEQ R1,#0
;
两个数相等
STR R1,[R0]
CEASE
B CEASE
END
5
、
存储器从
0x400000
开始的
100
个单元中存放着
ASCII
码,
编写程
序,
将其所有的小写字母转换成大写字母,
对其它的
A
SCII
码不做变
换。
解:
AREA
procedure5,CODE,READONLY
ENTRY
CODE32
START
MOV R0,#0x400000
MOV R1,#0
LOOP
LDRB R2,[R0,R1]
CMP R2,#0x61
与‘
a
’比较
BLO
NEXT
;
小于转到
NEXT
CMP R2,#0x7B
0x7A
为‘
z
’
SUBLO
R2, R2,#0x20
;
小于转换
STRBLO R2,[R0,R1]
;
小于保存
NEXT
ADD R1,R1,#1
CMP R1,#100
BNE LOOP
CEASE
B CEASE
END
6
、
编写一程序,
查找存储器从
0x400000
开始的
100
个字中为
0
的数
目,将其结果存到<
/p>
0x400190
中。
解:
AREA
procedure6,CODE,READONLY
ENTRY