assembly相关内容

如何实现在没有除法的硬件二进制浮点除法和无浮点硬件

我想知道如何实现IEEE-754 32位单precision浮点除法在没有除法的硬件二进制和没有浮点硬件? 我已经转向硬件,加,减,乘。 我已经执行浮点乘法,加法,并使用16位字减法。 我在一个专用的多核处理器执行这些指令和汇编写我的code。在此之前,我使用MATLAB来验证我的算法。 我知道我需要减去的指数,但我怎么对尾数执行无符号除法? 解决方案 取决于你想多么复杂,使之。保 ..
发布时间:2016-07-18 19:53:49 .NET Framework

使用`GCCs` pre处理器作为汇编

有各种开源汇编如气体 NASM 和的 YASM 。他们有不同的伪操作和宏语法。对于许多开源项目,汇编为pre-处理,以取代常数和平台条件语句。 什么限制会 GCC 已创建汇编假设你可以使用目前所有的属性和编译指示,不包括翻译的性能(编译/汇编为二进制时间)? 我说的不是内联汇编。 的#define MOV(RA,RB)(OXFEB10000UL | RA<< 16 | RB) ..
发布时间:2016-07-18 19:53:46 .NET Framework

我如何使用NASM访问系统时间?

我试图用种子当前系统时间我的随机数发生器。如何访问使用 NASM 系统时间? (我用的linux) 解决方案 %定义RTCaddress 0x70 %定义RTCdata 0x71;获取时间和日期从RTC.L1:MOV人,10;获得RTC寄存器A 出RTCaddress,人 在人,RTCdata 测试人,0x80的;正在进行更新? JNE .L1;是的,等待 ..
发布时间:2016-07-18 19:53:39 .NET Framework

我如何ubuntu下使用NASM(组装)读取键盘单个字符的输入?

我用ubuntu下NASM。顺便说一句,我需要得到用户的键盘输入一个字符(比如当一个程序问你Y / N?),以重点pressed,没有pressing进入我需要读取输入的字符。我用Google搜索了很多,但所有我发现在某种程度上与此相关的行( INT 21H ),这导致“段错误”。请帮我弄清楚如何让单个字符,或如何通过这个来分段故障。 解决方案 它可以从组装完成,但它是不容易的。你不能用I ..
发布时间:2016-07-18 19:53:33 .NET Framework

打印出汇编语言是多少?

MOV人,10 加人,15 我如何打印'的值人“ 解决方案 你试过 INT 21H 服2 ? DL 是打印的字符。 MOV DL,'A';打印'A' MOV啊,2 INT 21H 要打印的整数值,你必须写一个循环来分解整数单个字符。如果您愿意与打印十六进制值,这是pretty微不足道的。 如果您不能依靠DOS服务,你也许还能够使用 BIOS INT 10H 与 AL 设置为 ..
发布时间:2016-07-18 19:53:30 .NET Framework

获取与上证所__m128i向量最大值?

我一直在使用SSE刚开始,我很困惑如何获得的最大的整数值(最大) __ m128i 。例如: __ m128i T = _mm_setr_ps(0,1,2,3); //最大值(T)= 3; 搜索周围使我 MAXPS 指令,但我似乎无法找到如何使用与“xmmintrin.h”。 此外,有没有任何文档“xmmintrin.h”,你会建议,而不是寻找到头文件本身? 解决方案 如果你发现自己 ..
发布时间:2016-07-18 19:53:28 .NET Framework

做混合SSE整数/浮点SIMD指令时,我得到的性能损失

我在内部函数的形式,最近不少二手x86的SIMD指令(SSE1234)。我发现无奈的是,上证所ISA有几个简单的指令只适用于浮筒或只为整数,但在理论上应该都同样执行。例如,float和double向量都有说明从一个地址加载128位向量的高64位( movhps 的 movhpd 的),但有一个为整数没有这样的指令向量。 我的问题: 有没有使用浮动整数载体,如运算指令时,期待的性能损失的原因使用 ..
发布时间:2016-07-18 19:53:23 .NET Framework

X86汇编 - 处理的指令IDIV

我目前正在写一个简单的C编译器,这需要一个.c文件作为输入并产生装配code(X86,AT& T公司语法)。 Everyting是好的,但是当我尝试执行IDIVQ指令,我得到一个浮点异常。这里是我输入: INT mymain(INT X){ INT D组; INTê; D = 3; E = 6 / D; 返回e的; } 这是我产生code: mymain: . ..
发布时间:2016-07-18 19:53:21 .NET Framework

高效SSE N×N的矩阵乘法

我想通过矩阵乘法来实现 SSE 大型矩阵的版本。 我在寻找基于 SIMD 实现一个高效的算法。 我所需的方法是这样的: A(n×m个)* B(米×K)= C(N×k个) 和所有矩阵都被认为是16字节对齐的float数组。 我搜索网,发现有些文章描述了8x8的乘法和更小。我真的需要它尽可能高效,我不希望使用征库或类似的库。 (仅 SSE3 更具体)。 所以我AP preciate如果有人 ..
发布时间:2016-07-18 19:53:18 C/C++开发

打印__m128i变量

我试图用内在学习code和下方则是code这确实除了 编译器使用:ICC #包括LT&;&stdio.h中GT; #包括LT&;&emmintrin.h GT; 诠释的main() { __m128i一个= _mm_set_epi32(1,2,3,4); __m128i B = _mm_set_epi32(1,2,3,4); __m128i℃; ..
发布时间:2016-07-18 19:53:12 .NET Framework

为什么要code对准在x86偶数地址边界?

我通过工作硖欧文的“汇编语言的x86处理器,第六版”并真的很享受它。 我刚刚读到下一段的记忆NOP: “这[NOP]有时会被编译器和汇编对准code到 偶数地址边界“。 给出的例子是: 00000000 66 8B C3 MOV AX,BX 00000003 90 NOP 00000004 8B D1 MOV EDX,ECX 这本书则指出:中的“x86处理器的设计能够更快地从连加载c ..
发布时间:2016-07-18 19:53:11 .NET Framework

MOVDQA和MOVAPS x86指令之间的区别?

我在寻找的英特尔数据表:英特尔®64和IA-32架构 软件开发人员手册,我无法找到的区别的 MOVDQA 和 MOVAPS x86指令? 在英特尔数据表我能找到两个指令: 此指令可用于从128位加载XMM寄存器 存储器位置,XMM寄存器的内容存储到 128位内存位置,或两个XMM寄存器之间移动数据。 唯一的区别是: 要移动双四字或未对齐的内存位置,使用 该指令MOVDQ ..
发布时间:2016-07-18 19:53:04 .NET Framework

如何在GDB特定地址的汇编指令突破?

0x0000000000400448<主+ 0计算值:推%RBP 0x0000000000400449<主+ 1计算值:MOV%RSP,RBP% 0x000000000040044c<主+ 4计算值:MOV $为0x6,%eax中 0x0000000000400451<主+ 9计算值:leaveq 0x0000000000400452<主+ 10计算值:retq ..
发布时间:2016-07-18 19:53:03 .NET Framework

在C / C使用内联汇编++

我尝试使用内联汇编... 我读这页 HTTP://www.$c$cproject.com/KB /cpp/edujini_inline_asm.aspx 但我无法理解传递给我的函数的参数。 我正在写一个C写的例子..这是我的函数头: write2(的char * str中,INT LEN){ } 这是我的组装code:全球write2 write2: 推EBP MOV ..
发布时间:2016-07-18 19:52:59 .NET Framework

x86汇编:浮点比较

作为一个编译器项目,我必须写GNU汇编code用于x86比较浮点值的一部分。我试图找到如何做到这一点的在线,并从资源,我明白它的工作原理是这样的: 假设我想要比较值是浮点堆栈上的唯一值,那么 FCOMI 指令将比较值,并设定CPU-标志,使在 JE,JNE,JL, ...可以使用的指令。 我问,因为这仅适用的时候。例如: .section伪。数据 味精:.ascii“喂\\ n \\ 0” ..
发布时间:2016-07-18 19:52:48 .NET Framework

使用C / Intel汇编,什么是测试如果一个128字节的内存块包含全零的最快方法?

从我的第一个问题继续,我试图通过优化发现VTune™可视化存储器热点剖析一个64位的C程序。 在我特别想找到来测试内存的128字节块包含全零的最快方法。你可以假设的内存块任何所需的内存对齐;我用64字节对齐。 我使用的是电脑与英特尔的Ivy Bridge酷睿i7 3770处理器,32 GB内存和Microsoft Visual Studio 2010的C编译器的免费版本。 我的第一个尝试是: ..
发布时间:2016-07-18 19:52:41 .NET Framework