1、用arm指令实现 r0中的内容乘5
add r0,ro,ro,lsl#
mov r0,r0,lsl#
add r0,r0 ×
答:add r0,r0,r0,lsl#2 ;(r0)×5 →r0√
2、用一条指令实现r0中的内容乘7
mov r1,r0,lsl#
sub ro,r1,ro×
mul r0,r0,#
答:rsb r0,r0,r0,lsl#
3、写出 addne r0,r1,#&ff的注释。
当r1与&ff相等的时候不加,将r1中的值放到r0中;当r1与&ff不等的时候,将r1+&ff的值存放到r0中。×
答:;if z=0,then (r1)+0xff →r0
用汇编实现:从a所指向的地址,拷贝20个32位数到b指向的地址
mov r3,#
aaa ldr b ,[a]!,#
subs r3,r3,#
bne aaa;
end;mov r3#
ldr r0 =a;
ldr r1=b;
loop ldr r2, [r1];
str r2, [r1];
subs r3, r3#
bne loop;
mov r3,#
ldr r0,=a;
ldr r1,=b;
loop ldr r2,[r0],#
str r2,[r1],#
subs r3,r3,#
bne loop;
end;ldr r0,=a;
ldr r1,=b;
mov r2,#
loop: ldr r3,[r0,#
str r3,[r1,#
mov r2,r2,#
cmp r2,#
bne loop;
end;mov r3,#
loop:ldr r0,=a;
ldr r1,=b;
ldr r2,[r0];
str r2,[r1];
subs r3,#
cmp r3,#
bne loop;
end;ldr r0 , a
ldr r1 ,=b
mov r2,#
loopldmia r0! ,
stmia r1! ,
subs r2 , r2 , #
bne loopend二、
mov r4,#
loop:ldr r1,[r0],#
mov r3,0x11;
cmp r4,#
bne loop;
mov r4,#
mov r2,#
array
dcd 0x11
dcd 0x22
dcd 0x33
dcd 0
loop adr r0,array
ldr r1,[r0],#
add r4,r4,r1;
cmp r0,r2;
bne loop;
end; area ldrcopy,code,readonly
entrystart
mov r4,#
ldr r0, =array
loopldr r1,[r0],#
add r4,r4,r1;
cmp r1,#
bne loop
寄存器和intmsk寄存器的作用是什么?
intpnd寄存器用于指示中断请求的状态,1表示有请求。
intmsk寄存器表示对应的中断源是否允许响应,1表示不允许响应。
3、编写一程序,使用外部中断eint0,用中断方式对端口c做数据输入。(注意对中断系统和相关引脚进行初始化)
#define bit_global (0x1<<26)
#define bit_eint0 (0x1<<25)
#define rpconcvolatile unsigned *)0x1d20010)
#define rpdatcvolatile unsigned *)0x1d20014)
#define rpcon**olatile unsigned *)0x1d20040)
#define rextintvolatile unsigned *)0x1d20050)
#define rintpndvolatile unsigned *)0x01e00004)
#define rintmskvolatile unsigned *)0x01e0000c)
#define pisr_eint0 (*unsigned *)isr_startaddress+0x84))
#define ri_isprvolatile unsigned *)0x1e00020)
int c_data;
static void __irq eint0int(void)
ri_ispc = bit_eint0);/清除中断请求标志。
c_data= rpdatc; /读取端口c的输入值。
void main(void)
int tmp=-1;
rintcon=0x5;
rintmod=0x0;
rpcong = rpcong |0x03; /gpg0设置为外中断0请求输入。
rpconc = rpconc &(0x00); 全部输入。
rextint = rextint &~0x07)|0x03;
//下降沿触发。
rintmsk =~bit_global| bit_eint0); 开中断屏蔽。
pisr_eint0=(u32)eint0int设置中断向量。
ARM作业
程序 include define key2 0x00004000 p0.14控制led2con define led2con 0x00000800 p0.11低电平时点亮led2con define time0 fpclk 10 初始状态下一周期低电平时间0.1s define time1 fpc...
ARM作业
arm实验。专业年级 10级通信工程 学号。姓名。指导教师 郑汉麟。2013年6月8日。华中科技大学文华学院信息学部。一 编译前工作 1.先新建新空间。2.新建程序窗口new file,程序写完后,将文件保存为文件,然后点击源文件菜单,增加文件,将。s文件打开。3.编译 project settin...
ARM作业
院系 班级 姓名 学号 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了 i o 设备。概括的讲 一块芯片就成了一台计算机。它的体积小 质量轻 便宜 为学习 应用和开发提供了便利条件。同时,学习使用单片...