17得票11回答
解开汇编语言的代码混乱问题

我继承了一份由8051汇编语言编写的10,000行程序,需要进行一些更改。不幸的是,它是按照最典型的意大利面条式编程传统编写的。该程序——以单个文件的形式编写——是CALL和LJMP语句的迷宫(总共约1200条),子例程具有多个入口和/或出口点,如果可以识别为子例程的话。所有变量都是全局的。有...

16得票6回答
在C语言中,有没有一种方法来访问单个比特位?

我对比特可寻址微控制器进行了一些研究。在我的研究中,唯一遇到的是英特尔MCS-51(维基页面),它今天仍然被广泛使用... 我想知道是否可以直接在C语言中寻址位,例如在维基8051内存架构的SFR区域。 我在SFR中寻址的位,它们是直接按位寻址的,还是按字节寻址的位字段中的按位操作,或者完全...

10得票5回答
何时使用xdata?

我是嵌入式系统编程的新手。我正在开发一个使用8051芯片组的设备。在示例程序中,我注意到有时在定义变量时会使用关键字xdata。像这样... static unsigned char xdata PatternSize; 而其他时候则省略了xdata关键字。 我的理解是,xdata关键字...

9得票4回答
在微控制器中,“printf”是用来做什么的?

我在单片机的c语言样例代码中看到了"printf"指令。由于单片机没有固定的输出显示器,那么"printf"指令有什么用呢?

9得票11回答
8051微控制器的C++编程?

请问是否有可能用C++程序烧录8051微控制器?我在网上搜索了很多但似乎没有确定的答案。Keil使用C语言,但我需要编写的程序需要大量字符串操作,而C语言对于字符串的操作不够友好,而我习惯使用的是C#。目前,我正在尝试用C语言编写代码,但变得非常混乱,如果可以改用C++编写将会非常方便。 我...

8得票2回答
优化SHA-1用于小输入

我希望对一个基于8051的8位MCU进行SHA-1实现的优化。输入数据仅为8字节,因此我想知道是否有办法改进这个宏: #define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) 我发现的问题是,当宏...

7得票2回答
我如何在8051汇编中编写高效的switch()语句?

如果我想在8051汇编语言中创建有限状态机,我需要一个有效的等效C switch()表达式。 [对于这个问题,让我们忽略落空行为,保留和删除都是可以接受的] 有几种方法可以在8051汇编中实现这一点,但它们各自有其缺点。对于5-10个情况的短开关,它们足够简单、清晰,但如果我需要一个>12...