
汇编
聚沙塔
这个作者很懒,什么都没留下…
展开
-
汇编学习:float与double速度问题
X86处理器包含两种类型的浮点数寄存器。第一种使用8个浮点寄存器组成浮点寄存器栈,另一种为向量寄存器(XMM,YMM),它们对于单双精度的处理是不同的。本文将讨论两种模式下的浮点数计算速度问题。一、当我们编译32位程序时,使用的是x87指令集,即使用浮点寄存器堆栈进行浮点计算。此种情况下,单精度与双精度的处理是统一的,故计算速度上没有差异。我们可以做如下验证:float a,b,c;c=原创 2016-10-10 11:09:35 · 6195 阅读 · 0 评论 -
寄存器
ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个转载 2016-10-07 15:17:27 · 543 阅读 · 0 评论 -
汇编学习:二维数组遍历
作为正式接触汇编的开篇,本文将研究二维数组的遍历问题。在图像处理中,通常需要遍历图像像素(即二维数组)。下面给出三个版本的遍历函数,并研究他们的汇编代码(VC2010编译器,x86版,Release模式)。(1)在两层循环内每次根据行列索引计算元素位置。(2)为了避免在内存循环内的乘法计算,可以在每次的外层循环中计算好行起始地址,内层循环每次执行++操作。(3)强外层循环的乘法操作也去原创 2016-10-07 23:36:40 · 3348 阅读 · 0 评论