汇编的指令
减法类指令:
不带借位的减法:
sub dest,src;dest=(dest)-(src)
注意: 1、源操作数和目的操作数不能同时为段寄存器或存储单元
2、对标志位有影响,主要影响CF、ZF、OF、SF。
带借位的减法:
sbb dest,src;dest=(dest)-(src)-(CF)
注意: 1、源操作数和目的操作数不能同时为存储单元。
2、段寄存器不能进行算数运算。
减一指令:
dec reg/mem;reg表示寄存器,mem表示存储单元
注意:操作数不能为立即数。
取补指令:
neg reg/mem;reg/mem=0-(reg)/(mem)
取补指令是对该数逐位取反(包括符号位)后加一,相当于取相反数。
注意:操作数不能为立即数。
NEG对标志位的影响
CF:当OPFRG=0时 CF=0 否则CF=1
OF;当OPFRG为负的最小值时OF=1否则OF=0
比较指令:
cmp dest,srg;比较dest和srg的大小
用dest减去srg并根据结果改变标志位,但不记录相减结果。
若执行指令后:ZF=1,则说明两个数相等,因为zero为1说明结果为0.
当无符号时:
若CF=1,则说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,所以,此时oprd1<oprd2;
CF=0,则说明了无借位,但此时要注意ZF是否为0,若为0,则说明结果不为0,故此时oprd1>oprd2.
当有符号时:
若SF=0,OF=0 则说明了此时的值为正数,没有溢出,可以直观的看出,oprd1>oprd2;
若SF=1,OF=0 则说明了此时的值为负数,没有溢出,则为oprd1<oprd2;
若SF=0,OF=1 则说明了此时的值为正数,有溢出,可以看出oprd1<oprd2;
若SF=1,OF=1则说明了此时的值为负数,有溢出,可以看出oprd1>oprd2;(来自CSDN)
进位和溢出的区别:某种意义上来说of是表示有符号数的溢出,cf是表示无符号数的溢出。
(来自CSDN)
乘法:
无符号的乘法:
mul mem/reg;操作数不能为立即数
功能:完成两个不带符号的八位或十六位数字相乘,乘积存放在ah、al或dx、ax中。例:被乘数是bl默认乘数为al,乘积存放在ah、al中;被乘数为bx乘数默认为ax,乘积存放在dx,ax中。如果乘积的高半部分不为零,则 MUL 会把进位标志位和溢出标志位置改为1。目的操作数只能是通用寄存器。
;以下均为16进制
mov ax,1001
mov bx,2
mul bl ;此时ax=0002mov ax,1024
mov bx,2
mul bx ;此时ax=2048,dx=0000mov ax,1024
mov bx,100
mul bx ;此时ax=4800,dx=0020
有符号数的乘法:
imul ax,bx;ax=(ax)*(bx)
功能:完成两个不带符号的八位或十六位数字相乘,乘积存放在ah、al或dx、ax中。例:被乘数是bl默认乘数为al,乘积存放在ah、al中;被乘数为bx乘数默认为ax,乘积存放在dx,ax中。如果乘积的高半部分不为零,则 MUL 会把进位标志位和溢出标志位置改为1。目的操作数只能是通用寄存器。
除法指令
无符号数的除法:
mov ax,10
mov bx,3
div bl;ax=0105mov ax,10
mov bx,3
div bx;ax=0005 bx=0001
1、如果被除数为16位除数为8位,则被除数默认存储在ax中,如果被除数为32位除数为16位,默认被除数高位存储在dx中低位存储在ax中。
2、如果除数为8位那么商默认存储在al中,余数存储在ah中。
3、如果除数为16位那么商默认存储在ax中,余数存储在dx中
有符号数的除法:
idiv src
同上
除法指令的特殊情况:
1、除数为零
2、除数溢出,例如:
mov ax,1000
mov bl,2
div bl;此时中断标志更改
BCD调整指令:
请看博客园
逻辑运算
逻辑与and
逻辑或or
异或xor
逻辑非not:求反码
test:将两个操作数按位与,只保留标识符不保留运算结果。经常用于判断测试位是否为零。
移位和循环移位指令
算数移位指令:
SAL为算数左移指令,算数左移一次或cl指定次数。
SAR为算数右移指令,算数右移一次或cl指定次数。
算数移位代表有符号数的乘二除二。
逻辑移位指令
SHL为算数左移指令,算数左移一次或cl指定次数。
SAL为算数右移指令,算数右移一次或cl指定次数
逻辑移位和算术移位的区别:
- 逻辑移位
逻辑移位是指逻辑左移和逻辑右移,移出的空位都用0来补。
- 算术移位
算术移位 就需要分有符号型值和无符号型值
对于无符号型值,算术移位等同于逻辑移位。
而对于有符号型值 ,算术左移等同于逻辑左移,算术右移补的是符号位,正数补0,负数补1(来自CSDN)
OF:当移动次数为1时若操作改变了最高位OF为1,否则为0,其余情况无意义
循环移位
带进位:RCL、RCR。
不带进位:ROL、ROR。
相关文章:
汇编的指令
减法类指令: 不带借位的减法: sub dest,src;dest(dest)-(src) 注意: 1、源操作数和目的操作数不能同时为段寄存器或存储单元 2、对标志位有影响,主要影响CF、ZF、OF、SF。 带借位的减法: sbb dest,src;dest(dest)-(…...
《数据结构、算法与应用C++语言描述》使用C++语言实现数组队列
《数据结构、算法与应用C语言描述》使用C语言实现数组队列 定义 队列的定义 队列(queue)是一个线性表,其插入和删除操作分别在表的不同端进行。插入元素的那一端称为队尾(back或rear),删除元素的那一端称…...
零基础如何学习自动化测试
现在很多测试人员有些急于求成,没有任何基础想当然的,要在一周内上手自动化测试。 在自动化的过程中时候总有人会犯很低级的问题,有语法问题,有定位问题,而且有人居然连__init__.py 文件名都弄错误,还有将…...
系统架构师备考倒计时16天(每日知识点)
1.信息化战略与实施 2.UML图(12个) 3.结构化设计(耦合) 4.SMP与AMP的区别(多核处理器的工作方式) 多核处理器一般有SMP和AMP两种不同的工作方式: SMP(对称多处理技术):将2颗完全一样的处理器封…...
【MySQL系列】- Select查询SQL执行过程详解
【MySQL系列】- Select查询SQL执行过程详解 文章目录 【MySQL系列】- Select查询SQL执行过程详解一、SQL查询语句的执行过程二、SQL执行过程详解2.1. 连接器2.2. 查询缓存2.3. 分析器2.4. 优化器2.5. 执行器 三、undo log 和 redo log作⽤3.1. redo log (重做日志&a…...
软考高级信息系统项目管理师系列之:信息系统项目管理师论文评分参考标准
软考高级信息系统项目管理师系列之:信息系统项目管理师论文评分参考标准 论文满分是 75 分,论文评分可分为优良、及格与不及格 3 个档次。评分的分数可分为: 60 分至 75 分优良(相当于百分制 80 分至 100 分)。45 分至 59 分及格(相当于百分制 60 分至 79 分)。0 分至 44 分…...
MyBatis--多案例让你熟练使用CRUD操作
目录 一、前期准备 二、两种实现CRUD方式 三、增加数据(INSERT) 四、删除数据(DELETE) 五、查询数据(SELECT) 六、更新数据(UPDATE) 一、前期准备 1.创建maven项目并在pom文件…...
用Python造轮子
目录 背景安装setuptools库准备要打包的代码创建setup.py文件打包生成whl文件把库装到电脑上使用这个库 背景 如何把自己写的代码,打包成库方便其他人使用 安装setuptools库 正所谓想要富先修路,先把造轮子要用的库装上 pip install wheel pip insta…...
ARM 堆栈寻址类型区分
文章目录 堆栈指向分类堆栈指向数据分类满递增与满递减空递增与空递减 堆栈指向分类 根据堆栈指针的指向的方向不同,可以划分为向上生成型和向下生成型。 向上生成型: 随着数据的入栈,堆栈的指针逐渐增大,称为:递增…...
每日一练 | 网络工程师软考真题Day43
1、在生成树协议〔STP〕IEEE 802.1d中,根据 来选择根交换机。 A.最小的MAC地址 B.最大的MAC地址 C.最小的交换机ID D.最大的交换机ID 2、在快速以太网物理层标准中,使用两对5类无屏蔽双绞线的是 。 A&…...
jsonXML格式化核心代码
json格式化: 依赖: <dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><version>2.6.0</version><scope>compile</scope> </dependency> string t…...
PTQ量化和QAT量化
目录 1--PTQ量化 2--QAT量化 1--PTQ量化 PTQ量化表示训练后量化(Post Training Quantization)。使用一批校准数据对训练好的模型进行校准,将训练好的FP32网络直接转换为定点计算的网络,过程中无需对原始模型进行任何训练&#x…...
【Django 02】数据表构建、数据迁移与管理
1. Django 构建数据表创建与数据迁移 1.1 数据表创建 1.1.1 模块功能 如前所述,models.py文件主要用一个 Python 类来描述数据表。运用这个类,可以通过简单的 Python 代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。今天的例子就是在…...
一天吃透Java集合面试八股文
内容摘自我的学习网站:topjavaer.cn 常见的集合有哪些? Java集合类主要由两个接口Collection和Map派生出来的,Collection有三个子接口:List、Set、Queue。 Java集合框架图如下: List代表了有序可重复集合,…...
高级深入--day36
Settings Scrapy设置(settings)提供了定制Scrapy组件的方法。可以控制包括核心(core),插件(extension),pipeline及spider组件。比如 设置Json Pipeliine、LOG_LEVEL等。 参考文档:Settings — Scrapy 1.0.5 文档 内置设置参考手册 BOT_NAME 默认: scrapybot 当您使用 sta…...
Jmeter接口测试工具的一些使用小技巧
如何使用英文界面的JMeter Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动,所以,我们启动jmeter后,其会出现一个倍感亲切的中文界面。但由于jmeter本身的汉化工作做得不好,你会看到有未被汉化的选项及元件的参数。…...
黄金眼PAAS化数据服务DIFF测试工具的建设实践 | 京东云技术团队
一、背景介绍 黄金眼PAAS化数据服务是一系列实现相同指标服务协议的数据服务,各个服务间按照所生产指标的主题作划分,比如交易实时服务提供实时交易指标的查询,财务离线服务提供离线财务指标的查询。黄金眼PAAS化数据服务支撑了黄金眼APP、黄…...
深入了解RPA业务流程自动化的关键要素
在RPA业务流程自动化实施过程中,哪些因素起着至关重要的作用?这其实没有一个通用的答案,每一个RPA业务流程自动化的部署,都需要结合具体场景去调整,并且进行全面的规划。 首当其冲是要关注以下几点: 1、专…...
CSS记录
1.标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型box-sizing: border-box; 宽度内容的宽度(content) border padding margin 低版本IE盒子模型:宽度内容宽度(contentborderpaddin…...
Kotlin中类型转换
在 Kotlin 中,类型转换是一种常见的操作,用于将一个数据类型转换为另一个数据类型。在本篇博客中,我们将介绍 Kotlin 中的类型转换,并提供示例代码演示智能类型转换、强制类型转换以及可空类型的转换。 智能类型转换是 Kotlin 中…...
STM32智能垃圾桶开发实战:语音识别与自动分类
1. 项目概述这个智能垃圾桶项目是我去年为一个社区环保活动设计的硬件方案。当时社区正在推广垃圾分类,但居民反映传统分类垃圾桶使用不便,经常出现错投混投的情况。于是我就琢磨着用STM32做个能听懂人话、自动开盖的智能垃圾桶,让垃圾分类变…...
课堂行为及状态检测数据集11697张VOC+YOLO格式
课堂行为及状态检测数据集11697张VOCYOLO格式数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):11697 标注数量(xml文件个数):1169…...
S-UI前端工程化:ESLint与Prettier代码质量保障
S-UI前端工程化:ESLint与Prettier代码质量保障 还在为代码风格混乱、团队协作困难而头疼吗?S-UI作为专业的代理面板项目,通过完善的工程化配置确保了代码质量。本文将为你解析如何在类似项目中配置ESLint和Prettier,打造规范的开…...
Delphi经典8大天坑|第五篇:ShortString与String混用,导致字符串截断/乱码
一、现象描述项目中同时使用ShortString和string两种字符串类型,赋值时出现字符串被莫名截断(超过255字符的部分丢失),或出现乱码,尤其是在Delphi D7及以下版本中,问题更常见。典型场景:将一个长…...
小白友好!YOLO11镜像部署教程:无需独立显卡也能体验目标检测
小白友好!YOLO11镜像部署教程:无需独立显卡也能体验目标检测 1. 引言:为什么选择YOLO11镜像 目标检测是计算机视觉中最基础也最实用的技术之一,而YOLO系列算法以其快速高效著称。最新发布的YOLO11在保持实时性的同时,…...
Omni-Vision Sanctuary 大模型一键部署:Python入门级环境配置实战
Omni-Vision Sanctuary 大模型一键部署:Python入门级环境配置实战 1. 开篇:为什么选择Omni-Vision Sanctuary 如果你刚接触AI大模型,可能会被各种复杂的部署流程吓到。别担心,今天我们要聊的Omni-Vision Sanctuary是个对新手特别…...
代码随想录算法训练营第二天 | Leetcode 209.长度最小的子数组 | Leetcode 59.螺旋矩阵 II | 区间和 | 开发商购买土地
209.长度最小的子数组 力扣题目链接:209. 长度最小的子数组 - 力扣(LeetCode)文档讲解:209.长度最小的子数组 | 滑动窗口 | 连续子数组 | 代码随想录视频讲解:拿下滑动窗口! | LeetCode 209 长度最小的子数…...
OpenClaw+千问3.5-9B智能翻译:多语言文档自动处理
OpenClaw千问3.5-9B智能翻译:多语言文档自动处理 1. 为什么需要本地化智能翻译 去年参与一个跨国开源项目时,我每天要处理英日韩三种语言的开发文档。传统翻译工具需要手动复制粘贴,遇到代码片段还会破坏格式。更麻烦的是技术术语的准确性—…...
利用快马ai一键生成android studio配置脚本,五分钟搭建安卓开发原型环境
利用快马AI一键生成Android Studio配置脚本,五分钟搭建安卓开发原型环境 最近在尝试学习安卓开发,发现Android Studio的安装和配置过程相当繁琐。从下载安装包到配置SDK、创建模拟器,再到初始化项目,每一步都可能遇到各种问题。作…...
百度网盘秒传链接网页工具终极指南:全平台免费极速转存方案
百度网盘秒传链接网页工具终极指南:全平台免费极速转存方案 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 还在为百度网盘资源分享的繁…...
