一、MOV指令

1、将十六进制0x1234数值,赋值给eax寄存器

mov eax,0x1234

2、将十六进制0x123数值,赋值给内存地址为ebx

mov dword [ebx],0x123

3、将edx的高八位赋值给eax的低八位

ax,eax的低16位,al,eax的低8位,ah,eax的高8位,通力bx,bl,bh为ebx的相关数值

mov al, dh

4、将十六进制0x11数值,复制给内存地址为ebx的第一个字节

mov byte [ebx],0x11

二、MOVSX指令,有符号扩展

当我们执行,mov eax,bl的时候,会提示错误,bl是8位,eax是32位,所以需要扩展,这时需要movsx

movsx eax,bl

将ebx置为0x12345680,再执行movsx eax,bl,会发现eax变成了FFFFFF80

因为有符号4字节最大表示的正数是0x7F,0x80就是表示负数了,所以这里执行的结果不一样。

三、MOVZX指令,无符号扩展

假如用MOVZX就不会出现上面的错误,这里全部表示的是正数

movzx eax, bl

四、LEA指令,赋址操作

1、mov取的内存的值,而lea的指令取的是址,lea后面必须跟的是寄存器,后面是一个内存

lea eax, ds:[ebx+0x5]
对比
mov eax, ds:[ebx+0x5]

五、XCHG指令,交换数值

将ebx的值和eax的值进行交换

xchg ebx, eax

汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)相关推荐

  1. ARM汇编指令 SUB MOV LDR STR

    开启arm汇编学习. 环境介绍:使用的是TI TDA4平台.该平台是基于ARMV8架构,64bit的CPU. 先上一段C代码: #include <stdio.h>int main(voi ...

  2. 汇编指令push,mov,call,pop,leave,ret建立与释放栈的过程

    栈内的数据 栈在汇编层面是辅助实现函数调用的,每个函数调用过程在栈中被抽象成一帧 ,在老式的32位CPU架构IA32中还有固定寄存器指向当前帧底部(下图中的0x100000f4,0x100000d8) ...

  3. 80C51汇编指令学习

    80C51汇编指令(111条)按字节数可以分为:单字节指令(49条),双字节指令(45条),三字节指令(17条) 单字节指令如INC A;其中操作助记符INC占5个Bit,累加器A占1个Bit,共占6 ...

  4. ARM汇编指令学习---基于启动文件startup.S分析

    本文主要是基于启动文件startup.s对ARM汇编指令进行学习分析. 以 . 开头一般是伪汇编/操作指令,形如: .section伪操作来定义一个段,形如: .section .testsectio ...

  5. ARM汇编指令学习笔记(一)

    (一)数据常量定义汇编指令EQU EQU用于为程序中的常量.标号等定义一个有效的字符名称,类似于C语言中的#define,当表达式为32位常量时,可指定表达式的数据类型,CODE16,CODE32,D ...

  6. 汇编指令:MOV与ldr区别

    MOV 可以寄存器与寄存器之间传递数据 可以把立即数移动到寄存器中(常数不能超过32位) LDR 可以地址与寄存器之间的数据传递 也可以常数传递到寄存器中 实例: 1.r1与r2寄存器之间传递就只能用 ...

  7. MIPS 汇编指令学习

    mips的32个寄存器 MIPS comes with 32 general purpose registers named $0. . . $31 Registers also have symbo ...

  8. 汇编指令学习(AND,OR,XOR,NOT)

    一.AND指令 逻辑与运算,二进制位都为1时,才为1,否则为0,置eax为5,置ebx为6,运行下面指令,结果会赋值给eax 5二进制:0101 6二进制:0110 与结果是 0100,十进制是4 a ...

  9. 汇编指令学习(CMP,TEST)

    一.CMP比较指令,相当于SUB命令 比较两个操作数,如果两个数相等,zf标志位就为1,将eax,ebx的值置为1,执行下面指令,je这个跳转指令就会根据zf标志位进行跳转 cmp eax,ebx j ...

最新文章

  1. Android SystemProperties设置/取得系统属性的用法总结
  2. this ts 方法获取_vue+typescript项目中用this.$refs和原生方法获取的dom有什么区别
  3. CodeForces - 1036D Vasya and Arrays(思维)
  4. 企业应用的Ant模组编译环境
  5. 猴子爬山编程java_Java趣味编程100例
  6. requirejs 入门【链接】
  7. python类中包含一个特殊的变量、它表示当前对象自身_知到APP教师职场礼仪第七单元章节测试网课答案大学课后答案...
  8. 图像梯度-Sobel算子
  9. DCGAN训练人脸照片,pytorch
  10. 为什么需要交叉编译器
  11. 火山PC模拟鼠标操作
  12. 计算机管理 服务在哪,信息服务,教您哪里打开Internet信息服务(IIS)管理器
  13. java sw_APDU格式详解
  14. 单片机编程技巧—状态机编程
  15. linux dropbox自动同步,CentOS 6.x使用dropbox并定时同步数据
  16. 《论文阅读》THE CURIOUS CASE OF NEURAL TEXT DeGENERATION
  17. Day27~Day32
  18. [经验技巧] 完美解决小米DCIM文件夹下生成.thumbnails缩略图文件夹的方法
  19. 浙江大学PAT-1003. 我要通过!(20)
  20. linux命令详解:tc

热门文章

  1. 【pytorch】optimizer(优化器)的使用详解
  2. modprobe命令加载驱动问题?
  3. java类和变量的命名规则
  4. CodeBlocks控制台中文乱码
  5. Drools学习01
  6. java 有序的list_Java 中的 List —— 有序序列
  7. Tomcat 配置详解/优化方案
  8. 如何删除有外键关系的两张表的数据
  9. 【干货】以太坊常用网址整理
  10. swap函数 交换 vector 里面的两个元素