当前位置: 首页 > news >正文

8086汇编test指令学习

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
    CF位置0
    OF位置0
    AF位是未定的,

SF位是符号位;
ZF位记录操作的结果是否是0;
PF位是奇偶校验位,如果结果低8位中1的个数是偶数,PF=1;否则PF=0;

emu8086,如下指令看一下情况,

十进制109的十六进制是6D,

 

二进制是如下,

 

标志位初始值,

 

执行完mov之后,

 

    如上执行test之后标志位都不会发生变化;SF也没变,SF是符号位;

如下的数字PF变了;

 

如下的SF变了;

 

如果是-109,SF也会变;

 

 有时间继续;

http://www.lryc.cn/news/141226.html

相关文章:

  • 简单js逆向案例(2)
  • azure data studio SQL扩展插件开发笔记
  • 【二分】搜索旋转数组
  • APSIM模型应用与参数优化、批量模拟
  • QT使用QXlsx实现对Excel sheet的相关操作 QT基础入门【Excel的操作】
  • ARM DIY(四)WiFi 调试
  • AIGC ChatGPT 实现动态多维度分析雷达图制作
  • Vue2向Vue3过度核心技术路由
  • ElasticSearch常用方法
  • nginx下添加http_ssl_module并且配置域名,指定端口
  • 【PHP】PHP变量
  • KVM创建虚拟机可访问外网+可使用Xshell等工具连接
  • 数据库——Redis 没有使用多线程?为什么不使用多线程?
  • Node.JS教程
  • mysql表锁死怎么办?事务锁sql超时被锁死怎么办?
  • 基于JSP+Servlet+mysql学生宿舍管理系统
  • Enabling Large Language Models to Generate Text with Citations
  • Qt Qml实现仪表盘动画
  • 一次PostgreSQL复杂jsonb数据矫正过程分享
  • 如何在App里拉起小程序?
  • 函数式编程-Stream流学习第二节-中间操作
  • SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
  • 无涯教程-进程 - 组会话控制
  • tomcat高可用和nginx高可用
  • 关于ios Universal Links apple-app-site-association文件 Not Found的问题
  • Objectarx MFC 添加ListControl并控制显隐
  • 2023年高教社杯数学建模思路 - 复盘:人力资源安排的最优化模型
  • SpringMVC 第二天
  • 抖音seo短视频矩阵系统源码开发源代码分享--开源-可二开
  • No message found under code ‘-1‘ for locale ‘zh_CN‘.