(32位汇编 五)mov/add/sub/and/or/xor/not
本文链接:https://blog.csdn.net/pl20140910/article/details/78227133
说明
符号 说明
r 通用寄存器
m 代表内存
imm 代表立即数
r8 代表8位通用寄存器
m8 代表8位内存
imm8 代表8位立即数
一、MOV
语法
操作码 目标操作数 源操作数
MOV r/m8 r8
MOV r/m16 r16
MOV r/m32 r32
MOV r8 r/m8
MOV r16 r/m16
MOV r32 r/m32
MOV r8 imm8
MOV r16 imm16
MOV r32 imm32
作用
拷贝源操作数到目标操作数。
注意
源操作数可以是立即数、通用寄存器、段寄存器、或者内存单元。
目标操作数可以是通用寄存器、段寄存器、或者内存单元。
操作数的宽度必须一样。当两个操作数都是寄存器时,寄存器的宽度必须严格一致。例如,mov eax, ax是错误的。(当源操作数宽度小于目标操作数宽度时,会自动在高位补0;当源操作数宽度大于目标操作数宽度时,会自动将超出的高位进行截断。)
源操作数和目标操作数不能同时为内存单元。
二、ADD、SUB、AND、OR和XOR
语法
操作码 目标操作数 源操作数
ADD/SUB/AND/OR/XOR AL imm8
ADD/SUB/AND/OR/XOR AX imm16
ADD/SUB/AND/OR/XOR EAX imm32
ADD/SUB/AND/OR/XOR r/m8 imm8
ADD/SUB/AND/OR/XOR r/m16 imm16
ADD/SUB/AND/OR/XOR r/m32 imm32
ADD/SUB/AND/OR/XOR r/m16 imm8
ADD/SUB/AND/OR/XOR r/m32 imm8
ADD/SUB/AND/OR/XOR r/m8 r8
ADD/SUB/AND/OR/XOR r/m16 r16
ADD/SUB/AND/OR/XOR r/m32 r32
ADD/SUB/AND/OR/XOR r8 r/m8
ADD/SUB/AND/OR/XOR r16 r/m16
ADD/SUB/AND/OR/XOR r32 r/m32
三、NOT
操作码 操作数
NOT r/m8
NOT r/m16
NOT r/m32
(32位汇编 五)mov/add/sub/and/or/xor/not的更多相关文章
- 20145314郑凯杰《信息安全系统设计基础》GDB调试32位汇编堆栈分析
20145314郑凯杰<信息安全系统设计基础>GDB调试32位汇编堆栈分析 本篇博客将对第五周博客中的GDB调试32位汇编堆栈进行分析 首先放上以前环境配置的图: 图1: 测试代码: #i ...
- 32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)
32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计算器. 如果没有,今天则会讲解,不过建议 ...
- GDB调试32位汇编堆栈分析
GDB调试32位汇编堆栈分析 测试源代码 #include <stdio.h> int g(int x){ return x+5; } int f(int x){ return g(x)+ ...
- 32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用
32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用 一丶32位(x86也称为80386)与8086(16位)汇编的区别 1.寄存器的改变 AX 变为 EAX 可以这样想,16位通 ...
- 32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数
32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首 ...
- 32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式
32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 1.没有代码提醒功能 2.编写代码很慢,记不住各 ...
- 64位gcc编译32位汇编
由于使用as和ld来编译链接汇编程序,在使用C库的时候比较麻烦,需要输入比较多的指令,所以使用gcc进行编译链接.由于书中内容是32位汇编程序,但是机器使用的是64位操作系统,自带的gcc也是64位的 ...
- 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址
32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...
- 【asm】64位编译32位汇编需要注意的
汇编语言在32位和64位下有区别 32位的汇编在代码前增加.code32 as可以通过--32指定生成32位汇编 在64位系统下ld链接生成32位程序: ld: i386 archi ...
随机推荐
- 【Mybatis】 入门
一.概述 1.1 JDBC 1.2 JDBC编程中问题 1.3 MyBatis介绍 1.4 Mybatis架构 二.MyBatis入门程序 2.1 需求 2.2 引入MyBatis依赖 2.3 配置 ...
- c# 输出参数-out
- Linux之redis的安装,主从配置
一,redis安装 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...
- python词云图之WordCloud
1. 导入需要的包package import matplotlib.pyplot as plt from scipy.misc import imread from wordcloud import ...
- Django drf: 跨域机制
一.同源策略 二.CORS(跨域资源共享)简介 三.CORS基本流程 四.CORS两种请求流程 五.Django项目中支持CORS 一.同源策略 同源策略是一种约定,它是浏览器最核心的最基本的安全功能 ...
- centos7 修改内核文件 网卡名称为标准名称eth0
在开机安装系统之前按TAB键后输入标记信息后安装系统就可以变成标准网卡接口eth0 或eth1
- mybatis遍历map
mytabis是可以遍历map的,试过很多其他的方法都不行,最终使用如下方法是可以的: 1.mapper.java如下(注意要加@Param注解,否则不行,我就在这里折腾了不少时间): int upd ...
- VirtualBox、VMware在桥接模式下无法获取ip地址问题
声明: 参考 https://blog.csdn.net/lcdcxy/article/details/49362171 https://jingyan.baidu.com/article/948f5 ...
- 使用Ultra Librarian工具生成Altium封装和原理图符号的方法
最近在项目中用到了TI的单通道SPDT 模拟开关TS5A3160芯片,Altium官方的库中没有该元件的封装库,所以需要自己画.Ti在官网的产品介绍中提供了生成原理图符号和 PCB 布局封装的方法. ...
- JavaScript常用类库推荐
Axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 [中文说明], [Github], [教程] Lodash 一致性.模块化.高性能的 Jav ...