汇编语言Test指令
目录
- 功能简介
- 作用详细说明
- 应用举例
文章来源说明:https://baike.baidu.com/item/test/10804276?fr=aladdin
功能简介
Test命令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。但是,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。
TEST AX,BX
与AND AX,BX
命令有相同效果,只是Test指令不改变AX和BX的内容,而AND指令会把结果保存到AX中。
作用详细说明
将两个操作数进行按位AND,设结果是TEMP
- SF = 将结果的最高位赋给SF标志位,例如结果最高位是1,SF就是1
- 看TEMP是不是0,如果TEMP是0,ZF位置1;如果TEMP不是0,ZF位置0
- PF = 将TEMP的低8位,从第0位开始,逐位取同或。也就是第0位与第1位的同或结果,去和第2位同或,结果再去和第3位同或…直到和第7位同或。PF位是奇偶校验位,如果结果低8位中1的个数是偶数,PF=1;否则PF=0
- CF位置0
- OF位置0
应用举例
1.Test用来测试一个位,例如寄存器:
test eax,100b;b后缀意为二进制
jnz ******;如果eax右数第三个位为1,jnz将会跳转
jnz跳转的条件是ZF=0, ZF=0意味着ZF(零标志)没被置位,即逻辑与结果为1。
2.Test的一个非常普遍的用法是用来测试一方寄存器是否为空:
test ecx, ecx
jz somewhere
如果ecx为零,设置ZF零标志为1,jz跳转。
汇编语言Test指令相关推荐
- leaq c 汇编语言,汇编语言lea指令使用方法解析
这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lea指令变种(按大小分类): leaw #2个字节 ...
- 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)...
汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号 ...
- linux汇编 lea,汇编语言lea指令使用方法解析
这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lea指令变种(按大小分类): leaw #2个字节 ...
- 汇编语言常用指令汇总(持续更新)
汇编语言常用指令汇总(持续更新) 通用数据传送指令 累加器专用指令 有效地址送寄存器指令 标志寄存器传送指令 加法指令 减法指令 乘法指令 除法指令 逻辑指令 移位指令 通用数据传送指令 MOV(Mo ...
- 汇编语言--call 指令
call指令经常跟ret指令配合使用,因此CPU执行call指令,进行两步操作: 将当前的 IP 或 CS和IP 压入栈中: 转移(jmp). call指令不能实现短转移,除此之外,call指令实现转 ...
- 汇编语言--loop指令
loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址. 对IP的修改范围都为-128~127. 指令格式:loop 标号 ((cx) = (cx) - 1, ...
- 汇编语言--jcxz指令
jcxz指令 jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移, 在对应的机器码中包含转移的位移,而不是目的地址.对IP的修改范围都为-128~127. 指令格式:jcxz 标号(如果(c ...
- 汇编语言--mul 指令
mul是乘法指令,使用 mul 做乘法的时候:相乘的两个数:要么都是8位,要么都是16位. 8 位: AL中和 8位寄存器或内存字节单元中: 16 位: AX中和 16 位寄存器或内存字单元中. 结果 ...
- 汇编语言AND指令:对两个操作数进行逻辑(按位)与操作
AND 指令在两个操作数的对应位之间进行(按位)逻辑与(AND)操作,并将结果存放在目标操作数中: AND destination,source 下列是被允许的操作数组合,但是立即操作数不能超过 32 ...
- 汇编语言---乘法指令及符号扩展
汇编语言---有符号数乘法指令 介绍 格式及功能介绍 无符号数乘法指令 有符号数乘法指令 符号扩展及符号扩展语句 符号扩展 符号扩展语句 例子 无符号相乘 有符号数相乘 这是本文的重点: 有符号数相乘 ...
最新文章
- 面试 6:调整数组顺序使奇数位于偶数前面
- 排序算法 —— 插入排序
- SQL Server 提高创建索引速度的 2 个方法
- windows故障转移群集和mysql_Windows 2016 无域故障转移群集部署方法 超详细图文教程...
- Ubuntu中Qt5.7.0无法输入中文
- android自定义application,Android Test Orchestrator和自定义Application类
- python配色方案_python 生成18年写过的博客词云
- 分享一个蓝屏代码查询器
- react-native 加载图片的几种方式
- 自控原理学习笔记-反馈控制系统的动态模型(3)-开环、闭环特征模型
- Open Wifi SSID Broadcast vulnerability
- python股票网格交易法详解_我的选股方法 大家好,我是阿兰,一个将网格交易法应用于股票的人。昨天我给大家介绍了我的网格交易体系,并简单说明了我的选股方法,今天我将... - 雪球...
- sshpass报错Host key verification failed
- vue2或者vue3图片上传功能(upload)
- 微信小程序页面竖向滚动逻辑
- 宜未雨而绸缪,毋临渴而掘井。
- P6-Windows与网络基础-安装eNSP软件环境
- 华为路由器配置DHCP服务及给指定PC分配固定IP地址
- 样品制备丨艾美捷蛋白质羰基比色测定试剂盒方案
- 在自动UNDO管理情况下,如何手工增加undo段