汇编逻辑运算指令

news2024/11/30 2:36:52

目录

逻辑运算指令

一:取反指令NOT

二:逻辑与运算AND(重点)

屏蔽某些位.

 把小写字母转换成大写字母

判断一个数的状态 

 三:逻辑或运算指令OR

用于拼字

把大写字母转换为小写字母

四:逻辑异或指令XOR

对某些位取反

大小写转化万能的

将寄存器清零和自己异或

五:测试指令TEST(重要)

判断负数或者非负数

 判断奇偶

判断某一位的状态

求补指令 NEG(补充)

例题:


逻辑运算指令

注意:NOT指令不影响标志位,其余指令AND,OR,XOR,TEST,只要开始执行就会使CF=OF=0

一:取反指令NOT

取反指令是逻辑运算中唯一不影响标志位的指令,操作数只能是寄存器或者内存单元

 MOV AL,5
 NOT  AL
 ;5   0000 0101
 ;取反1111 1010

二:逻辑与运算AND(重点)

 

作用:

屏蔽某些位.

在系统功能调用中,你键盘输入一个5,实际收到的是它的ASCII码35H

这时候你还想要用5参与运算,就要把它的高位屏蔽掉

MOV AL,35H
AND AL,0FH

;0011 0101
;0000 1111
 0000 0101

 把小写字母转换成大写字母

 

MOV AL,61H
AND AL,0DFH
; 0110 0001(61H)
; 1101 1111(0DFH)
; 0101 0001(41H)

判断一个数的状态 

ZF是不是为零 PF是奇校验还是偶校验  SF是正数还是负数

MOV AL,XX;你不知道XX是什么
AND AL,AL;AL自己跟自己与值是不变的但是进行了运算,标志位已经发生了变化

 三:逻辑或运算指令OR

 

用于拼字

 dos系统功能调用想在屏幕输出5

MOV AL,05H
OR  AL,30H
;0000 0101
;0011 0000
35H

把大写字母转换为小写字母

MOV AL,41H
OR AL,20H
;0100 0001
;0010 0000
 0110 0001(61H)
  

四:逻辑异或指令XOR

相同为0,不同为1。或者记和0异或保持不变,和1异或是取反

用处

对某些位取反

对应的位和1异或就可以

 

MOV AL,06H
MOV AL,0FH
;0000 0110(06H)
;0000 1111(0FH)
;0000 1001(09H)

大小写转化万能的

异或上20H

;大写转小写
MOV AL,41H
XOR AL,20H
;0100 0001(41h)
;0010 0000(20H)
;0110 0001(61H)

;小写转大写
MOV AL,61H
XOR AL,20H
;0110 0001(61H)
;0010 0000(20H)
;0100 0001(41H)

将寄存器清零和自己异或

MOV AX,????
XOR AX,AX;AX=0

五:测试指令TEST(重要)

TEST  dest,source

和AND 指令执行的操作完全一样。执行之后结果不回送跟前面学的CMP指令相似

根据结果标志位的情况来形成分支

判断负数或者非负数

MOV AL,XX
TEST AL,80H
;XXXX XXXX
;1000 0000
;?000 0000
;只用看第一位,看ZF标志,就可以看出XX是一个正数还是一个非负数

 判断奇偶

MOV AL,XX
TEST AL,01H
;XXXX XXXX
;0000 0001
;0000 000? 
;判断一个数是奇数还是偶数 ,如果测试完ZF=1(结果为0),那么X的最后一位就是0,就是偶数
;如果ZF=0,结果不为0,那么X最后一位就是1,就是奇数 。因为A0决定奇偶这个大家都知道

判断某一位的状态

想判断那一位那一位就是1,然后看ZF标志

MOV AL,XX;
TEST AL,08H
;XXXX XXXX
;0000 1000
;0000 ?000

求补指令 NEG(补充)

这条指令相当于,已知某数的补码,求他负数的补码

MOV  AL,5;

NEG  AL;

AL就是-5   用0-5=-5

0000 0000

0000 0101

1111  1011 (-5的补码)

不信的话可以把它算回来啊,以知补码求原码 符号位不变,其余取反+1

1 000 0101 (-5的原码)

第二种方式:

也可以用取反+1来算出来   

5      0000 0101 

取反 1111  1010

加1   1111  1011(-5的补码)

例题:

1设AL=0AH,下列指令执行后,能使AL=05H的指令是()

A:NOT AL    B:AND AL,0FH     C:OR AL,0FH    D:XOR AL,0FH

2:完成累加器AL清零,并使进位标志CF清零,下面错误的是()

A:MOV AL,00H   B:AND AL,00H   C:XOR AL,AL  D: SUB AL,AL

3:下列逻辑运算指令中,不允许使用立即数为操作数的指令是()

A:AND     B:OR     C:XOR   D:NOT 

4:若BL寄存器中的D1,D3,D4,D6取反,应使用()

A: AND BL,5AH        B: OR BL,5AH

C: XOR BL,5AH       D: TEST BL,5AH

注意位数从0开始数

 

5:若将AH的内容的第四位分离,则应选用()

A: AND AL,0FH     B:OR AL,0FH

C: XOR AL,0FH    D:TEST AL,0FH

 

6:设AX=0001H,下列指令执行后,能使标志位ZF=1的指令有(ABCD)

A: DEC AX     B:SUB  AX,1

C:CMP AX,1   D: XOR  AX,1

7:编写汇编指令,实现下列功能

(1) AX寄存器第4位清零     

AND AX,0FFF0H

(2)BX寄存器低4位位置“1”

AND BX,000FH

(3)CX寄存器低4位变反

XOR CX,000FH

(4)用Test指令测试DL寄存器位3,位6是否同时为0,若是,将0送DL,否则1送DH

0100 1000

TEST DL,48H

8:用什么方法可以实现对通用寄存器清零,但MOV 不会让CF和OF为零

MOV AX,0

XOR AX,AX

AND AX,0H

SUB AX,AX

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

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

相关文章

程序员也会八卦吗?

世俗的眼光,总是觉得女生喜欢吃八卦,经常聚在一起小圈子叽叽喳喳谈论朋友圈。 其实,从现实来看,办公室的男性同胞也不啻于女生的八卦程度。 在吃瓜这件问题上,程序员凭借自身的技术优势,往往奋战于最前线…

【网络编程】捕获网卡IP数据报

本文将通过winsock从应用层捕捉网络层的IP数据报。 唉,原来的时候一直希望能在应用层实现网络游戏加速,发现可以捕捉网卡IP数据报后觉得可能有希望写出来。后面想了想得出结论:可以捕获没卵用,因为没法拦截(包已经发出…

RocketMQ的事务消息是如何实现的?

RocketMQ的事务消息实现方法如下: 1、首先生产者订单系统先发送⼀条half消息到Broker,half消息对消费者而⾔是不可⻅的 2、再创建订单,根据创建订单成功与否,向Broker发送commit或rollback 3、并且⽣产者订单系统还可以提供Broker…

Spark 3.0 - 11.ML 随机森林实现二分类实战

目录 一.引言 二.随机森林实战 1.数据预处理 2.随机森林 Pipeline 3.模型预测与验证 三.总结 一.引言 之前介绍了 决策树 ,而随机森林则可以看作是多颗决策树的集合。在 Spark ML 中,随机森林中的每一颗树都被分配到不同的节点上进行并行计算&…

Crack:Aspose.3D for .NET 22.11.X

Aspose.3D for .NETAspose.3D for .NET 是一个功能丰富的游戏软件和计算机辅助设计 (CAD) API,无需任何 3D 建模和渲染软件依赖即可操作文档。API 支持 Discreet3DS、WavefrontOBJ、FBX(ASCII、二进制)、STL(ASCII、二进制&#x…

[附源码]Nodejs计算机毕业设计基于web的家教管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

linux信号:SIGINT、SIGKILL、SIGSTOP、SIGCONT

目录 1. SIGINT 2. SIGKILL 3. SIGSTOP与SIGCONT 简介 SignalStandardActionCommentSIGINTP1990TermInterrupt form keybordSIGKILLP1990TermKill signalSIGSTOPP1990TermInterrupt form keybord1. SIGINT 我们在shell交互式进程中常用的ctrl c 就是对当前运行的程序进行…

[附源码]Node.js计算机毕业设计电影票网上订票系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

2022年山东食品安全管理员模拟试题及答案

百分百题库提供食品安全管理员考试试题、食品安全管理员考试预测题、食品安全管理员考试真题、食品安全管理员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、单选题 1.下列哪项措施与保证食品安全无关? A…

2022gwb_web3

可以通过反序列化出一个 Webclome 类从而任意构造原生类,但只能调用 getSize 方法获取文件或目录 的大小,试了试直接拿根目录的 /flag 就别想了,先看看网站目录有没有藏什么东西(扫目录什么也扫 不出来),EX…

再学C语言2:概览

重新把C语言梳理一遍,学习在VSCode中进行C语言编程 一、C语言起源 1972年,贝尔实验室的Dennis Ritchie在C语言的基础上设计出一种新的语言,即C语言 C是作为从事实际编程工作的程序员的一种工具儿出现,是为编程人员开发的语言 二…

【脚本项目源码】Python制作桌面宠物,这么可爱的萌宠你不想拥有吗?

前言 本文给大家分享的是如何通过利用Python制作桌面宠物,废话不多直接开整~ 开发工具 Python版本: 3.6 相关模块: random模块 os模块 cfg模块 sys模块 PyQt5模块 环境搭建 安装Python并添加到环境变量,pip安装需要的相…

skynet设计原理和使用

skynet设计原理一、多核并发编程方式二、skynet2.1、skynet简介2.2、环境准备2.3、编译安装2.4、Actor 模型2.5、消息队列2.6、actor公平调度三、skynet的使用3.1、第一个skynet程序3.2、skynet网络消息3.3、skynet定时消息3.4、skynet actor间消息四、vscode调试skynet总结后言…

Python比较难的知识点: 迭代器与生成器

迭代器与生成器是Python比较难的知识点, 在学Python之前, 我已经有了多年的C语言与MATLAB的使用经验了, 但是学这些知识点, 还是有一定的困难, 总觉得是一知半解的. 现在, 经过一段时间的学习和梳理, 感觉是搞懂了, 写下这篇文章与大家分享. 学习具体概念技术之前, 得知道这些…

c++ - 第17节 - AVL树和红黑树

1.AVL树 1.1.AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发…

Mybatis:MyBatis的逆向工程(10)

Mybaits笔记框架:https://blog.csdn.net/qq_43751200/article/details/128154837 Mybatis中文官方文档: https://mybatis.org/mybatis-3/zh/index.html Mybati的逆向工程1. 正向工程 VS 逆向工程2. 创建逆向工程的步骤(MyBatis3Simple清新简洁…

Go 1.20要来了,看看都有哪些变化-第1篇

前言 Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本,Go 1.20的正式release版本预计会在2023年2月份发布。 让我们先睹为快,看看Go 1.20给我们带来了哪些变化。(文末有彩蛋!) 安装方法: $ go install golan…

[附源码]Nodejs计算机毕业设计基于web的火车订票管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

阅读器消退之际:文石造产品,掌阅塑生态

配图来自Canva可画 阅读器正在变得小众,似乎自Kindle以来营造的那种“阅读的生活方式”,已经被证明是一个伪命题:会阅读的人,无论如何都会去阅读;不会阅读的人,阅读器的归宿终究是一个“泡面盖”。于是&am…

Android原生项目接入flutter_boost4.0

折腾了好几天,经验思维导致的,记录一下踩坑。 官方接入步骤官方文档 接入原生,就3个步骤,我都能折腾好久,浪费时间。 flutter部分很简单,按文档配置就行,在pubspec.yaml依赖就好了。 &#…