x86 和 x64 共享指令集? [英] x86 and x64 share instruction set?

查看:43
本文介绍了x86 和 x64 共享指令集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道 32 位应用程序如何在 64 位操作系统上运行.

I don't know how 32bit application can run on a 64bit OS.

我的理解是 32bit/64bit 是指寄存器大小.指令集应该不同,因为它们有不同大小的寄存器.

My understanding is 32bit/64bit refers to register size. An instruction set should be different as they have different sizes of register.

但我知道有 x86-64 指令集,它是 x86 指令集的 64 位版本.

But I know there is x86-64 instruction set that is the 64bit version of the x86 instruction set.

  1. 我们可以在 64 位操作系统上运行 32 位应用程序的原因是因为 x86-64 吗?

  1. Is the reason we can run 32bit application on 64bit OS is because of the x86-64?

如果是这样,为什么 32 位应用程序有时在 64 位窗口中不兼容?为什么我们需要WOW64?(有时我们会被要求选择要安装的版本.)

If so, why are 32bit applications sometimes not compatible in 64bit windows? Why do we need WOW64? (Sometimes we are asked to choose which version to install.)

x64 指令集除了 x86-64 之外还有其他指令集吗?有人告诉我 x64 只是为了扩展内存范围,它们的指令集是相同的.这是正确的吗?

Does x64 instruction set have any other instruction set except x86-64? Some people told me x64 is just to extend memory range and the instruction set they have is identical. Is this correct?

推荐答案

我们可以在 64 位操作系统上运行 32 位应用程序的原因是x86-64?

Is the reason we can run 32bit application on 64bit OS is because of the x86-64?

大多数情况下是的.但让我简要解释一下,32 位/64 位实际上并不一定是指寄存器大小,因为问题是您在谈论哪个寄存器(类型)?更准确地说,32 位/64 位指的是地址总线的宽度(即可以寻址多少内存),或者换句话说,C 中指针的大小.然后,32/64 位又会(间接)指字的大小又名机器的基本整数"类型的大小.无论如何,32 位/64 位必须更多地处理可寻址内存,但也与字大小 (sizeof(int)) 以及寄存器大小有关.那么,回到问题.许多 32 位二进制文​​件仍然可以在 64 位系统上运行.是的,因为新的"x86-64 只扩展了原始的 x86 ISA(当然还有更多指令).因此,您的旧 32 位二进制文​​件(由 x86 指令组成)可能仍可在新系统中运行.

Yes for the most part. But let me briefly explain that 32bit/64bit does not necessarily actually refer to register size because the question would be which register (type) are you talking about? More accurately, the 32bit/64bit refer to the width of the address bus (ie how much memory can be addressed) or in other words the size of a pointer in C. Then, in turn the 32/64bit would (indirectly) refer to the word size aka the size of the basic 'integer' type of the machine. Anyway, the 32bit/64bit has to do more with addressable memory but is also related to word size (sizeof(int)) and in turn register size. So, back to the question. Alot of 32Bit binaries can still run on 64bit systems. Yes, because the "new" x86-64 only extends the original x86 ISA (with more instructions of course). Therefore, your old 32bit binary (which consists of x86 instructions) may still be runnable in the new system.

如果是这样,为什么 32 位应用程序有时与 64 位不兼容视窗?为什么我们需要WOW64?(有时我们会被要求选择哪个要安装的版本.)

If so, why are 32bit applications sometimes not compatible in 64bit windows? Why do we need WOW64? (Sometimes we are asked to choose which version to install.)

是的,在很多情况下,旧的 x86 32 位二进制文​​件/应用程序无法在新的 64 位系统中运行.例如,您的二进制文件可能包含(出于某种原因)不再受支持的一个或多个指令(请参阅 this 示例).或者,如果您的二进制文件/应用程序特别需要使用新系统中不存在的 32 位库.在这种情况下,您的系统会抱怨您无法运行此 32 位应用程序.

Yes, there are a number of cases where old x86 32bit binary/application won't be runnable in a new 64bit system. For example, your binary may contain one or more instructions that (for some reason) are no longer supported (see this for examples). Or, If your binary/application specifically requires the use of a 32bit library that does not exist in your new system. In that case, your system will complain that you can't run this 32bit application.

x64 指令集除了 x86-64 之外还有其他指令集吗?有人告诉我 x64 只是为了扩展内存范围他们拥有的指令集是相同的.这是正确的吗?

Does x64 instruction set have any other instruction set except x86-64? Some people told me x64 is just to extend memory range and the instruction set they have is identical. Is this correct?

首先,Intel64、AMD64、x86-64、x64 几乎(或多或少)指的是同一个东西!是的,x86-64 指令集非常庞大,并且会定期接收扩展(想想 MMX、SSE、AVX....等).每个扩展就像一个迷你指令集.在 Wikipedia 上查找 x86 指令集,您应该会获得大量信息.

First, the Intel64, AMD64, x86-64, x64 all pretty much (more or less) refer to the same thing! Yes, the x86-64 instruction set is HUGE and receives extensions on a regular basis (think MMX, SSE, AVX....etc). Each extension is a like a mini instruction set. Look up x86 instruction set on Wikipedia you should get a ton of info.

这篇关于x86 和 x64 共享指令集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆