最新发布
调用汇编库
如果希望汇编语言函数和C以及C++程序一起工作,就必须显式地遵守C样式的函数格式。 也就是说所有输入变量都必须从堆栈中读取,并且大多数输出值都返回到EAX寄存器中. 在汇编函数代码中,C样式函数对于可以修改哪些寄存器和函数必须保留哪些寄存器...
内联汇编
创建内联汇编代码和创建汇编函数没有太大区别,除了这是在C或者C++程序内完成的之外。 GNU的C编译器使用asm关键字指出使用汇编语言编写的源代码段落。asm段的基本格式如下: asm("assembly code"); 包含在括号中的汇编...
系统调用
Linux上可以使用的系统调用有很多。通常随着每个新的内核版本的发布,都会有新的系统调用添加到这个清单中。在/usr/include/asm/unistd.h中记录了当前系统所支持的系统调用号,当然目前一般是根据宏定义include /us...
函数
函数是汇编语言中相当重要的一个组成部分。调用函数时,程序的执行路径被改变,切换到函数代码中的第一条指令。处理器从这个位置开始执行指令,直到函数表明它可以把控制返回到主程序中的原始位置。 创建函数 在汇编语言程序中创建函数需要3 个步骤: 定...
字符串处理
传送字符串 MOVS指令 MOVS指令向程序员提供了把字符串从一个内存位置传送到另一个内存位置的简单途径。MOVS指令有3 种格式: MOVSB: 传送单一字节 MOVSW: 传送一个字(2字节) MOVSL: 传送一个双字(4字节) In...
高级数学功能
FPU环境 FPU寄存器堆栈 浮点运算器(floating point unit , 缩写 FPU)是一个自持的单元,它使用与标准处理器寄存器分离的一组寄存器处理浮点操作。附加的FPU寄存器包括8个80位数据寄存器和3个16位寄存器,称为控...
基本数学功能
整数运算 加法 ADD指令 ADD指令用于把两个整数相加。ADD指令的格式如下: add source, destination 其中source可以是立即值、内存位置或者寄存器。destination参数可以是寄存器或者内存位置中存储的值...
数字
数字类型 IA-32平台包含可以在汇编语言程序中使用的几种不同的数字数据类型。 核心的数字数据类型如下: 无符号整数 带符号整数 二进制编码的十进制 打包的二进制编码的十进制 单精度浮点数 双精度浮点数 双精度扩展浮点数 除了基本的数字数据...
流程控制
指令指针 在CPU角度来讲,确定下一条指令在何时和何处并不总是容易的任务。随着指令预取缓存技术的发明,很多指令在实际准备好执行之前就被预先载人了处理器缓存。随着乱序引擎技术的发明,很多指令甚至在应用程序中提前执行了,其结果被安排为适当的顺序...
传输数据
定义数据元素 Data段 程序的数据段是最常见的定义数据元素的位置。数据段定义用来存储数据项的特定内存位置。这些数据项可以被程序中的指令码引用,并且可以被随意读取和修改。 使用data命令声明数据段。在这个段中声明的任何数据元素都保留在内存...