新手求教嵌入式汇编实验题

py330316117 2010-01-03 05:56:45
要求:完成10个字节数据的升序排列
有个字节复制的例子可以参考:
#*********************************************************************************************
# NAME: ARMcode.s *
# Author: Embest *
# Desc: ARMcode examples *
# copy words from src to dst *
# History: shw.He 2005.02.22 *
#*********************************************************************************************

/*------------------------------------------------------------------------------------------*/
/* constant define */
/*------------------------------------------------------------------------------------------*/
.global _start

/*------------------------------------------------------------------------------------------*/
/* code */
/*------------------------------------------------------------------------------------------*/
.text
.equ num, 20 /* Set number of words to be copied */

_start:
ldr r0, =src /* r0 = pointer to source block */
ldr r1, =dst /* r1 = pointer to destination block */
mov r2, #num /* r2 = number of words to copy */

mov sp, #0x400 /* set up stack pointer (r13) */
blockcopy:
movs r3,r2, LSR #3 /* number of eight word multiples */
beq copywords /* less than eight words to move ? */

stmfd sp!, {r4-r11} /* save some working registers */
octcopy:
ldmia r0!, {r4-r11} /* load 8 words from the source */
stmia r1!, {r4-r11} /* and put them at the destination */
subs r3, r3, #1 /* decrement the counter */
bne octcopy /* ... copy more */

ldmfd sp!, {r4-r11} /* don't need these now - restore originals */

copywords:
ands r2, r2, #7 /* number of odd words to copy */
beq stop /* No words left to copy ? */
wordcopy:
ldr r3, [r0], #4 /* a word from the source */
str r3, [r1], #4 /* store a word to the destination */
subs r2, r2, #1 /* decrement the counter */
bne wordcopy /* ... copy more */

stop:
b stop

/*------------------------------------------------------------------------------------------*/
/* make a word pool */
/*------------------------------------------------------------------------------------------*/
.ltorg
src:
.long 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
dst:
.long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

.end


PS:因为是刚学汇编,理论学的倒是挺好,不知道实际怎么开发,看大多数人并不把重点放在写代码上,但是我想先打好基础,c语言我学的不错,但是汇编完全没思路 ,能介绍写嵌入式汇编的书吗,好的文章页行,在网上查的一些觉得不实用,只做实验部给经验的也很感谢,要是给我介绍下经验的就爱死你了
...全文
174 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
py330316117 2010-01-04
  • 打赏
  • 举报
回复
我发错版块了吗?怎么没人回答
py330316117 2010-01-04
  • 打赏
  • 举报
回复
我发错版块了吗?怎么没人回答
py330316117 2010-01-04
  • 打赏
  • 举报
回复
还是没人答啊,人烟稀少啊

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧