为什么同一款软件可以在使用不同架构处理器,相同操作系统的计算机上运行?

比方说很多软件商在官网提供的软件下载链接大都是以操作系统来分类的(如同一个软件有Windows版,Mac版,Linux版),
却很少有见到以处理器架构(x86版,ARM版)来区分。

按说不同架构处理器上编译出来的机器码是不同的,那么软件商是如何解决一个.exe文件,
跨处理器架构运行的呢?

例如:我下载了一个QQ的.exe安装包,然后有三台分别使用Intel,AMD,ARM处理器但都安装着Windows操作系统的计算机,是不是这3台计算机都可以使用这个.exe安装包呢?如果是,那么是如何解决机器码不同的问题?如果不是,那么软件商为什么对Windows操作系统只推出一个.exe安装包呢?

不同架构处理器的不同之处已经被操作系统所隐藏了。对于软件来说,没有什么区别。

下载链接大都是以操作系统来分类的,是因为每一类都是单独开发的:使用不同的开发工具,编译工具,所以没有办法通用。这是你所说的,在同一CPU 框架+不同 OS 下的情况。
不同CPU框架,如ARM和X86,也可以这样来区分。但一般情况下,ARM的硬件资源相对于X86要少很多,再上 OS 的限制,一般功能要少很多的。

想要EXE在不同的CPU框架下运行,最多是使用跨平台编译;或者,每个CPU框架下使用专门的编译工具。

操作系统是靠近硬件的软件层,其功能是直接控制和管理系统资源(包括软件、硬件)。计算机系统的硬件在操作系统的管理和控制下,其功能得以充分发挥。从用户观点看,引入操作系统后,计算机系统成为一台硬件系统功能更强、服务质量更高、使用更方便的机器。操作系统与其他系统软件一起向用户提供了一个良好的工作环境,用户无需了解许多与硬件和系统软件的细节,就能方便的使用计算机。

运用操作系统接口,屏蔽不同架构的差异