汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

简介: 汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

一、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


目录
相关文章
|
3月前
|
存储 算法 NoSQL
天呐!汇编语言竟如此神奇,从零到精通的学习指南带你开启计算机世界神秘大门!
【8月更文挑战第31天】汇编语言是一种底层编程语言,直接与硬件交互,对于理解计算机体系结构和底层原理至关重要。尽管现代软件开发中较少使用,但学习汇编语言有助于深入了解计算机如何执行指令、管理内存和处理数据,从而优化程序性能,进行底层系统开发和调试。不同处理器有不同指令集,如 x86 和 ARM,掌握这些指令集及寄存器、内存地址等基本概念是学习汇编语言的基础。通过简单示例开始,逐步掌握复杂指令和调试工具,可以大大提高编程技能和解决问题的能力。
65 1
|
1月前
|
存储 Go
汇编语言的学习
本文详细介绍了在DOSBox中学习汇编语言的基础知识,包括寄存器的使用、数据和指令的选取、栈的操作、段地址的计算以及如何编写和执行简单的汇编程序。
16 0
汇编语言的学习
|
27天前
|
存储 移动开发 C语言
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
|
27天前
|
编译器 C语言 计算机视觉
【ARM汇编速成】零基础入门汇编语言之指令集(二)
【ARM汇编速成】零基础入门汇编语言之指令集(二)
118 0
几组汇编指令的比较
几组汇编指令的比较
|
4月前
|
存储 机器学习/深度学习 芯片
8086 汇编笔记(十二):int 指令 & 端口 & 直接定址表
8086 汇编笔记(十二):int 指令 & 端口 & 直接定址表
8086 汇编笔记(九):call 指令 和 ret 指令
8086 汇编笔记(九):call 指令 和 ret 指令
|
4月前
|
编译器
8086 汇编笔记(八):转移指令的原理
8086 汇编笔记(八):转移指令的原理
|
6月前
|
存储 Unix 编译器
汇编语言----X86汇编指令
汇编语言----X86汇编指令
210 2
|
6月前
|
存储 机器学习/深度学习 移动开发
汇编语言指令系列
汇编语言指令系列
585 0