汇编指令集合

汇编指令集合汇编语言 cs 是代码段寄存器 ds 是数据段寄存器 段代码 CS 存放当前正在运行的程序代码所在段的段基值 表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得 IP 相应的偏移值 CS IP1 callwordptr 内存单元地址这个指令的是先将 call 指令的下一条指令的 IP 入栈 然后跳到以内存单元地址为 IP 的代码处 2 calldwordptr 内存单元地址 call 是汇编指令 用来调用子过程 后面的 Dwordptr 40105c 是一个内存地址 就是要调用的子过

IP:相应的偏移值。 CS+IP

1. call word ptr + 内存单元地址

这个指令的是先将call指令的下一条指令的IP入栈,然后跳到以内存单元地址为IP的代码处

2.call dword ptr + 内存单元地址

call是汇编指令,用来调用子过程。后面的Dword ptr[40105c]是一个内存地址,就是要调用的子过程的首地址。这个指令先将call指令的下一条指令的CS(代码段寄存器)入栈,再将call指令的下一条指令的IP入栈,然后跳到以内存单元的高位为CS,低位为IP的代码处

3.eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。

4.乘法运算对应的汇编指令有有符号imul和无符号mul两种。由于乘法指令的执行周期较长,在编译过程中,编译器会首先尝试吧乘法转换为加法,或者使用移位指令。不能转换时,才会使用乘法指令。

5.SHL(左移)指令使目的操作数逻辑左移一位,最低位用 0 填充。最高位移入进位标志位,而进位标志位中原来的数值被丢弃

6.ESP 就是一直指向栈顶的指针,而 EBP 只是存取某时刻的栈顶指针

7.inc 加1指令 dec 减1指令

8.有的汇编指令需要16位地址对齐,这样的话速度更快,注意c代码中的地址。

9.movups  不必16字节对齐移动指令 表示打包的单精度浮点数

10.movaps  16字节对齐移动指令 表示打包的单精度浮点数

11. movd 指令在通用寄存器或内存和XMM或MMX寄存器之间复制双字或四字。

13.lea

1、lea eax,[addr] 就是将表达式addr的值放入eax寄存器,

2、lea eax,dword ptr [ebx];将ebx的值赋值给eax

3、lea eax,c;其中c为一个int型的变量,该条语句的意思是把c的地址赋值给eax;

14.XMM 寄存器是一个完全独立的寄存器集,随 SSE 一起引入,至今仍被广泛使用.它们是 128 位宽,指令可以将它们视为 64、32(整数和浮点)、16 或 8 位(仅限整数)值的数组.其中 8 个在 32 位模式下,16 个在 64 位模式下.实际上,所有浮点数学运算都是在 64 位模式下在 SSE(以及 XMM 寄存器)中完成的,因此,与 MMX 寄存器不同,它们仍然非常相关.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176779.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:04
下一篇 2026年3月26日 下午9:04


相关推荐

  • gcc中include文件的搜索路径

    gcc中include文件的搜索路径

    2022年3月12日
    93
  • python实现卷积操作

    python实现卷积操作文章目录调用tf.nn.conv2d()实现卷积自己实现卷积函数我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现卷积操作,然后和tf.nn.conv2d()函数的结果对比,验证正确性。调用tf.nn.conv2d()实现卷积首先是调用卷积函数实现卷积操作:这里说明一下conv2d的定义及参数含义:参考【定义:】tf.n…

    2022年5月28日
    40
  • 冒泡排序怎么排_vj5347

    冒泡排序怎么排_vj5347[BZOJ5347]冒泡排序[思维]

    2022年4月21日
    38
  • java中常见的运行时异常_java五种常见异常

    java中常见的运行时异常_java五种常见异常运行时异常:编译时不会报错,但程序运行起来如果有错误就会报异常。以下为常见的运行时异常:ArithmeticException算数运算异常,由于除数为0引起的异常;ClassCastException类型转换异常,当把一个对象归为某个类,但实际上此对象并不是由这个类创建的,也不是其子类创建的,则会引起异常;ArrayStoreException由于数组存储空间不够引起的异…

    2026年4月16日
    7
  • 字符串中最长的回文字符串长度

    字符串中最长的回文字符串长度1、回文字符串  回文字符串是指aba类型的字符串,即字符串关于中间字符对称。判断字符串中是否含有回文、得到最长回文字符串的长度、得到不同回文字符串的个数等等,是经常考察的编程题目。2、之前采用的一种比较笨的得到最长回文字符串的方法  思想:双重指针遍历,根据回文字符串的特点,回文开始的字符与结尾处字符相同……那么一个指针i从前向后遍历,一个指针j从后向前遍历,如果出现

    2022年6月4日
    35
  • 函数

    函数

    2021年9月9日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号