CDQ 是一个让很多人感到困惑的指令。  这个指令把 EAX 的第 31 bit 复制到 EDX 的每一个 bit 上。 它大多出现在除法运算之前。它实际的作用只是把EDX的所有位都设成EAX最高位的值。也就是说,当EAX <80000000, EDX 为00000000;当EAX >= 80000000, EDX 则为FFFFFFFF。

例如 :
         假设 EAX 是 FFFFFFFB (-5) ,它的第 31 bit (最左边) 是 1,
         执行 CDQ 后, CDQ 把第 31 bit 复制至 EDX 所有 bit
         EDX 变成 FFFFFFFF
        这时候, EDX:EAX 变成 FFFFFFFF FFFFFFFB ,它是一个 64 bit 的大型数字,数值依旧是 -5。

备注:

EDX:EAX,这里表示EDX,EAX连用表示64位数


;CBW(Convert Byte to Word):             将 AL 扩展为 AX
;CWDE(Convert Word to Extended Double): 将 AX 扩展为 EAX
;CDQ(Convert Doubleword to Quadword):   将 EAX 扩展为 64 位数 EDX:EAX
;CWD(Convert Word to Doubleword):       将 AX 扩展为 DX:AX

;它们都是用符号位填充多出的空间

;它们对 EFLAGS 无影响, 也无参数

CBW、CWDE、CDQ、CWD: 扩展指令相关推荐

  1. Win32ASM学习[14]:符号扩展指令: CBW,CWDE,CDQ,CWD

    ---------------------------------------------------------------------------------------------------- ...

  2. Intel8086处理器使用NASM汇编语言实现操作系统08-关于负数的相关处理idiv/cbw/cwde/cdqu/cwd/cdq/cdo/

    很多人都知道一个有符号的数,最高位是1,则表示负数,最高位是0,则表示正数,如果假设我的CPU是4位CPU,那么对于1001这个数,是表示+9,还是表示-7呢??? 其实CPU并不关心这个数是+9还是 ...

  3. 汇编语言符号扩展指令及应用示例

    1. 什么是符号扩展?为什么要用符号扩展? 所谓符号扩展,就是将数据的表示大小加倍,数值仍保持不变,即将符号位扩展到同样大小的寄存器空间中去,由两部分构成一个比原值表示大一倍的数.正数必须要0扩展,负 ...

  4. 计算机组成原理扩展指令CLC实验报告,惠州学院-计算机组成原理实验四 含流程图...

    组合逻辑控制器实验 计算机科学系实验报告 课程名称计算机组成原理班级14软件工程一班 实验名称组合逻辑控制器实验教导教师麦山 姓名魏树杰学号1414080902132 日期2016年06月11日 一. ...

  5. RISC-V扩展指令示例

    自定义RISC-V扩展指令 要实现协处理器的设计,必然会涉及到新的指令.比如蜂鸟书籍<手把手教你设计CPU--RISC-V处理器篇>[1]第十六章中实现3*3矩阵的行列和运算时就定义了三条 ...

  6. 计算机组成原理扩展指令CLC实验报告,计算机组成原理实验设计

    计算机组成原理实验设计 (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计募机组成原理课程设计微程序实验报告姓名 :***班级 :** ...

  7. 学习笔记(符号扩展指令:SXTB和SXTH)

    前言 这些笔记主要是记录自己在学习CM3汇编中的一些问题(因为我们老师上stm32的嵌入式课是从基础汇编开始讲的,CM3汇编在网上能查到的例子讲解有点少,哭!),其中可能借鉴过网上一些大佬的文章,如果 ...

  8. 计算机组成原理实验扩展RCL指令,计算机组成原理实验五扩展指令设计.doc

    计算机组成原理实验五扩展指令设计 实验五 扩展指令设计 实验目的 1. 进一步掌握计算机组合逻辑控制器的功能.组成知识. 2. 进一步学习计算机各类典型指令的执行流程. 3. 学习组合逻辑控制器的设计 ...

  9. 计算机组成原理扩展指令CLC实验报告,计算机组成原理实验报告.doc

    计算机组成原理实验报告 计算机组成原理实习报告 本学期我们开设了计算机组成原理这门课,主要学习计算机的主要部件以及这些部件组成的原理和如何运行.除了平时的课堂学习,我们还有实验课帮助我们更好的了解这门 ...

最新文章

  1. C++实现大数的减法
  2. 转:测试部工作不受重视怎么办?
  3. 【FI】SAP ODN简介
  4. vuejs mvvm图解
  5. UML类图解义 (来自《大话设计模式》)
  6. MySQL笔记-mysql权限授权及创建用户
  7. Apicloud——关于索引列表
  8. ECMAscript6(ES6)新特性语法总结(一)
  9. Android 系统(246)---SystemServer进程的启动流程
  10. 五子棋python设计心得_python五子棋游戏的设计与实现
  11. mysql 告警 异常 处理_mysql异常解决方案 - Lock wait timeout exceeded异常
  12. QT中PRO文件写法
  13. 21点游戏java实现
  14. delphi源码分析
  15. 如何在Excel 2013中使用公式编辑器
  16. open-能连接,但无法访问内网的问题
  17. poj3104(二分判断可行性)
  18. 如何正确判断USB等接口的接线顺序
  19. 深度学习——keras教程系列基础知识
  20. uni-app项目(首页)

热门文章

  1. Python 字符串与数字之间的转换
  2. 操作系统类型:x86, x64, IA64
  3. ROS/c++常见段错误以及排查
  4. 【Selenium】获取属性
  5. 针对docker镜像save导出镜像后,新机器load导入报错问题
  6. 华为鸿蒙已经投入使用了吗,华为手机或启用鸿蒙系统!
  7. AHKC-EKA开口式霍尔电流传感器主要应用在焊机、逆变电源、电流监控行业
  8. 元宇宙:让我再忽悠你一次!
  9. 电子商务网站的另一座金矿:中小批发商(转)
  10. C++函数模板的详细讲解【函数模板的概念、用法及其模板函数的概念知识】