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

西电微机原理-第三章 Intel处理器指令系统及汇编语言(5)

目录
  • 十一、32/64位处理器拓展指令——多媒体/流媒体SIMD拓展指令集
    • MMX指令集
    • SSE/SSE2指令
      • SSE
      • SSE2
    • 总结
  • 十二、汇编语言与高级语言的接口
    • 在C语言中嵌入汇编语言代码
      • 基本方法
      • 程序举例
    • 让C语言从外部调用代码
    • 综合举例
      • 判断有符号数整数加法溢出

十一、32/64位处理器拓展指令——多媒体/流媒体SIMD拓展指令集

MMX指令集

基本介绍

Untitled

Untitled

引入8个64位处理器,处理整数计算

计算方式

Untitled

Untitled

Untitled

Untitled

  • 饱和运算可以省去程序中对于溢出的判断,加快程序的运行速度
  • 乘加运算在数字信号处理和图像处理中运算广泛(各种变换),有专门的硬件支持后可以大幅度提升计算效率

SSE/SSE2指令

SSE

引入8个128寄存器,处理单精度浮点数

Untitled

Untitled

SSE2

引入128位寄存器,既能处理整数,也能处理单双精度的浮点数

Untitled

Untitled

总结

Untitled

当寄存寄存器很大的时候,计算处理的瓶颈往往就成为装填寄存器时的内存读写,而不是cpu

所以在个人计算机上,Intel砍掉了AVX指令集,认为意义不大,但是在服务器cpu中,由于要进行大量的数学运算,AVX的作用还是很大的,所以保留

十二、汇编语言与高级语言的接口

在C语言中嵌入汇编语言代码

基本方法

Untitled

Untitled

Untitled

程序举例

两变量选大

两变量选大

对数组进行冒泡排序

对数组进行冒泡排序

SSE2指令优化程序运行速度

Untitled

Untitled

Untitled

Untitled

让C语言从外部调用代码

Untitled

汇编在编译时名字前会加下划线_ , 所以子程序模块的名字前面有下划线

汇编在编译时名字前会加下划线_ , 所以子程序模块的名字前面有下划线

为什么 ret 后面没有跟参数 12 来释放参数的堆栈空间?

Untitled

嵌入式c中主程序会负责回收汇编子程序的参数的堆栈空间

综合举例

判断有符号数整数加法溢出

Untitled

Untitled

Untitled

Untitled

http://www.rkmt.cn/news/5314.html

相关文章:

  • 西电微机原理-第五章 存储技术
  • OpenStack Cinder 创建卷
  • 西电微机原理-第二章 Intel单核处理器
  • 二叉树的迭代遍历(非递归)
  • 今日流水账-2025年9月15日
  • 2025年HR经理必备:10款高效人力资源管理软件推荐
  • GAS中GA变量数据的同步
  • 【触想智能】工业显示屏与普通显示屏的八大区别以及应用领域分析
  • 042-WEB 攻防:PHP 应用 MYSQL 架构 SQL 注入 跨库查询 文件读写 权限操作
  • Dsu On Tree 笔记
  • 船舶航向控制算法
  • 应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局
  • vue3 - elementPlus
  • wso2~对已发布api的元信息管理
  • OpenStack Cinder 架构
  • HiMarket 正式开源,为企业落地开箱即用的 AI 开放平台
  • 如何统计DrawMeshInstancedIndirect绘制物体的Triangle数据
  • 汇编语言[王爽]-12 内中断
  • 汇编语言[王爽]-01 基础知识
  • 贪心外套计数
  • PostgreSQL中级认证,PG证书官网查询
  • LLaMA-Adapter - 详解
  • 基于yolo12进行深度学习的机动车车牌检测
  • journald 持久化 + 限额脚本
  • 深入解析:PAT乙级_1125 子串与子列_Python_AC解法_含疑难点
  • 东南大学数据库课程06-Database Design
  • 东南大学数据库课程07-Distributed Database Systems
  • Xdebug安装与PhpStorm调试配置
  • 快速搞定Dify+Chrome MCP:打造能操作网页的AI助手
  • Unstable Twin - TryHackMe