1. c语言 return寄存器做什么
return 的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。
2. C语言中的寄存器是什么干什么用
寄存器是和硬件有关的,和你的C语言写的程序所运行的平台有关。积存器就是硬件中存放一些数据,变量的地方,有相应的含义。
3. c语言单片机寄存器是怎么操作的
可以说是对寄存器的操作吧,不过不只是c语言,汇编语言也可以。。。。。其实单片机对寄存器的操作不外乎是采集外部信息,然后在内部处理后,再通过寄存器输出控制信息,对外部信息作出相应的反应,其实单片机就相当于计算机。。。。
4. c语言如何读寄存器的值
1、首先,输入寄存器变量关键字【register】。
注意事项:
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。
5. C语言怎么直接使用寄存器和内存
C语言的初衷是替代汇编语言,目的之一就是简化对硬件资源的操作而避免直接引用硬件,所以C只通过register型变量和malloc等函数来间接操作寄存器和内存;早期的的C提供的int86库函数还可更进一步较逼真地“直接”使用寄存器。若想直接操作那得用其与汇编混写的功能来混合编程。
6. C语言中如何设置寄存器的 GPFDAT[7:6]为10,而保持其他位的值不变
需要将第6位置0、第7位置1,不影响其它位,就需要通过两次逻辑运算实现。
先将第6位置0,不影响其它位:
GPFDAT &= (~(1<<6));
再将第7位置1,不影响其它位:
GPFDAT |= (1<<7)
0X40=0100 0000
~0X40=1011 1111再与上(R2)
内联汇编代码可以使用 C/C++ 变量和函数,因此它能非常容易地整合到 C/C++ 代码中。它能做一些对于单独使用 C/C++ 来说非常笨重或不可能完成的任务。
(6)c语言寄存器怎么用扩展阅读:
寄存器有串行和并行两种数码存取方式。将n位二进制数一次存入寄存器或从寄存器中读出的方式称为并行方式。将n位二进制数以每次1位,分成n次存入寄存器并从寄存器读出,这种方式称为串行方式。
并行方式只需一个时钟脉冲就可以完成数据操作,工作速度快,但需要n根输入和输出数据线。串行方式要使用几个时钟脉冲完成输入或输出操作,工作速度慢,但只需要一根输入或输出数据线,传输线少,适用于远距离传输。
7. C语言中,如何定义单片机的寄存器
1.
位地址在汇编语言中,只能直接寻址,不支持间接寻址。那么,在
C
语言中,也就不能用指针来操作。所以不能定义单片机的寄存器。
2.
访问寄存器可以通过直接地址引用来完成。
例如52单片机的寄存器有4组,分别为00H-07H,08H-0FH,10H-17H,18H-1FH,各组均8字节,要结合程序状态字寄存器PSW(D0H)中的RS0,RS1的组合来确定是哪一组。
可以定义一个访问Rn的函数
typedef unsigned char uchar;
uchar dacRn(uchar n) //n=[0..7]
{
uchar data *p;
n += (PSW & 0x18); //PSW 7:CY 6:AC 5:F0 4:RS1 3:RS0 2:OV 1:F1 0:P
//本来要右移三位变为0-3,但由于是8个一组要乘以8(左移3位),所以直接加上寄存器编号就可以了
return *(uchar data *)n;
}
8. 求助:怎么用C语言去读硬件寄存器的值
硬件寄存器一般都有相应的访问地址,就象随机存储器一样,找到这个地址,用指针访问这个地址的单元,就可以进行读写了。
比如:假定某寄存器地址为800100H,寄存器是16位的,则将这个寄存器最低位翻转的程序为
unsigned short int *pR=(unsigned shrot int *)0x800100;
(*pR)^=0x01;
9. SN用c语言如何使用Y,Z寄存器
一种数据处理系统包含具有N位数据通路并支持并行操作程序指令字的算术逻辑单元(20、22、24),其中算术逻辑单元在(N/2)位输入操作数字上并行执行独立的算术运算。提供了响应独立的算术逻辑运算的两组状态码标志N、Z、C、V、SN、SZ、SC、SV。
权利要求(8)
1.数据处理装置,所述装置包括:用于存储要操作的数据字的多个寄存器,各所述寄存器至少具有N位容量;以及具有N位数据路径并响应程序指令字来执行所述程序指令字所指定的算术逻辑运算的算术逻辑单元;其中所述算术逻辑单元响应至少一个并行操作程序指令字,分开在第一(N/2)位输入操作数数据字上执行第一算术逻辑运算及在第二(N/2)位输入操作数数据字上执行第二算术逻辑运算;以及所述算术逻辑单元根据所述第一算术逻辑运算设置第一组状态码标志及根据所述第二算术逻辑运算设置第二组状态码标志。
2.权利要求1中所要求的装置,其中所述并行操作程序指令字在所述多个寄存器中指定带有存储在源寄存器的高位位置中的所述第一(N/2)位输入操作数及存储在所述源寄存器的低位位置中的所述第二(N/2)位输入操作数的所述源寄存器。
3.权利要求1与2中任何一项中所要求的装置,其中所述算术逻辑单元具有作为在算术逻辑运算中位位置之间的进位链工作的信号路径,以及在执行并行操作程序指令字时,所述信号路径是在所述第一(N/2)位输入操作数数据字与所述第2(N/2)位输入操作数数据字之间断开的。
4.前面的权利要求中任何一项中所要求的装置,其中所述并行操作程序指令字执行下述算术逻辑运算之一:(ⅰ)执行两个并行(N/2)位加法的并行加;(ⅱ)执行两个并行(N/2)位减法的并行减;(ⅲ)执行两个并行(N/2)位移位操作的并行移位;(ⅳ)并行执行一个(N/2)位加法及一个(N/2)位减法的并行加/减;(ⅴ)执行两个并行(N/2)位最小/最大操作的并行最小/最大;以及(ⅵ)执行两个并行(N/2)位定标操作的并行定标。
5.前面权利要求中任何一项中所要求的装置,其中所述第一组状态码标志及所述第二组状态码标志至少包含指示紧接在前面的操作的下述状态的标志之一:(ⅰ)产生0的结果;(ⅱ)产生负的结果;(ⅲ)产生溢出;及(ⅳ)产生进位。
6.前面权利要求中任何一项中所要求的装置,其中所述算术逻辑单元响应条件选择指令,根据所述第一组状态标志将存储在第一源寄存器中的第一(N/2)位输入操作数数据字与存储在第二源寄存器中的第一(N/2)位输入操作数数据字之一传送到所述多个寄存器中的目的地寄存器,以及根据所述第二组状态标志将存储在第一源寄存器中的第二(N/2)位输入操作数数据字与存储在第二源寄存器中的第二(N/2)位输入操作数数据字之一传送到所述目的地寄存器。
7.前面权利要求中任何一项中所述要求的装置,其中算术逻辑单元执行卷积运算、过滤器运算、相关运算及变换运算之一。
8.处理数据的方法,所述方法包括下述步骤:将要操作的数据字存储在多个寄存器中,各所述寄存器至少具有N位容量;以及响应程序指令字,用具有N位数据路径的算术逻辑单元执行所述程序指令字指定的算术逻辑运算;其中响应至少一个并行操作程序指令字,分开在第一(N/2)位输入操作数数据字上执行第一算术逻辑运算及在第二(N/2)位输入操作数数据字上执行第二算术逻辑运算;根据所述第一算术逻辑运算设置第一组状态码标志;以及根据所述第二算术逻辑运算设置第二组状态码标志。