x86与x64与x86_64】的更多相关文章

x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32” x84_64是x86 CPU开始迈向64位的时候,有2选择:1.向下兼容x86.2.完全重新设计指令集,不兼容x86.AMD抢跑了,比Intel率先制造出了商用的兼容 x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同.而Intel选择了设计一种不兼容x86…
    x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32”  x84_64是x86 CPU开始迈向64位的时候,有2选择:1.向下兼容x86.2.完全重新设计指令集,不兼容x86.AMD抢跑了,比Intel率先制造出了商用的兼容 x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同.而Intel选择了设计一种不…
整理了下网上的资料,归类了下,大似表述是这样的:IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86.x86并不是指32位环境,而是指80x86架构,这个架构目前有32位,64位两种.曾经听说还包括了过8位和16位,不过我没机会看过. 习惯上来说,x86架构就是32位的,但AMD扩展出了64位环境,而且64位硬件支持32位,称为amd64intel叫EM64T,EM64T本质上和amd64一样都是IA-32的增强版本,Xeon借助于EM64T可实现高达1TB(40bit)的…
x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32” x84_64是x86 CPU开始迈向64位的时候,有2选择:1.向下兼容x86.2.完全重新设计指令集,不兼容x86.AMD抢跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同.而Intel选择了设计一种不兼容x86的…
if(CMAKE_CL_64)    #CMAKE的内建变量,如果是true,就说明编译器的64位的,自然可以编译64bit的程序 set(ADDRESS_MODEL 64) set(NODE_TARGET x64)else() set(ADDRESS_MODEL 32) set(NODE_TARGET x86)endif() 看以上代码,判断下就行了 CMAKE_CL_64内建的这个变量,官方文档给出来的解释是: Using the 64 bit compiler from Microsoft…
vs2015 x64编译器为例,cmake命令如下: cmake -G "Visual Studio 14 Win64" path\to\source\dir 去掉Win64,就是32bit: cmake -G "Visual Studio 14" path\to\source\dir 另外一种等价方式,用命令行参数-A来指定架构(x64或者ARM): cmake -A x64 path\to\source\dir 更多参考: https://cmake.org/c…
(1)x86的由来 x86架构首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的.在8086之后,Intel又推出了包括80186.80286.80386以及80486. 在设计上,这些后续的处理器使用的指令集都是在8086的基础上添加新支持的指令进行改进的,因此可以说都是向下兼容(backward compatibility)的,即能在8086上运行的程序在80486上也一定能运行. 向下兼容(Do…
几个月前我小小的研究了在WOW64下的32位进程中运行native x64代码. 第二个设想是在64位进程下运行x86代码.它们都是可以的,如我google的一样, 已经有人在使用这两种方法了: http://vx.netlux.org/lib/vrg02.html http://www.corsix.org/content/dll-injection-and-wow64 http://int0h.wordpress.com/2009/12/24/the-power-of-wow64/ http…
同样的程序代码,使用Visual Studio 进行编译,当目标平台分别为x86或x64环境时,其编译结果是不同的.在x86环境下,指针都是4个字节的:而在x64环境下,指针都是8字节的.测试代码如下: #include<iostream> using namespace std; int main(int argc, char** argv) { cout << "sizeof(char)=" << sizeof(char) << en…
本来是知道x86和x64的区别的. 今天突然在VS2008上看到一个win32的选项,一下子懵了,这是什么玩意. 百度之,发现答案 win32是指windows 32位的操作系统,顾名思义是支持32为CPU的操作系统. x86是指CPU的位,X86是指32位的CPU. x64是指64位CPU, 一个是指操作系统,一个是指CPU. x86的范围比win32的范围要广.…
电脑硬件CPU可以分为x86与x64, x86的机器只能安装32位的操作系统,如XP, WIN7_86, x64的机器既可以安装32位的系统,又可以安装64位的系统,只是在x64的机器上安装32位的系统,不能够很充分的利用这台机器的资源.x86程序,即适用于32为操作系统的程序,x64即适用于64位操作系统的程序.64位系统上依然可以运行32位的程序,但是这是通过WOW64来运行,通俗上讲,就是模拟出一个32位的CPU来运行这个程序. 接下来是C#程序的编译运行,分为两步,第一步是编译成IL,在…
早已久仰CefSharp大名,今日才得以实践,我其实想用CefSharp来访问网站页面,然后抓取html源代码进行分析,如果使用自带的WebBrowser控件,可能会出现一些不兼容js的错误. CefSharp允许您在.NET应用程序中嵌入Chromium.它是Marshall A. Greenblatt 围绕Chromium Embedded Framework(CEF)的轻量级.NET包装器.大约30%的绑定是用C ++ / CLI编写的,这里的大部分代码都是C#.它可以从C#或VB或任何其…
Visual Studio中Debug与Release的区别: 在Visual Studio中,编译模式有2种:Debug与Release.这也是默认的两种方式,在新建一个project的时候,就已经存在这两种模式供选择. Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.      Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. SO:      一般都是用Release来打包发布程序,因为Re…
VS2012在win7 64位机中x86和x64下基本类型的占用空间大小 #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { int i = 0; i = sizeof(int); // x86:4 x64:4 i = sizeof(long); // x86:4 x64:4 i = sizeof(void*); // x86:4 x64:8 i = sizeof(s…
前言 这几天研究了一下 vJoy 这个虚拟游戏手柄驱动,感觉挺好玩的.但是使用时发现一个问题,C# SDK 中的程序集被分为 x86 和 x64 两个版本,如果直接在 AnyCPU 平台编译运行就有隐患,在32位系统中运行程序时会因为程序集版本不兼容而崩溃.这个 SDK 的两个版本文件名完全相同,根据 .Net 程序集的加载规则,我们是无法在不做任何工作的情况下实现共存的.对于平台特定程序集,目前的主流做法是把程序集放到以平台名称命名的文件夹中.通过一个包装程序集完成载入和调用. 正文 我这里的…
本以为这些无关紧要的 Debug与Release以及x86.x64.Any CPU 差点搞死人了. 看了以下博文才后怕,难怪我切换了一下模式,程序就pass了.... 转载: 1.https://www.cnblogs.com/xxn-180727/p/9442992.html 2.https://www.cnblogs.com/netserver/p/11106130.html 一.Debug与Release 1.  区别 Debug--调试版,生成的.exe中包含很多调试信息,若直接发包,比…
一.简叙 写工控上位机的搬砖人,难免会遇到USB通讯,在一个项目中,我写的上位机使用USB HID协议和STM32通讯传输数据,从零大概花了几天找例程,找资料,最后是各种搬砖修补,终于出来了一个出版DOME,能和下位机实时通讯了. HID通讯方式其实很常见,像鼠标.键盘等待外设都是这种方式,我也不知道为啥要用这种方式,我当初用它是因为其传输速率比串口快(忆当初下位机还没开发出网口的苦日子),再则其是免驱(win内置驱动,直接调API即可). HID识别设备主要通过设备的PID(厂商ID)和VID…
x64其实就是64位, x86其实就是32位. 1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu. intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4).赛扬系列,Pentium D系列 以及centrino P-M,core duo 等. 2. X86_64 适用于intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempro…
在我们测试平台上发布客户端组件,经常会碰到因为build的版本是x86还是anycpu而引起的application error的问题.借此,研究了一下X86,X64,AnyCPU的区别. 使用.net平台自带的工具CorFlags的可以查看组件详细版本信息.下图比较了3种编译配置得到的组件的CLR头信息: anycpu x86 x64 Collapse | Copy Code Version   : v4.0.30319 CLR Header: 2.5 PE        : PE32 Cor…
之前转的: 将程序移植到64位Windows 还有自己乱写的一篇: 跨平台编程注意事项(一) 之前对于x64平台的移植都是纸上谈兵,算是前期准备工作, 但起码在写代码时,已经非常注意了.所以现在移植起来相对很顺利.昨天用了一天时间把自己代码添加了x64支持.贴一下遇到的问题,就作为注意事项吧,以下文字来自我的cnblogs博客的另一文章,有修改 1.指针到数值的转换.  指针 (如void*)转到数值,要用intptr_t或者uintptr_t (用Win32的INT_PTR也可以,当然用C/C…
看到有很多会员问到底是选Windows7 x86,还是选x64.这里简单的谈一下这这两种系统的区别. 简单的说x86代表32位操作系统  x64代表64位操作系统. 简单的判断电脑是否支持64位操作系统:http://www.windows7en.com/Win7/5305.html 如果你的CPU是双核以上,那肯定支持64位操作系统了 如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好,Vista也好,最大都只支持3.25G的内存.而64位的windows 7…
@echo off if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86 if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64 exit :x64 copy *.* %SYSTEMROOT%\SysWOW64\ regsvr32 %SYSTEMROOT%\SysWOW64\VZLPRClientCtrl.ocx exit :x86 copy *.*…
我们都知道,在配置ArcGIS Android SDK时,需要在jniLibs目录下放置三个文件夹,分别是armeabi.armeabi-v7a.x86三个文件夹,ArcGIS Android针对目标设备不同CPU型号,选择不同文件夹中的so文件.在开发某一项目我使用ArcGIS Android10.2.9版本时,一开始是基于平板开发的,开发设备是LENOVO YOGA Tablet2.编译调试时通过adb shell getprop ro.product.cpu.abi命令,我们知道当前使用的…
有时候,需要检查构建的dll是否针对正确的平台 可以使用CorFlags.exe(它是.NET Framework SDK的一部分)从dll中查找此信息.运行CorFlags.exe将产生以下输出: >> CorFlags "C:\example.dll" Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.1590.0 Copyright (c) Microsoft Corporation.…
如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的32/64位版本,要每个都检查过去哦) <DbProviderFactories>       <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"…
<ItemGroup Condition=" '$(Platform)' == 'x86' "> <Reference Include="System.Data.SQLite, Version=1.0.84.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86"> <SpecificVersion>False</Speci…
http://www.cnblogs.com/lzjsky/archive/2010/09/06/1819321.html 原来使用Win7的32位系统,进行C#工程的开发,后来重装系统,换成了win7的64位系统 调试原来的工程,由于在其中引用了“SQLite”的32位的dll,导致在64为位下程序无法运行(但是编译可以通过) 后来通过修改工程文件(.csproj),在其中设置引用的条件,解决了问题 打开引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到对S…
C声明 32位机器(X86) 64位机器(X64) char 1 1 short int 2 2 int 4 4 long int 4 8 long long int 8 8 char * 4 8 float 4 4 double 8 8 几个注意点: 1:指针类型变量的大小只取决于计算机系统的位数,它的大小也等于该计算机系统的int类型大小,即该计算机系统“字”的大小.(这句话中的int其实是上面表格中的long int,因为C语言为了保持跨平台的统一,所以char, short int, i…
根据测试 int main() { ; )); )); int n1 = sizeof(a); int n2 = sizeof(p); // int n3 = sizeof(*p); error int n4 = sizeof(p1); int n5 = sizeof(*p1); } x86下 n1 = 4; n2 = 4; n4 = 4; n5 = 1; x64下 n1 = 4; n2 = 8; n4 = 8; n5 = 1; 小结: 指针在x86下为4个字节长度,在x64下为8个字节长度 i…
一.定义 x86: 将程序集编译为由兼容 x86 的 32 位公共语言运行库运行. x64: 将程序集编译为由支持 AMD64 或 EM64T 指令集的计算机上的 64 位公共语言运行库运行. anycpu:(默认值)将程序集编译为在任意平台上运行. Itanium: 将程序集编译为由采用 Itanium 处理器的计算机上的 64 位公共语言运行库运行. 二.选择不同后的行为 在 64 位 Windows 操作系统上: 用 x86 编译的程序集将在 WOW64 下运行的 32 位 CLR 上执行…