当前位置: 首页 > 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.wxhsa.cn/company.asp?id=4823

相关文章:

  • 西电微机原理-第五章 存储技术
  • 西电微机原理-第七章 常用接口器件
  • CF1264D1 Beautiful Bracket Sequence (easy version)
  • 西电微机原理-第六章 输入输出技术
  • 【FAQ】应用A如何使用应用B内的文件?
  • OpenStack Cinder 创建卷
  • 西电微机原理-第二章 Intel单核处理器
  • 二叉树的迭代遍历(非递归)
  • 记录---用好了 defineProps 才叫会用 Vue3,90% 的写法都错了
  • 今日流水账-2025年9月15日
  • c#给原文件重命名
  • tcpdump常用随笔
  • 2025年HR经理必备:10款高效人力资源管理软件推荐
  • GAS中GA变量数据的同步
  • 提升员工绩效的5大人才管理软件评测与分析
  • 【触想智能】工业显示屏与普通显示屏的八大区别以及应用领域分析
  • LLaVA- Improved Baselines with Visual Instruction Tuning - jack
  • 042-WEB 攻防:PHP 应用 MYSQL 架构 SQL 注入 跨库查询 文件读写 权限操作
  • Dsu On Tree 笔记
  • 西电微机原理-第一章 序论:微型计算机概述
  • Liunx 硬盘扩容
  • 船舶航向控制算法
  • pyside6 1
  • 基于WSL下载Hadoop和HBASE
  • 应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局
  • revit二次开发之 钢筋功能详细分析
  • java-wxj02
  • 停止win10自动升级操作
  • vue3 - elementPlus
  • GAS_Aura-Target Data