几道简单ARM汇编代码题
发布网友
发布时间:2022-04-23 09:39
我来回答
共1个回答
热心网友
时间:2023-08-01 02:34
我来回答你吧,研究ARM汇编也有段时间了,在查相关资料,这个应该可以解决的,要是考试,我的答案100分至少85分吧。
26.
MOV
R0,#X
MOV
R1,#64
CMP
R0,R1
MOVHI
RO,#0
MOVLS
R2,#0
27.
字符串拷贝程序设计(用LDR和STR实现)
AREA
StrCopy,
CODE,
READONLY
ENTRY
;
程序入口
start
LDR
r1,
=srcstr
;
初始串的指针
LDR
r0,
=dststr
;
结果串的指针
BL
strcopy
;
调用子程序执行复制
stop
MOV
r0,
#0x18
;
执行中止
LDR
r1,
=0x20026
;
SWI
0x123456
;
strcopy
LDRB
r2,
[r1],#1
;
加载并且更新源串指针
STRB
r2,
[r0],#1
;
存储且更新目的串指针;
CMP
r2,
#0
;
是否为0
BNE
strcopy
;
MOV
pc,lr
;
AREA
Strings,
DATA,
READWRITE
srcstr
DCB
"First
string
-
source",0
dststr
DCB
"Second
string
-
destination",0
END
29.
和26题差不多啊。
MOV
R0,#X
MOV
R1,#100
CMP
R0,R1
MOVLS
RO,#1
MOVHI
R2,#1
25.
这题两个函数功能一样,处理器特性我就不说了,任何一本介绍ARM的书都有讲解。在效率方面第一个好些,因为i=1和i=limit中
i=1中,只要读i的地址,然后把2传递即可
i=limit中,既要读i的地址,也要读limit的地址,然后再传值
很明显第一个效率高。
我的这个回答是看过一本程序员面试宝典中的程序效率问题启发的,应该不会错的。呵呵……
希望我的回答对你有所收获。祝你进步!