【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】
除了内联汇编以外,还有一种途径可以把汇编代码整合到C/C++语言中,C/C++语言可以直接调用汇编函数,把输入值传递给函数,然后从函数获得输出值。
如果希望汇编语言函数和C/C++程序一起工作,就必须显示地遵守C样式的函数格式,也就是...
分类:
编程语言 时间:
2015-05-12 00:11:29
阅读次数:
156
★ 引子 前面三篇文章讲了 Comba 乘法和 Karatsuba 乘法,有了这两个算法,就可以很轻松的构造有符号数乘法。 顺便提一下:讲 Comba 乘法的实现的时候,给出了 x86 环境下的内联汇编实现,最近添加了 GCC x64 环境的内联汇编,已经补充到帖子当中。★ 实现 有符号数的乘法.....
分类:
编程语言 时间:
2015-04-23 21:35:48
阅读次数:
162
★ 引子 上一篇文章讲了 Comba 乘法的原理,这次来讲讲如何实现。为了方便移植和充分发挥不同平台下的性能,暂时用了三种不同的实现方式: 1、单双精度变量都有的情况。 2、只有单精度变量的情况。 3、可以使用内联汇编的情况。 前面已经介绍来 Comba 乘法的原理和实现思路,为了方便,再把它贴.....
分类:
编程语言 时间:
2015-04-20 20:54:25
阅读次数:
291
GCC,linux的GNU C编译器使用AT&T/UNIX汇编语法。
(一):AT&T汇编和intel汇编的不同
1:前缀
在intel语法中,寄存器和立即数都没有前缀,而在AT&T中,寄存器使用前缀“%”,而立即数前面使用前缀“$”;
在intel语法中,十六进制和二进制立即数后面缀以”h”和“b”,但在AT&T语法中,在前面缀以”0x”,
2:操作数的方向不同
AT&T和intel汇...
分类:
其他好文 时间:
2015-04-18 08:51:45
阅读次数:
188
所有的学习的内容都在注释当中,我的学习过程是,看到这个代码段之后,将其中需要的只是去大体的学习一遍。争取能够做到理解整体的部分。
下面展示出我的学习的代码:#ifndef _I386_BUG_H
#define _I386_BUG_H
/*
* Tell the user there is some problem.
* 告诉用户出现了一些问题
* The offending file an...
分类:
其他好文 时间:
2015-04-17 15:50:31
阅读次数:
112
★ 引子 原本打算一篇文章讲完,后来发现篇幅会很大,所以拆成两部分,先讲原理,再讲实现。实现的话相对复杂,要用到内联汇编,要考虑不同平台等等。 在大整数计算中,乘法是非常重要的,因为在公钥密码学中模幂运算要频繁使用乘法,所以乘法的性能会直接影响到模幂运算的效率。下面将会介绍两种乘法:基线乘法和 C....
分类:
编程语言 时间:
2015-04-12 19:05:44
阅读次数:
292
原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题下面的代码都是内联汇编,较比较汇编会有些限制,可能写法上有时候会不一样。黑色是代码,红色是编译的汇编代码int g_nTest;__asm{call Dels0...
分类:
其他好文 时间:
2015-02-03 12:41:09
阅读次数:
162
最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的遇到了64位进程需要调用32位dll的问题。由于有一些32位dll没有源代码,无法重新编译为64位d...
分类:
系统相关 时间:
2015-01-23 12:56:00
阅读次数:
158
在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly。本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^)。
注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),...
分类:
系统相关 时间:
2015-01-19 10:58:16
阅读次数:
179