汇编算数运算指令

news2024/9/22 13:28:25

目录

加法类指令

加法指令ADD

加进位的加法指令ADC

 带进位有啥用呢?

增量指令INC(+1)

减法类指令

减法指令SUB

带借位减法指令SBB

减量指令DEC

比较指令CMP(分支程序设计常用)

乘法指令

乘法指令MUL和符号整数乘法指令IMUL

乘法指令MUL

带符号的乘法IMUL

除法指令 

除法指令DIV和符号整数除法指令IDIV

扩展指令CBW和CWD

 练习题


加减运算

两个操作数类型相同,不能同时为存储器操作数

执行结果会影响标志位

乘除法考点就是隐含操作数 ,和字节扩展到字,字扩展的双字的除法  考试最高考到32个字

加法类指令

加法指令ADD

加进位的加法指令ADC

 带进位有啥用呢?

用处1 32位相加: 低位的进位进到CF中,可以使用ADC收集CF中的进位

 

用处2,8位数累加求和的时候用来,收集低位的进位

用处 3判断一个字节单元中有多少个1。移位指令凡是移出去的位都去CF

SHL   AL,0  ;移出去的进入了CF
ADC   AH,0  ;收集CF

增量指令INC(+1)

increase增加

用处1作用循环的时候更改偏移量

MOV  BX,OFFSET VAR1;拿偏移地址给BX
MOV AL,[BX];去里面的内容
INC BX;自增地址指针下移

;注意区分
INC VAR1;是给内存里面的变量+1

来个例题

MOV AL,OFFH

INT AL

问AL=?  CF=?

0           0

记住自增和自减都不影响CF

减法类指令

减法指令SUB

带借位减法指令SBB

带借位的减法:主要用于32位减法,低16位产生借位是向CF借 

减量指令DEC

decrement

DEC主要用于修改计数器初值

DEC CX;初值自减
JZN LOP1;判断是否为零跳转

比较指令CMP(分支程序设计常用)

compare

做减法但是不回送

乘法指令(扩位)

主要的考点就是隐含操作数

乘法指令MUL和符号整数乘法指令IMUL

 

乘法指令MUL

;比如要算5*8
MOV AL,5
MOV AH,8
MUL AH

带符号的乘法IMUL

MOV AL,0FFH;-1
MOV BL,0FFH;-1
IMUL BL;  AX=1

除法指令 (缩位)

除法指令DIV和符号整数除法指令IDIV

 你也可以把他看成内存,下面是高的。 商在上面所以低是AL,余数在下面所以高AH

扩展指令CBW和CWD

 

;无符号你可以这样写

MOV  AL,10
MOV  BL,3
MOV AH,0;清空高位达到扩展到AX的目的
DIV BL
;但是有符号的扩展,就要引入  CBW 字节转成字  CWD  字转双字
MOV  AL,-10
MOV BL,3
MOV AH,0 ;错误 负数你直接把前面清零那不就成正数了吗
CBW AL;   AL扩展到AH 正确
;如果AL为正数 它的操作是把 AH=0
;如果AL为负数 它的操作是把 AH=0FFH
IDIV BL
;32位除法
MOV AX,-10
MOV BX,3
CWD AX; 把AX扩展到DXAX拼起来用
;如果AX为正数  它的操作是把DX=0
;如果AX为负数  它的操作是把DX=0FFFFH
IDIV BX

 练习题

1:8086执行SUB  AH,AL,结果OF=1,叙述正确的是()

A:AH的数大   B:AL的数大   C:两数都是正数  D:不明确

异号相减的时候才可能溢出

AH是负的,AL是正数   结果为正数:这种情况AL大

AH是正数   AL是负数    结果为负数,AH大

C选项更错,同号相减不可能溢出

2:DS=2000H,BX=0100H,(20100H)=12H,(20201H)=34H。执行指令MOV AX,[BX]

后,AX的值为(3412H),执行指令LEA SI,[BX] 后SI的值为(0100H

这题注意取的是一个字

3:若(AL)=0FH,(BL)=02H,则执行CMP AL,BL后,AL和BL的内容为()

A:0FH和02H      B:0DH和02H    C:0FH和0DH    D:02H和0FH

4:设AL=41H,执行指令 ADD AL,52H后,标志位()

A:AF=1  B:CF=1   C:OF=1  D:ZF=1

5:在数据定义语句BUF  DB  01H,0AH中,BUF称为()

A:参数   B:变量   C:标号    D:助记符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

职场经验:自动化测试介绍和分类,看这一篇就够了

什么是自动化测试? 自动化测试是软件测试活动中一个重要的分支和组成部分,即利用工具或脚本达到测试目的,没有人工或者极少人工参与的软件测试活动称为自动化测试. 自动化测试的优势有哪些? 方便进行回归测试,当软件的版本发布比较频繁的时候,自动化的效果很明显 自动处理…

全网第三详细tshark使用帮助

一 前言tshark作为wireshark的命令行版本,功能非常强大,可以抓包,数据包分析、提取文件、提取分析后的数据还支持各种格式,可以说一把流量分析的瑞士军刀,如果在低流量的场景,包装下tshark命令,…

查找树莓派ip地址的几种方法

1.环境说明 从上面的图中可以看到树莓派是通过网线和win10电脑相连的,以此来共享win10电脑网络,但是需要在电脑端设置后才能将网络共享出来, 设置方法参考以下链接: 通过一根网线共享网络给另一个电脑或者群辉上网 注意&#xff0…

jQuery 遍历

什么是遍历? jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。 下图…

dotnet项目使用Cefsharp与Js互相调用函数

1. 背景 最近在一个项目中使用 CefSharp 加载H5页面, 其中一些业务逻辑需要调用 Js 函数, 同时 Js 也会调用一些 native 函数: 这里我们使用官方的demo代码进行添加修改, 修改后的代码在此: DevWiki/CefSharp.MinimalExample - CefSharp.MinimalExample - DevWiki Gitea 2. J…

Allegro如何打开和关闭飞线操作指导

Allegro如何打开和关闭飞线操作指导 Allegro可以打开和关闭飞线,下面介绍如何打开和关闭飞线,具体操作如下 选择display-show rats-all。打开所有nets的飞线 如下图 如果菜单里面添加图标,可以直接点击图标显示所有飞线 选择display-Blank Rats-all关闭所有nets的飞线 …

Spring MVC学习 | 简介HelloWord

文章目录一、Spring MVC简介1.1 MVC回顾1.2 Spring MVC是神魔二、HelloWord2.1 相关文件的准备2.2 创建请求控制器2.3 创建Spring MVC配置文件2.4 测试HelloWord2.4.1 访问首页2.4.2 访问目标页面2.5 执行流程学习视频🎥:https://www.bilibili.com/video…

STM32G4系列存储访问的两个小话题

一、有关CCM访问地址的话题有用过STM32F4系列部分芯片或STM32F334芯片的人,可能知道片内有个CCM【Core Coupled Memory】区域,从芯片系统框图结合文字说明,可以清晰知道这个区域仅能被CPU访问,常用来存放些对执行效率敏感的关键性的代码或数据…

【mmdetection系列】mmdetection之head讲解

目录 1.configs 2.具体实现 3.调用 3.1 注册 3.2 调用 配置部分在configs/_base_/models目录下,具体实现在mmdet/models/*_heads目录下。 这个heads可以是很多个目录下的。 1.configs 我们看下yolox的head吧。 https://github.com/open-mmlab/mmdetection/b…

Web前端开发技术课程大作业:基于HTML+CSS+JavaScript实现校园主题-萍乡田家炳中学校网站(1页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

详细讲解Linux物理内存初始化

说明: Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio 1. 介绍 让我们思考几个朴素的问题? 系统是怎么知道物理内存的?在内存管理真正初始化之前…

Java项目:SSM实现的校园门户平台网站系统含开题报告与需求分析

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统为前后台项目,后台为管理员登录,前台为社团、学生、教师角色登录; 管理员角色包含以下功能&#xff…

对称加密算法(二)(分组密码,Feistel Cipher)

文章目录Traditional Block Cipher StructureStream Ciphers and Block CiphersFeistel CipherReferencesTraditional Block Cipher Structure Stream Ciphers and Block Ciphers 序列密码也称为流密码 (Stream Ciphers), 它是指每次对数字数据流的一个比特或一个…

CSS -- CSS复合选择器总结

文章目录CSS的复合选择器1 什么是复合选择器2 后代选择器3 子选择器4 并集选择器5 伪类选择器6 链接伪类选择器7 :focus 伪类选择器8 复合选择器总结CSS的复合选择器 1 什么是复合选择器 在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器&#…

【博客554】k8s 中的 Client-Side Apply 和 Server-Side Apply

k8s 中的 Client-Side Apply 和 Server-Side Apply 背景 如果你经常与 kubectl 打交道,那相信你一定见过 kubectl.kubernetes.io/last-applied-configuration annotation,以及那神烦的 managedFields,像这样: kubectl get pods…

单元测试理论储备及JUnit5实战

概述 测试驱动开发,TDD,Test Driven Development,优点: 使得开发人员对即将编写的软件任务具有更清晰的认识,使得他们在思考如何编写代码之前先仔细思考如何设计软件对测试开发人员所实现的代码提供快速和自动化的支…

银保监机构保险许可证数据(2007-2022年)

保险是金融系统的重要组成部分,保险的经济补偿和资金融通功能对维持金融系统的稳定,维护整个社会的安定起着不可或缺的作用,因此,从现实意义上来讲,对于我国保险业系统性风险的研究是很有必要性的。 通过对保险业系统性风险的类型、传播机制的研究,可以有效防范并降低我国保险…

MATLB|基于粒子群优化算法的智能微电网调度(含风、光、微型燃气轮机、电网输入微网、储能)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

linux基本使用及服务器环境搭建

文章目录0.linux基本命令1.配置jdk环境变量2.安装tomcat3. mysql安装4.部署jar项目基本命令5. 前端项目继承到后端项目中0.linux基本命令 1.pwd 我在那里 2.who am i 我是谁 3.clear 清屏 4.ctrlc 强制停止 5.ip addr 查看地址 6.ping 是否联通网站 7.systemctl start|s…

分布式系统的解决方案,学好这个就够了

分布式、负载、消息队列等一些解决方案,在互联网公司应用已经非常普遍了,也是每一个程序员要成为技术专家、架构师必学的知识。 所以,今天给大家推荐一个开源项目,有关互联网项目常见的解决方案,通通都打包一起了。 …