Control: Condition codes

处理器状态 (x86-64, Partial)

图上的CF,ZF,SF,OF就是微机学过的状态位,其中各自代表的意思如下

Explicit Setting: Compare 指令

注意compare指令是利用减,因此对CF,OF状态位略有不同。compare用于两个数字间比较的操作

而下面的test指令只是对于一个数字的判断

Explicit Setting: Test

Reading Condition Codes

SetX操作指令

SetX这个指令按照定义是根据condition code将低位字节设置为0或者1

如上图,注意x86-64的寄存器用%al,%bl表示最低的一个字节(即低8位)

下面是一个c语言(黄色部分)对应的汇编(最下方白色)

movzbl这个指令是有点wired的!老师说上面的这个movzbl指令只是将低32位除了前8位设置为0,那么高32位的呢?

实际上x86-64机器会自动在高32位补全0!

Conditional branches

Jumping指令

jump指定是根据condition code 跳到不同地方的code

可以理解一下老师上课用的例子 先用comq将存储在寄存器中的x,y做比较,然后利用jle做jump指令。

使用conditional moves

下面是一个conditional move的例子,总的来说 condition move就是先把所有的计算都做了,然后选择一个我们所需要的结果

conditonal move的糟糕情况

Loops

第一种

第二种

第三种

Switch Statements

这部分听的我有点晕掉,以后如果工作需要用到这部分再补充吧。。

CMU 15-213 Introduction to Computer Systems学习笔记(5) Machine-Level Programming-Control相关推荐

  1. Introduction to Computer Networking学习笔记(十五):Queue Model 包交换中的缓冲模型

    本章知识点比较零散,因此一篇文章进行总结,并且不具有连贯性,仅记录自己认为有价值的内容. 将较大的包拆分为小包进行传输,可以减小端对端延迟,原因如下图: 数据传输时,突发大量的数据包会增加延迟,简单周 ...

  2. 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)

    [机器学习笔记]可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning) 目录 [机器学习笔记]可解释机器学习-学习笔记 Interpre ...

  3. CMU15-213学习笔记(六)Exceptional Control Flow

    CMU15-213学习笔记(六)Exceptional Control Flow 程序的正常执行顺序有两种: 按顺序取下一条指令执行 通过CALL/RET/Jcc/JMP等指令跳转到转移目标地址处执行 ...

  4. CS269I:Incentives in Computer Science 学习笔记 Lecture 13:Introduction to Auctions(拍卖简介)

    Lecture 13 Introduction to Auctions(拍卖简介) 1 Preamble(前言) 为什么计算机科学家要关心拍卖?直到最近(甚至可能仍然),提到拍卖,我们脑海中联想到的图 ...

  5. CS269I:Incentives in Computer Science 学习笔记 Lecture 15 The VCG Mechanism(VCG机制)

    Lecture 15 The VCG Mechanism(VCG机制) 1 GSP vs VCG 作为本讲的开始,我们来证明上一讲中的一个重要结论: 回忆一下背景:有k个广告位,它们 的点击率排布为) ...

  6. CS269I:Incentives in Computer Science 学习笔记 Lecture 12 对称信息和声誉系统

    Lecture 12 Asymmetric Information and Reputation Systems(对称信息和声誉系统) 1 Preamble(前言) 之前的几讲,我们都在声誉系统的边缘 ...

  7. Coursera 机器学习 第9章(下) Recommender Systems 学习笔记

    9.5 Predicting Movie Ratings 9.5.1 Problem Formulation 推荐系统. 推荐系统的问题表述:电影推荐.根据用户对已看过电影的打分来推测用户对其未打分的 ...

  8. CS269I:Incentives in Computer Science 学习笔记 Lecture 17 评分规则和同辈预测(诚实预报和反馈激励)

    Lecture 17 Scoring Rules and Peer Prediction(Incentivizing Honest Forecasts and Feedback)(评分规则和同辈预测( ...

  9. POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems 学习笔记

    1. 引言 Grassi等人2019年论文<POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems>. 前序博客有: ...

  10. 概率导论(Introduction to Probability, 2E)学习笔记 Part Ⅰ

    笔记内容基于Introduction to Probablity, Second Edition 因笔者为初学者,故内容不会面面俱到 若有表述错误还望直接指出 --2022.1 样本空间与概率 本书的 ...

最新文章

  1. C++排序算法实现(更新中)
  2. 计算器用户界面与业务逻辑的分离
  3. 3.3线性回归简洁实现(API的使用)
  4. 电容式传感器位移性能试验报告_一文读懂什么是接近传感器?
  5. OpenCV3与深度学习实例-使用OpenPose进行人体姿态估算
  6. 计算机考研哈理工好吗,哈尔滨理工大学考研难吗?一般要什么水平才可以进入?...
  7. 谈demo、原型、产品的区别
  8. Delphi版 熊猫烧香源码
  9. 机器学习—确定系数R2
  10. DC report_timing 报告分析(STA)
  11. 三极管-三极管仿真与参数设置:与bipolar管
  12. 8月2日 jquery
  13. 尝试使用ob的advanced slides插件,发现image显示异常
  14. 王者荣耀小游戏3.0更新完成!
  15. 20亿人数据再被盗取,波及40多个国家和地区
  16. 服务器运维浏览器,本机浏览器如何访问docker容器的内容_网站服务器运行维护,浏览器,docker...
  17. 孙悟空与秦始皇是什么关系?
  18. NET下基于OO4O,FME,ODP.NET的Oracle Spatial空间数据读取操作
  19. 快捷键个人使用积累(更新ing)
  20. 今天被公司约谈,说工作时长不够,要求每天至少11小时,不然就是态度不认真!...

热门文章

  1. 读Thinking in Java(1~4)
  2. HDOJ1003 MaxSum【逆推】
  3. 创投“黑帮”,必须的
  4. 编程人员应该忙里偷闲
  5. a星算法的优缺点_轻松理解机器学习算法:C4.5算法
  6. MyBatis中拦截器(Interceptor)实现原理分析
  7. Java线程 生产者--消费者模式总结(一)
  8. MyBatis中Mapper接口是怎么和XML文件关联起来的
  9. Redis主从架构和哨兵架构模式
  10. JavaScript 获取小数任一小数点后的位数的小数