C/C++ 您当前所在位置:首页 > C/C++ > 常用汇编指令(一)
常用汇编指令(一)
简介 在目前流行的编程语言下,还有更底层的语言,那就是汇编语言,当然还有更底层的机器语言。汇编语言由一条条指令组成,在分析软件的时候会经常和汇编打交道,所以掌握汇编指令是必须的,介绍几个常用汇编指令。
在目前流行的编程语言下,还有更底层的语言,那就是汇编语言,当然还有更底层的机器语言。汇编语言由一条条指令组成,在分析软件的时候会经常和汇编打交道,所以掌握汇编指令是必须的,介绍几个常用汇编指令。
先作一个说明,如:mov eax,0x1
这里的mov叫操作码,eax叫目标操作数,0x1叫源操作数。即:mov 目标操作数,源操作数
r:代表通用寄存器
m:代表内存
imm:代表立即数
r32:代表32位通用寄存器
m32:代表32位内存
imm32:代表32位立即数
8位、16位一样。
mov指令
mov指令是最重要的一个指令,以后会经常遇到,它的意思是将源操作数放入到目标操作数,就像我们程序中的int a = 1。有以下几种情况,
mov r/m8,r8
将一个8位寄存器的值放到一个8位寄存器或8位内存中。
mov r/m16,r16
将16位寄存器的值放到一个16位寄存器或内存
mov r/m32,r32
将32位寄存器的值放到一个32位寄存器或内存
mov r8,r/m8
将8位寄存器或内存的值放到一个8位寄存器中
mov r16,r/m16
将16位寄存器或内存的值放到一个16位寄存器中
mov r32,r/m32
将32位寄存器或内存的值放到一个32位寄存器中
mov r8,imm8
将8位立即数放到8位寄存器中
mov r16,imm16
将16位立即数放到16位寄存器中
mov r32,imm32
将32位立即数放到32位寄存器中
注意
目标操作数可以是寄存器、内存单元或段寄存器
源操作数可以是立即数、寄存器、内存单元或段寄存器
操作数的宽度必须一样
两边不能同时为内存单元
add指令
add r/m8,imm8
add r/m16,imm16
add r/m32,imm32
add r/m16,imm8
add r/m32,imm8
add r8,r/m8
add r16,r/m16
add r32,r/m32
add r/m8,r8
add r/m16,r16
add r/m32,r32
这add指令就是将目标操作数加上源操作数并放到目标操作数里
sub指令
sub r/m8,imm8
sub r/m16,imm16
sub r/m32,imm32
sub r/m16,imm8
sub r/m32,imm8
sub r/m8,r8
sub r/m16,r16
sub r/m32,r32
sub r8,r/m8
sub r16,r/m16
sub r32,r/m32
sub指令和add指令一样也是将结果放到目标操作数里,只是加变成了减
上一篇: 关闭网站响应头中PHP版本信息
下一篇: vc6创建项目、程序入口和编译
猜你喜欢
点击排行
热门推荐
随机展示
站点信息
- 上线时间:2020年05月30日
- 网站程序:自建框架
- 博客模板:今夕何夕
- 文章统计:43篇文章
- 评论统计:0条评论
- 留言统计:0条留言
- 统计数据:百度统计