Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 基于cortex m3的组装代码是否有差异?_Assembly_Arm_Cortex M - Fatal编程技术网

Assembly 基于cortex m3的组装代码是否有差异?

Assembly 基于cortex m3的组装代码是否有差异?,assembly,arm,cortex-m,Assembly,Arm,Cortex M,例如。。。 stm32l152的汇编语言(基于cortex m3)和stm32f103的汇编语言是否相同? 基于cortex m3的所有mcu的汇编语言是否相同 我知道外围设备不同,但是汇编语言呢? 不同吗?为了澄清您的问题,指令集和汇编语言之间有一个重要的区别。指令集(顾名思义)是处理器能够理解的指令集。汇编语言是一种低级编程语言,它在助记符和实际指令之间提供(大部分)1:1的对应关系 所有Cortex-M3处理器的指令集都是相同的。它是M4和M4F皮层的子集,是M0和M0+皮层的超集。它还与

例如。。。 stm32l152的汇编语言(基于cortex m3)和stm32f103的汇编语言是否相同? 基于cortex m3的所有mcu的汇编语言是否相同

我知道外围设备不同,但是汇编语言呢?
不同吗?

为了澄清您的问题,指令集和汇编语言之间有一个重要的区别。指令集(顾名思义)是处理器能够理解的指令集。汇编语言是一种低级编程语言,它在助记符和实际指令之间提供(大部分)1:1的对应关系

所有Cortex-M3处理器的指令集都是相同的。它是M4和M4F皮层的子集,是M0和M0+皮层的超集。它还与这些设备二进制兼容,因此为M3编写的代码将在M4F上不经修改地运行

汇编语言在工具链和体系结构之间是不同的,所以除非您指定一个工具链,否则您的原始问题没有简单的答案;但例如,如果您使用的是ARMASM,那么是的,使用该工具链的汇编语言对于所有Cortex-M3设备都是相同的

正如您在问题中所指出的,不同制造商的处理器之间会存在显著的外围差异,因此,即使来自不同制造商的两个给定设备可能共享一个指令集,也很难设计出在这两个设备上实际运行的任何有用的纯金属软件。如果您使用的操作系统提供了硬件功能的完整抽象,那么您的应用程序代码很有可能在两者之间实现二进制兼容,但我不确定这是否有帮助


阅读ARM文档可以很容易地回答这个问题,我认为这可以解释为什么会有反对票。但是如果英语不是你的第一语言,我可以理解文档中有点令人生畏的地方。

你不理解ARM文档的哪一部分?汇编语言是由汇编程序定义的,汇编工具,不是目标(cortex-m3),是的,arm的汇编语言因您使用的工具而异,即使是同一芯片stm32f103与使用不同工具链的stm32f103。@jjw:stm32l152和stm32f103共享相同的指令集。谢谢您的回答。我想我错过了选词。我的意思是指令集而不是汇编语言。@jjw:答案是肯定的。