E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
IA-32汇编学习
Intel64及
IA-32
架构优化指南——3.5 优化执行核心
3.5 优化执行核心 在最近微架构产品中的超标量、无序执行核心含有多个执行硬件资源,可以并行地执行多个微操作。这些操作一般确保微操作高效地执行并以固定的延迟执行下去。利用可用的并行性的通用准则有: ● 遵循规则(3.4小节)以最大化有用的译码带宽以及前端吞吐。这些规则包括偏向使用单个微操作指令并利用微融合、栈指针追踪器以及宏融合。 ● 最大
·
2015-10-30 11:37
int
汇编学习
笔记---(2)基础知识
今天,接着上次,继续学习汇编语言,主要对内存地址空间、主板、接卡口、存储芯片等进行了解。什么是内存地址空间?要搞清楚这个问题,我们首先要知道主板和接口卡。每个PC都会有一个主板,主板上附有核心器件,包括CPU、存储器、外围芯片组、扩展插槽等,它们通过地址总线+数据总线+控制总线相连。接口卡啥作用,说白了就是通过总线接收CPU发送的命令,对显示器、音响等外部设备进行控制。一台PC中主要有两种存储器:
Trent1985
·
2015-10-28 16:00
IL
汇编学习
笔记(一)
今天我开始了 IL 汇编语言的学习,下面都是对一篇文章学习过程的翻译和摘要。 原文: http://www.codeproject.com/dotnet/ilassembly.asp 先从一个 HelloWorld 例子开始: // Test.IL // A simple programme which prints 
·
2015-10-28 08:37
学习笔记
IL
汇编学习
笔记(四)
原文: http://www.codeproject.com/dotnet/ilassembly.asp 创建 Windows Form 程序 下列代码给出一个简单的例子,其中简单的设定了窗体的一些属性,BackColor, Text 和 WindowState. . namespace MyForm { . class p
·
2015-10-28 08:37
学习笔记
【堆栈平衡的说明太有才了】转贴自Jim's blog
[
汇编学习
]献给汇编刚開始学习的人-函数调用堆栈变化分析(转自黑客风云) 跟一个朋友谈堆栈的时候
·
2015-10-27 16:20
Blog
汇编学习
笔记---(1)基础知识
汇编学习
笔记---(1)基础知识本学习笔记仅仅是我自己作为初学者,学习汇编知识的过程记录,本人从事图像处理行业,使用C编程,为了编写更为高效的图像处理程序,于是开始学习汇编语言。
Trent1985
·
2015-10-21 14:00
POSIX NPTL
测试中,NPTL在一个
IA-32
处理器上,成功地同时跑了10万个线程,启动这些线程只用了不到2秒。比较起来,在不支持N
·
2015-10-21 12:38
OS
VC内联ASM
汇编学习
笔记
目的:学习在VC中进行ASM汇编语言程序设计的方法,以提高底层应用能力. 由于在VC中进行汇编不需要额外的编译器和联接器,且可以处理VC中不能处理的一些事情,而且可以使用在C中的变量,所以,非常方便.但是它并不支持所有的MASM宏和数据指示符. 下面的三种方法基本上都可以使用在VC中: __asm { mov al, 2 mov dx,&
·
2015-10-21 12:12
学习笔记
Intel64及
IA-32
架构优化指南第7章——7.1 通用预取编码准则
第7章 优化Cache用法 在过去几十年,处理器速度已经增长。而存储器访问速度则以较慢的步伐增长。这所导致的不一致性使得将应用程序以两种方法之一进行调整而变得重要:要么(a)多数数据访问从处理器Cache来实行,要么(b)通过尽可能多地利用峰值存储器带宽来有效地屏蔽存储器延迟。 硬件预取机制在微架构中减轻后者[译者注:即上一段落中的(b)]方面是种增强,并且当与软件调整相结合时是最有效的。如果
·
2015-10-21 11:04
int
Intel64及
IA-32
架构优化指南——3.9 最大化PCIE性能
3.9 最大化PCIE性能 PCIe性能对上游读写(读和写事务从一个PCIe的代理到主机端存储器的发布)的大小与对齐会有出乎意料的影响。作为一个通用规则,就带宽和延迟而言,最佳性能通过对上游读写的起始地址在64字节边界处对齐并确保请求大小是64字节的倍数,当引入更大倍数(128,192,256字节)时适当地在带宽中增加,来获得。特别地,一个部分写将会导致后面请求(读或写)的延迟。 第二个规则是
·
2015-10-21 11:03
int
Intel64及
IA-32
架构优化指南——3.8 浮点方面的考虑
3.8 浮点方面的考虑 当对浮点应用进行编程时,最好先一开始用一个高级编程语言,诸如C、C++或Fortran。许多编译器都尽可能地执行浮点调度和优化。然而,为了产生最优代码,编译器可能需要一些辅助。 3.8.1 优化浮点代码的准则 用户/源编码规则13:用适当的开关来允许编译器使用SSE2,SSE3指令。 遵从这个过程来调查你的浮点应用的性能: ● 理解编译器如何处理浮点代
·
2015-10-21 11:03
int
Intel64及
IA-32
架构优化指南——3.4优化执行引擎前端
3.4优化执行引擎前端 优化前端包括了以下两个方面: ● 维持对执行引擎微操作的稳定供给——分支预测失败会扰乱微操作流,或导致执行引擎在非构筑代码路径中的微操作执行流上浪费执行资源。在这个细节上的代码调整多数要关注分支预测单元的工作机制。通用技术在3.4.1小节“分支预测优化”中描述。 ● 提供微操作流来尽可能多地利用执行带宽和隐退带宽——
·
2015-10-21 11:57
int
我的
汇编学习
之行(2)-8086寄存器简介
寄存器寄存器是什么呢?其实很简单,寄存器就是个存储信息的单元或者说是器件又或者说是容器而已,就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多,只不过寄存器(这里讨论的寄存器都是CPU中的寄存器,不包括外设上的寄存器)位于CPU内部,而内存位于CPU外部,寄存器比内存可是珍贵得多啊,寄存器是CPU中的稀有资源。8086CPU中寄存器总共为14个,且均为16位。即AX
u013983194
·
2015-09-28 09:00
汇编
我的
汇编学习
之行(1)-搭建环境
搭建开发环境我个人最常使用的是DOS环境汇编,在这里你首先要有CmasmW软件来让你能够编写汇编语言。DOS环境可以使用dosbox,当然我比较喜欢使用BC++的环境模式下的BC,无安装,绿色。下面我将把相关下载链接发布汇编CmasmW软件dosbox你要注意的是你需要对dosbox进行挂载。[autoexec] mountcD:\software\10cmasmW\project\ #Lines
u013983194
·
2015-09-28 09:00
汇编
Windows平台保护模式寻址
总的来说,就是下面的过程:这里讨论的是
IA-32
处理器,它使用以下两种机制实现内存保护:分段分页分页是可选的,而在保护模式下,分段是强制的。理解分段和分页的物理地址解析过程,是理解内存保护的关键。
abcdefghig
·
2015-09-24 19:00
IA-32
CPU的调试支持
断点和单步执行是debugger最核心功能,这里介绍IA-32CPU如何支持断点和单步执行的功能。回顾一下基本概念:中断和异常最根本的差别是:异常来自于CPU本身,是CPU主动产生的。而中断来自于外部设备,是中断源发起的,CPU是被动的。IA-32CPU将异常分为3类:错误(Fault)、陷阱(Trap)和中止(Abort)。断点的基本功能就是CPU执行到断点指令时,可以中断到debugger,查
abcdefghig
·
2015-09-24 19:00
x86,amd64,x86-64,x64区别
“x86-64”1999由AMD设计,AMD首次公开64位集以扩充给
IA-32
,称为x86-64(后来改名为AMD64)。其后也为Intel所采用,现时英特尔称之为“Intel64”.AMD6
x356982611
·
2015-09-10 13:00
我的
汇编学习
之路(2):主要术语和概念
所以,让我们开始《我的
汇编学习
之路》的第二部分的学习。术语和概念当我写了第一篇之后,我从不同的读者那获得很多反馈,第一篇中有些部分不明白,这就是本文以及接下来几篇从一些术语的描述开始的原因。
人生想绕几个圈
·
2015-09-05 12:00
汇编
驱动
底层
机器
固件
我的
汇编学习
之路(1):指令
引言我们很多人是开发者,每天写大量的代码,有时也不是糟糕的代码。每个人都能很轻松写下这样的代码:12345678#include intmain(){ intx=10; inty=100; printf("x+y=%d",x+y); return0;}大家都能理解上面这段C语言代码完成的功能,但是…这段代码底层是如何工作的呢?我想我们中间不是所有人都能回答这个问题,我也不能。我认为我可以用
人生想绕几个圈
·
2015-09-05 12:00
汇编
硬件
驱动
底层
固件
x86, x86-64, i386, IA32, IA64 区别
“x86-64”1999由AMD设计,AMD首次公开64位集以扩充给
IA-32
,称为x86-
天马行空_天马行空
·
2015-09-04 21:43
服务器存储
汇编学习
网站上的主要资料http://blog.csdn.net/candycat1992/article/details/8123927
big_thief
·
2015-07-21 17:00
操作系统---学习笔记0
主要平台和工具简介 x86模拟器Bochs Bochs是一个免费且开放源代码的
IA-32
(x86)架构PC机模拟器。
·
2015-07-16 10:00
操作系统
汇编学习
转自:http://www.blogjava.net/wxqxs/archive/2009/09/17/277328.html学习汇编前你应该知道的知识1、汇编需要什么工具和程序,到哪里下载?目前阶段,汇编程序仅需要两个程序就够了。masm.exe,link.exe。前者是编译程序,后者是链接程序。另外,为了验证和调试程序,还需要一个程序debug.exe,该程序由windows本身就提供。将二者
magina3
·
2015-06-07 23:58
x64、x86_64、x64三者的区别
x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“
IA-
Corrinejtt
·
2015-06-05 09:00
区别
汇编学习
笔记3——jmp命令与DEBUG进阶指令
汇编学习
笔记(3)1.若要同时修改CS、IP的内容,可用指令:jmp段地址:偏移地址 2.若想仅修改IP的内容,可用指令:jmp某一合法寄存器 //该指令的作用为:用寄存器中的值修改IP3.DEBUG.exe
hjb2722404
·
2015-05-31 20:00
汇编学习
笔记002——寄存器与DEBUG初次使用
汇编语言学习笔记(2)1.在汇编中,我们面对的就是内存地址空间。而CPU将所有与它相连的外部设备通通看做逻辑上的内存单元。2.在8086CPU中,所有的寄存器都是16位的,可存放2个字节的数据。3.AX,BX,CX,DX四个寄存器都是通用寄存器,为了兼容旧的8位CPU上运行的程序,这四个寄存器每个都可以分为H,L的高8位和低8位独立寄存器来用。4.汇编指令不区分大小写,但一般情况下写成大写5.在进
hjb2722404
·
2015-05-29 11:00
汇编学习
笔记001——基础概念和知识
汇编学习
笔记(1)1.所有存储器的每个存储单元都从0开始;2.CPU对数据的读写,必须有三类信息交互:存储单元的地址:地址信息 器件的选择,读或写的命令:控制信息 读或写的数据:数据信息 3.总线在逻辑上划分为
hjb2722404
·
2015-05-29 11:00
怎样利用Proteus7.5仿真8086CPU
一下子掌握
IA-32
体系是不可能的,那咱们就先搞一下相对简单的8086吧。理由2:很多人都
googlemi
·
2015-05-26 11:00
汇编学习
笔记--寄存器(内存访问 1)
内存访问首先要有地址,8086pc中的段地址存放在ds寄存器中(ds和cs是不一样的,cs是定位地址用于读取内存中的指令或者数据,而ds是读取内存中的数据时使用,下面我们会明白区别)将内存中的数据写入寄存器:movbx,1000Hmovds,bxmoval,[0]第一句是把1000H给bx(寄存器),第二句把bx中的值给ds(段地址寄存器),第三句从1000:0H中读取数据给al(寄存器ax的低8
qq_20480611
·
2015-05-19 23:00
debug
汇编
汇编学习
笔记--查看CPU和内存
1、进入Debug2、基本命令详解-r查看、改变CPU寄存器的内容-d查看内存中的内容-e改写内存中的内容命令格式:“e起始地址数据数据数据。。。”-u查看指定地址段的汇编代码-t执行指定地址的汇编代码(首先修改CS:IP到所要执行的汇编代码的首地址)-a以汇编指令的形式在内存中写入机器指令上图有一处错误,我们在用-u命令显示指定地址段的汇编代码时一定要把当前所在的地址置为汇编代码的首地址,不然机
qq_20480611
·
2015-05-19 22:00
debug
汇编
IA-32
架构和Intel 64架构的区别
IA-32
架构和Intel64架构的区别摘自Intel的手册(Intel64andIA-32ArchitecturesSoftwareDeveloper’sManualVolume1:BasicArchitecture
yenzihua
·
2015-05-17 11:31
OS
linux平台学x86汇编(二):处理器指令码及
IA-32
平台了解
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】 在计算机操作的最底层,所有计算机处理器都按照制造厂商在处理器内部定义的二进制代码来操作数据,这些代码定义了处理器应该利用程序员提供的数据完成相应的功能,这些预置的代码被称为指令码。不同类型的处理器的指令码是不一样的,但处理指令码的方式是类似的。当计算机处理器芯片运行时,他
gentleliu
·
2015-05-06 23:00
寄存器
指令码
反
汇编学习
之路之构造函数与析构函数(一)
构造函数与析构函数是类的重要组成部分,他们在类中担任着至关重要的工作。够战术常用来完成对象的生成时的初始化工作,而析构函数则常用于在对象销毁时释放对象中的所申请的资源。当对象生成时,编译器会自动产生调用其类的构造函数的代码,在编码构成中可以分为类中的数据尘烟赋予的初始值,当对象销毁时,编译器同样也会产生调用其析构函数的代码。构造函数与析构函数都是类中特殊的函数,构造函数可以重载,而析构函数只能有一
HK_5788
·
2015-04-20 18:00
反汇编
构造函数识别
反
汇编学习
之路之静态数据成员
我们知道,当我们在类中定义了静态数据成员时,由于静态数据成员和静态变量原理相同,因此该静态数据成员的初值会被写入编译器连接后的执行文件中,当程序被加载时,操作系统将执行文件中的数据读到对应的内存单元,静态数据成员便已经存在,而这时,类并没有实例对象。所以,静态数据成员和对象之间的生命周期不同,并且静态数据成员也不一定属于某一个对象,与对象之间是一对多的关系,静态数据成员仅仅和类相关,多个对象可以共
HK_5788
·
2015-04-20 17:00
静态数据成员
反汇编
反
汇编学习
之路之查找参考字符串
ollydbg(下面简称OD)提供了这样的一个功能:可以查找程序运行中出现的字符串。比如下面是某软件在运行时,会弹出这样的对话框:我们可以在弹出这个对话框时,回到OD操作界面进行查找上述对话框中出现的字符串。方法:1,在下图所示的工作区域内单击鼠标右键,选择“查找(S)”选项,接着选择“所有参考文本字串”选项:2,接着在OD弹出的窗口中鼠标右键选择“查找文本”选项:3,在弹出的对话框中输入待查找的
HK_5788
·
2015-04-18 21:00
OllyDbg
查找文本字符串
汇编学习
之路之对象的内存布局
结构体和类都是抽象的,在真实的世界中他们只可以表示某个群体,无法确定这个群体中的某个独立个体,而对象则是群体中独立存在的个体。由于类是抽象概念,当两个类的特征相同时,他们之间应该是相等的关系。而对象是实际存在的,即使他们之间所包含的数据不同,也不能视为同一个对象,这就如同人类中的两个实体对象,即使他们是双胞胎,也不能因为他们的外貌等各方面的特征都相同就将他们描述成同一个人。看看下面的代码:clas
HK_5788
·
2015-04-15 12:00
汇编中的位操作指令
基于
IA-32
处理器和32位汇编语言一:逻辑运算指令1逻辑与运算ANDDEST,SRC;将操作数相与,返回给DEST。CF,OF是0,影响ZF,SF,PF。
csdn_LYY
·
2015-04-14 22:39
汇编
汇编中的算术运算类指令
基于
IA-32
处理器和32位汇编语言首先说明:算术运算结果包括两部分,即运算结果和状态标志。
csdn_LYY
·
2015-04-14 22:52
汇编
汇编学习
之路之DS
CPU要读读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086PC中,内存地址由段地址和偏移地址组成,8086CPU中有一个DS寄存器,通常用来存放将要访问数据的段地址。比如,我们要读取内存单元为:1000H中的内容,可以用下面的程序段进行:movbx,1000H movds,bx moveal,[0]以上的三天平指令是将1000H(1000:0)中的数据独到al中。下面是指令的含义:
HK_5788
·
2015-04-09 22:00
汇编学习
之路之CS 和 IP
A>段地址在8086CPU的段寄存器中存放,当086CPU要访问内存时,由段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址。B>CS存放指令的段地址,IP存放指令的偏移地址。8086机中,任意时刻,CPU将CS:IP指向的内容当作指令来执行。C>8086CPU的工作过程:1,从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;2,IP指向下一条指令;
HK_5788
·
2015-04-06 22:00
汇编学习
之路之 8086CPU
8086CPU给出物理地址的方法 8086CPU有20位地址总线,可以传送2位地址,达到1MB的寻址能力。8086CPU又是16位结构,在内部一次性处理,传送,暂时存储的地址是16位。 从8086CPU的内部结构来看,如果将地址从内部简单的发出,那么,它只能送出16位地址,表现出的寻址能力只有64KB。8086CPU采用一种在内部用2个16位地址合成方法来姓曾一个20位的物理地
HK_5788
·
2015-04-05 17:00
汇编学习
之路之基础知识总结
地址总线CPU是同过地址总线来指定存储单元的。地址线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。现假设,某CPU有10根地址线,在计算机中,一根导线儿可以传送的稳定状态只有2种:高电平和低电平。用2进制的0和1分别表示低电平和高电平。10根导线可传送10位2进制数据,而10位2进制数可以存储2的10次方个不同数据。最小数为0,最大数为1023。一款CPU有N根地址线,该CPU的
HK_5788
·
2015-04-04 15:00
一些C++的开源项目和C++库以及修炼C++的方法
V8根据ECMA-262第三版中的说明使用ECMAScript,并在使用
IA-32
或ARM处理器的WindowsXP和Vista、MacOSX10.5(Leopard)以及Linux系统中运行。V8
nyist327
·
2015-04-03 15:00
C++
开源
学习
开源项目
自学
SSE2介绍及其简单用法举例
SSE2,全名为StreamingSIMDExtensions2,是一种
IA-32
架构的SIMD指令集。SSE2是在2001年随着Intel发表第一代Pentium4处理器也一并推出的指令集。
kezunhai
·
2015-04-03 11:00
sse
mmx
Intel
IA-32
架构浅析
IA32的cpu操作模式 1保护模式: 这个模式是cpu的native状态.它可以在一个保护的多任务的环境中直接执行"real-addressmode"的8086的软件.这个特性叫做virtual-8086模式. 这个模式也就是cpu的一般工作模式.因为这个模式基本上打开了cpu的所有特性. 2real-address模式: 这个模式它实现了一个8086处理器的环境的扩展.换句话说,可以说是模拟了
KingCat666
·
2015-03-17 19:00
GNU ARM
汇编学习
笔记
指令格式标签:指令@注释标签代表该指令在内存中的地址,由字符、数字、_和$组成。指令ARM指令注释以@开始的字符串均为注释例1:.text@汇编指令,表示text段start:@标签,startmovr0,#5@初始化r0为5movr1,#4@初始化r1为4addr2,r0,r1@r2=r0+r1stop:bstop@无限循环常见的ARM指令.bytelabel:.(n)byteexp1,exp2
JamesMa
·
2015-03-16 11:54
arm-裸机
arm-裸机实验
3.4.2 特定于体系结构的设置 (三):分页机制的初始化
在
IA-32
系统上内核通常将总的4GB可用虚拟地址空间按3:1划分。低端3GB用于用户态应用程序,而高端1GB则专用于内核。
xiangpingli
·
2015-03-15 12:00
函数调用中的堆栈平衡
转载自:http://www.cnblogs.com/ajiannet/archive/2007/04/20/721679.html[
汇编学习
]献给汇编初学者-函数调用堆栈变化分析(转自黑客风云)跟一个朋友谈堆栈的时候
u012501459
·
2015-03-13 15:00
函数调用
堆栈平衡
3.4.1 初始化内存管理(一)
例如,在
IA-32
系统上需要切换到保护模式,然后内核才能检测可用内存和寄存器。在初始化过程中,还必须建立内存管理的数据结构,以及其他很多事务。
xiangpingli
·
2015-03-10 23:00
《翻译》Intel 64 与
IA-32
架构软件开发者手册卷1翻译
processors/architectures-software-developer-manuals.html本博文将采用分段中英对照,不定期持续更新的方式进行翻译,第一卷主要介绍了Intel64与
IA
shayi1983end
·
2015-02-05 15:29
amd64
x86-64
指令集体系结构
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他