几道简单ARM汇编代码题

几道简单ARM汇编代码题,第1张

我来回答你吧,研究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的地址,然后再传值

很明显第山辩信一个效率高。

我的这个回答是看过灶罩一本程序员面试宝典中的程序效率问题启发的,应该不会错的。呵呵…逗轮…

希望我的回答对你有所收获。祝你进步!

GE是指令条件,意思就是帆轿greater or equal,大于或等于,似乎几培腊乎可以加到所有指令上。

BGE中的B是配轿滑branch,跳转的意思,BGE就是大于或等于才跳。

ADDGE就是ADD“加”指令再附上GE。

.stack 100h

.data

.code

start:

mov ax, @data

mov ds, ax

mov cx, 50 循绝森环50次

xor ax, ax

label:

mov bx, cx

shl bx, 1 相当森闹于将当前循环计数乘此宏罩2,用来做加法

add ax, bx

loop label 循环完成后,结果放在AX中

mov ax, 4c00h

int 21h


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12220497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存