南京邮电大学c语言实验报告8,南邮嵌入式系统B实验报告.docx

精品文档

南京邮电大学通信学院

实验报告

实验名称: 基于 ADS 开发环境的程序设计

嵌入式 Linux 交叉开发环境的建立

嵌入式 Linux 环境下的程序设计

多线程程序设计

课程名称嵌入式系统B

班级学号

姓名

开课学期2016/2017 学年第 2 学期

.

精品文档

实验一 基于 ADS 开发环境的程序设计一、实验目的

1、学习 ADS 开发环境的使用;

2、学习和掌握 ADS 环境下的汇编语言及C 语言程序设计;

3、学习和掌握汇编语言及C 语言的混合编程方法。

二、实验内容

1、编写和调试汇编语言程序;

2、编写和调试 C 语言程序;

3、编写和调试汇编语言及C 语言的混合程序;

三、实验过程与结果

1、寄存器 R0 和 R1中有两个正整数,求这两个数的最大公约数,结果保存

在 R3中。

代码 1:使用 C内嵌汇编

#include

int find_gcd(int x,int y)

{

intgcdnum;

__asm

{

MOV

r0, x

MOV

r1, y

LOOP:

CMP

r0, r1

SUBLT r1, r1, r0

SUBGT r0, r0, r1

BNELOOP

MOVr3, r0

MOV gcdnum,r3

//stop

//Bstop

END

}

return gcdnum;

}

int main()

{

int a;

a=find_gcd(18,9);

.

精品文档

printf("gcdnum:%d\n",a);

return 0;

}

代码 2:使用纯汇编语言

AREAexample1,CODE,readonly

ENTRY

MOV

r0, #4

MOV

r1, #9

start

CMP

r0, r1

SUBLT r1, r1, r0

SUBGT r0, r0, r1

BNE

start

MOV

r3, r0

stop

Bstop

END

2、寄存器 R0 、R1 和 R2 中有三个正整数,求出其中最大的数,并将其保存

在 R3中。

代码 1:使用纯汇编语言

AREA examp,CODE,READONLY

ENTRY

MOV R0,#10

MOV R1,#30

MOV R2,#20

Start

CMP R0,R1

BLE lbl_a

CMP R0,R2

MOVGT R3,R0

MOVLE R3,R2

B lbl_b

lbl_a

CMP R1,R2

MOVGT R3,R1

MOVLE R3,R2

lbl_b

.

END

代码 2:使用 C 内嵌汇编语言

#include

intfind_maxnum(int a,int b,int c)

.

精品文档

{

int x;

__asm

{

MOV r0,a

MOV r1,b

MOV r2,c

CMP r0,r1

BLE lbl_a//相等跳转

CMP r0,r2

MOVGT x,r0

MOVLE x,r2

//MOV r3,x

lbl_b

lbl_a:

CMP r1,r2 MOVGT x,r1 MOVLE x,r2

//MOV r3,x

lbl_b:

}

return x;

}

int for_r3(int t)

{

//int t;

__asm

{

MOV r3,t

}

return 0;

}

int main()

{

int a;

a = find_maxnum(130,50,70);

for_r3(a);

printf("max:%d\r\n",a);

return 0;

}

3、编程实现将从地址source 开始的 30 个字节数据复制到地址为dest 的地

.

精品文档

方。

代码 :

NUM

EQU30

AREA

Init, CODE, READONL

Y

CODE32

ENTRY

START

LDR

R0,

=SOURCE

LDR

R1,

=DEST

MOV

R2,

#NUM

MOV

SP, #0X400

BLKCOPY

MOV

R3,

R2,

LSR

#3

BEQ

COPYWORDS

STMFD

SP!,

{R4-R11}

OCTCOPY

LDMIA

R0!,

{R4-R11}

STMIA

R1!,

{R4-R11}

SUBS

R3,

R3,

#1

BNE

OCTCOPY

LDMFD

SP!,

{R4-R11}

COPYWORDS

ANDS

R2,R2,

#7

BEQ

STOP

WORDCOPY

LDR

R3,

[R0],

#4

STR

R3,

[R1],

#4

SUBS

R2,

R2,

#1

BNE

WORDCOPY

STOP

STOP

LTORG

SOURCEDCD1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值