首页 > 编程知识 正文

(使用arm混合汇编计算两个64位的和_ARM嵌入式系统结构与编程习题答案 邱铁著)

时间:2023-05-06 14:22:35 阅读:121765 作者:3210

第八章ARM汇编语言与嵌入式c的混合编程

1 .严格按照嵌入式c语言的编程规范,编写c语言程序,实现对二维数组中的数据行和列进行排序。

答:略

2 .嵌入式c编程中常用的换挡操作有几种? 请说明与各运算对应的ARM指令的实现。 a )换挡操作分为左换挡操作和右换挡操作

左移运算符

右移位运算符实现将左操作数的各位向右移位

? 关于空座的补充方式,无符号的数量和有符号的数量有差异。

? 无符号数右移时,舍弃低位,高位用0修整。 其值相当于除以2 -右移位数次方

? 当将有符号的数字向右移位时,在处理器上选择逻辑上向右移位还是算术上向右移位

3.volatile限制符在程序中起什么作用? 请举例说明。

答: volatile的原意是―过渡性的或.―易变的,这个说明符对编译器的优化起着抑制作用。

如果在声明时用―volatile键进行限定,则遇到用该关键字声明的变量时,编译器将不再优化访问该变量的代码,从而实现对特殊地址的稳定访问。

? 例:硬件端口寄存器读取

? Char x=0,y=0,z=0;

? x=readchar(0x54000000; //引线端口

? y=x;

? x=readchar(0x54000000; //重新读取端口

? z=x;

? 上述代码由编译器

? Char x=0,y=0,z=0;

? x=readchar(0x54000000; //引线端口

? y=x;

? z=x;

? 要确保x的值来自实际端口,在声明时必须

? V olatile char x;

? Char y,z;

4 .请分析以下程序代码的执行结果。

#包含

主()。

int value=0xFF1;

int *p1、**p2、***p3、****p4;

p1=value;

p2=p1;

p3=p2;

p4=p3;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。