Intel base instruction -- cmove

Conditional Move;以操作码(条件码)区分不同的移动条件。

opcode 以 0F 4* 打头;

    /*509a:    eb 0b                    jmp    50a7 <__sprintf_chk@plt+0x2937>
    509c:    0f 1f 40 00              nopl   0x0(%rax)*/
    for (i = 0; i < 8; i++) {

    /*50a0:    48 8b 03                 mov    (%rbx),%rax      // rax=gvar_8ba0[1]="ipc"
    50a3:    48 83 c3 08              add    $0x8,%rbx        // rbx=gvar_8ba0[2]

    50a7:    48 83 ec 08              sub    $0x8,%rsp        // 0x7fffffff9548
    50ab:    b9 32 00 00 00           mov    $0x32,%ecx       // ecx=0x32
    50b0:    41 89 e9                 mov    %ebp,%r9d        // r9d=ebp=pid
    50b3:    4c 89 ff                 mov    %r15,%rdi        // rdi=buff
    50b6:    50                       push   %rax             // 0x7fffffff9540:0x000055555555a117, 此为传参
    50b7:    4c 8d 05 60 10 00 00     lea    0x1060(%rip),%r8        # 611e <_IO_stdin_used@@Base+0x11e>  // "/proc/%i/ns/%s"
    50be:    ba 01 00 00 00           mov    $0x1,%edx        // edx=1
    50c3:    31 c0                    xor    %eax,%eax        // eax=0
    50c5:    be 32 00 00 00           mov    $0x32,%esi       // esi=32
    50ca:    e8 21 d3 ff ff           callq  23f0 <__snprintf_chk@plt>*/
        sprintf(buff, "/proc/%i/ns/%s", temp->pid, gvar_8ba0[i]);

    /*50cf:    4c 89 f2                 mov    %r14,%rdx        // rdx=r14=st
    50d2:    4c 89 fe                 mov    %r15,%rsi        // buff="/proc/1/ns/cgroup"
    50d5:    bf 01 00 00 00           mov    $0x1,%edi        // edi
    50da:    e8 41 d5 ff ff           callq  2620 <__xstat@plt>*/
        if (__xstat(1, buff, &st)) {
            temp->ns[i] = 0;
            continue;
        }

    /*50df:    5a                       pop    %rdx             // rdx=0x000055555555a117, rsp=0x7fffffff9548
    50e0:    59                       pop    %rcx             // rcx=0x555555559025, rsp=0x7fffffff9550
    50e1:    85 c0                    test   %eax,%eax
    50e3:    b8 00 00 00 00           mov    $0x0,%eax
    50e8:    48 0f 44 44 24 08        cmove  0x8(%rsp),%rax   // rsp+0x8=0x7fffffff9558, cmove:Move if equal (ZF=1)
    50ee:    49 83 c5 08              add    $0x8,%r13        // r13=temp->ns[1], temp->ns[2], ...
    50f2:    49 89 45 f8              mov    %rax,-0x8(%r13)*/// temp->ns[1] = rax
        temp->ns[i] = st.st_ino;    // __xstat返回值eax为零时才执行,不为零时继续for循环,此处隐含了上面的 continue 语句。

    /*50f6:    48 8d 05 db 3a 00 00     lea    0x3adb(%rip),%rax        # 8bd8 <_IO_stdin_used@@Base+0x2bd8>    rax=gvar_8ba0[1]
    50fd:    48 39 c3                 cmp    %rax,%rbx        // 8bd8-8ba0=0x38, 0x38/8=7
    5100:    75 9e                    jne    50a0 <__sprintf_chk@plt+0x2930>*/
    }   /* for (i = 0; i < 8; i++) end */

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

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

相关文章

TIM(Timer)简介

TIM&#xff08;Timer&#xff09;定时器介绍 定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元&#xff0c;在72MHz计数时钟下可以实现最大59.65s的定时不仅具备基本的定时中断功能&#xff0c;而且…

maven的下载以及配置的详细教程(附网盘下载地址)

文章目录 下载配置IDEA内部使用配置 下载 1.百度网盘下载 链接: https://pan.baidu.com/s/1LD9wOMFalLL49XUscU4qnQ?pwd1234 提取码: 1234 2.解压即可 配置 1.打开安装文件下conf下的settings.xml文件&#xff0c;我的如下 2.修改配置信息&#xff08;目的是为了修改本地…

【Fiddler抓包工具】第五节.安卓、IOS抓包+fildder插件

文章目录 前言一、HTTPS抓包 1.1 HTTPS与HTTP区别 1.2 HTTPS抓包设置过程 1.3 错误解决方法 1.4 验证证书是否安装成功 1.5 Firefox HTTPS请求捕获二、IOS设备APP抓包 2.1 APP抓包Fiddler设置 2.2 APP抓包IOS设备设置 2.3 And…

【Redis】 关于 Redis 集合类型

文章目录 &#x1f343;前言&#x1f333;普通命令&#x1f6a9;sadd&#x1f6a9;smembers&#x1f6a9;sismember&#x1f6a9;scard&#x1f6a9;spop&#x1f6a9;smove&#x1f6a9;srem &#x1f332;集合间操作&#x1f6a9;sinter&#x1f6a9;sinterstore&#x1f6a9…

C# --- 浮点数类型 float, double, decimal

C# --- 浮点数类型 float, double, decimal float, double, decimaldecimal float, double, decimal decimal double 和 float 的采用base 2, 不能精确的表示浮点数, 进行加减乘除的操作的时候会出现精度丢失的问题decimal 采用base 10&#xff0c;可以精确的表示浮点数&#x…

客户体验:电子元器件商城配送满意度调查

背景介绍 电子元器件商城为了提升配送服务质量&#xff0c;决定开展配送满意度调查&#xff0c;以了解客户对配送服务的评价和意见。通过客户的反馈&#xff0c;商城将进一步优化配送流程&#xff0c;提高客户满意度&#xff0c;增强市场竞争力。 调查内容 配送时效性&#xf…

linux 之dma_buf (4)- mmap

一、前言 前面几篇都是在 kernel space 对 dma-buf 进行访问的&#xff0c;本篇我们将一起来学习&#xff0c;如何在 user space 访问 dma-buf。当然&#xff0c;user space 访问 dma-buf 也属于 CPU Access 的一种。 二、mmap 为了方便应用程序能直接在用户空间读写 dma-bu…

nbcio-vue升级迁移flowable到最新的jeeg-boot-vue3的问题记录(一)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、vue3 jeeg-boot-vue3新版本的流程定义的页面&#xff0c;刷新出现下面问题&#xff0c;或第一次进去也一样 看着好像就一个警告的信息&#xff0c;不知道是什么原因引起的&#xff0c;应…

111.二叉树的最小深度

给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最小深度 2. 思路&#xff1a; 后序遍历&#xff08;左右中&#xff…

深入理解 Nginx Concat 模块:示例、安装和使用方法

Nginx 是一个高性能的开源 Web 服务器,广泛用于构建可靠的 Web 应用程序和服务。其中的 Concat 模块为用户提供了在服务器端快速合并和传输多个文件的能力,从而提高了网页加载速度和性能。在本文中,我们将深入探讨 Nginx Concat 模块的安装、示例以及使用场景。 什么是 Ngi…

【设计模式深度剖析】【5】【结构型】【桥接模式】| 以电视和遥控器为例加深理解

&#x1f448;️上一篇:组合模式 设计模式-专栏&#x1f448;️ 目 录 桥接模式(Bridge Pattern)定义英文原话是&#xff1a;直译理解 4个角色UML类图代码示例 应用优点缺点使用场景 示例解析&#xff1a;电视和遥控器UML类图 桥接模式(Bridge Pattern) 定义 英文原话是&am…

band对应频段列表(2G、4G、5G)

5G BAND对应频段 n1:2.1G n3:1.8 n5:850 n8:900 n28:700 n41:2.6G n77:3.3G n78:3.5G n79:4.9G n257、258、260&#xff1a;毫米波频段(26G&#xff0c;28G,39G) 4G BAND对应频段 Band1:2.1G–上行1920-1980 MHz&#xff0c;下行2110-2170 MHz Band3:1.8G–上行1710-1785 MH…

CC工具箱使用指南:【淹没区分析(BHM)】

一、简介 群友定制工具。 这个工具适用面比较小。 工具的应用场景如下&#xff1a; 提供一个淹没区范围&#xff0c;类型是面要素。统计这个范围内的一些线、面要素的面积或长度。 给定的几个数据有&#xff1a;耕地、永久基本农田、房台、道路&#xff08;线&#xff09;…

基于Docker搭建属于你的CC++集成编译环境

常常&#xff0c;我会幻想着拥有一个随时可以携带、随时可以使用的开发环境&#xff0c;那该是多么美好的事情。 在工作中&#xff0c;编译环境的复杂性常常让我头疼不已。稍有不慎&#xff0c;删除了一些关键文件&#xff0c;整个编译链就会瞬间崩溃。更糟糕的是&#xff0c;…

【Go语言入门学习笔记】Part6.包和两个几乎用不到的小Tip

一、前言 这个文章简单了写了一下包、init函数、匿名函数。 二、学习代码 1.包 package packTestimport "fmt"func init() { //如果主函数引用了这个包&#xff0c;主函数执行的时候会先执行包的initfmt.Println("hello world") }func Add(num1 int, num…

如何保养和维护气膜体育馆—轻空间

随着经济的飞速发展&#xff0c;气膜体育馆以其新颖的外观、优美的造型、节能环保的特点&#xff0c;迅速进入体育市场。然而&#xff0c;对于气膜体育馆的维护和保养是不容忽视的问题&#xff0c;必须引起重视。下面我们将详细介绍气膜体育馆的维护需要从哪些方面着手。 一、保…

公路行业交通工程乙级资质的动态考核要点

技术人员保持与更新&#xff1a; 核查技术人员的在职状态、专业资格证书的有效性&#xff0c;以及新增或离职技术人员的情况&#xff0c;确保关键岗位人员的稳定性和资质要求的持续达标。评估技术人员的专业发展&#xff0c;包括继续教育、培训和参与专业活动的情况&#xff0c…

【电路笔记】-状态可变滤波器

状态可变滤波器 文章目录 状态可变滤波器1、概述2、**状态可变滤波器电路**3、状态可变滤波器示例4、陷波滤波器设计5、总结状态可变滤波器是一种多反馈滤波器电路,可以从同一单个有源滤波器设计中同时产生所有三种滤波器响应:低通、高通和带通。 1、概述 状态可变滤波器使用…

基于Java+SpringBoot+Mybaties-plus+Vue+elememt + uniapp 新闻资讯 的设计与实现

一.项目介绍 本系统分为 后端 和 小程序端 后端&#xff1a;点击登录按钮 设置个人中心、 管理员账号数据维护、 基础数据维护、 短视频信息维护(包括查看短视频留言、短视频收藏)、 论坛维护(增删改查帖子信息&#xff0c;包括查…

Rabbit MQ学习之《基础概念》

Message Queue 1 什么是MQ MQ(message queue)&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是message而已&#xff0c;同时是一种跨进程的通信机制&#xff0c;用于上下游传递消息。 在互联网架构中&#xff0c;MQ 是一种非常常见的…