![](https://img-blog.csdnimg.cn/7df87838724f4203831ff8ac4e04b6fb.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【X86/ARM汇编优化】
文章平均质量分 78
本专栏主要包括不同架构平台的汇编优化方法,包括x86/arm/mips架构,以及GPU优化等,通过本专栏的学习可以熟悉不同架构平台(尤其X86汇编和ARM汇编)的使用方法。当前已经包括一些高质量的总结文章,后面会一直更新。
(1)订阅博主就能看博主将近1000篇文章;
(2)专栏文章全是绝对干货!
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
飞翔的鲲
一名音视频领域coder,喜欢深入钻研各种新技术(编解码、图像处理、算法优化等),擅长Matlab,Python,C编程。
CSDN明星博主,认证博客专家,视频、Matlab领域优质创作者。目前专注于音视频编解码和AI技术领域,开源分享,不忘初心,追求卓越!
欢迎订阅我的付费专栏,每篇都是博主的多年工作经验总结和呕心之作,任何问题都可以私信博主,必给您答疑解惑!希望我的博文可以帮助到你~
展开
-
【优化系列】X86优化之Intrinsic汇编方法
DATE: 2020.9.5文章目录参考1、SSE Intrisic based on x861.1 指令集对应的位数1.2 指令集intrinsic对应的头文件2、 数据类型2.1 数据类型的转换3、 intrinsic函数命名4、示例5、附录5.1 Latency and Throughput参考x86架构intrinsic优化1、SSE Intrisic based on x86 x86架构下的优化有多种手段,常见的有纯汇编优化、inline汇编、Intrinsic优化。前两种原创 2020-09-05 22:20:21 · 1032 阅读 · 0 评论 -
【优化系列】X86优化之纯汇编优化方法
DATE:2020.2.17 【Tags: CPU优化、X86汇编优化、纯汇编优化】1、参考2、快速入门知识3、x86架构指令集的寄存器4、x86架构指令集的调用规则5、x86架构指令集纯汇编优化demo6、x86架构指令集优化方法7、x86架构指令集使用注意事项原创 2020-02-17 20:46:12 · 1270 阅读 · 0 评论 -
【优化系列】arm32位和arm64位架构、寄存器和指令差异分析总结
最近三个月的时间,都在进行解码库的arm架构汇编优化,包括arm32位汇编优化和arm64位汇编优化。在arm32位入门之后,只要掌握了两种架构的寄存器和指令集差异之后,就可以很快上手编写arm64位汇编代码了。下面就arm32位和arm64位架构、寄存器和指令差异进行分析总结。原创 2018-09-21 18:00:54 · 21016 阅读 · 0 评论 -
【优化系列】arm架构64位(AArch64)汇编优化总结
Date: 2018.9.13文章目录1、参考2、前言3、arm架构64位优化基础知识4、ARMv8/AArch64 neon指令格式5、ARM相关编译参数6、查看状态标记位NZCV的方法7、A64指令集特有的指令及其用法8、资料文档查阅9、优化经验总结(满满的干货)1、参考https://blog.csdn.net/SoaringLee_fighting/article/details/81906495https://blog.csdn.net/SoaringLee_fighting/artic原创 2018-09-13 17:13:07 · 6474 阅读 · 2 评论 -
【优化系列】arm架构32位汇编优化总结
Date: 2018.8.18文章目录1、参考:2、Arm汇编架构和Reference Manuals3、Arm32位寄存器4、ARM指令寻址方式5、ARM指令特点以及优化技巧6、ARM和NEON指令集 常用指令汇总7、Arm32位加载数据的两种格式8、Arm32位汇编编写demo9、注意事项10、汇编优化基本准则11、ARM程序调试1、参考:ARM参考手册【arm】arm优化基本知识(寄存器、指令集、调用规则以及汇编格式)【arm】ARM寄存器以及使用说明【arm】arm的汇编指令及特点【原创 2018-08-18 15:35:08 · 2157 阅读 · 0 评论 -
【优化系列】ARM汇编——矩阵转置操作
【代码】【优化系列】ARM汇编——矩阵转置操作。原创 2024-03-10 16:58:21 · 68 阅读 · 0 评论 -
【优化系列】汇编语言中常见的标志位: CF, PF, AF, ZF, SF,TF,IF,DF, OF
2.IF(中断允许标志位):用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求,当IF=1时,CPU响应CPU外部的可屏蔽中断发出的中断请求,当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。6.OF(溢出标志位):用于反映有符号数加减运算所得结果是否溢出,如果运算结果超过当前运算位数表示的范围,则为溢出,OF=1,否则,OF=0。2.PF(奇偶标志位):用于反映运算结果中“1”的个数的奇偶性,如果“1”的个数为偶数,则PF=1,否则,PF=0。注意:DF的值是由程序员进行设定的。转载 2023-08-25 16:03:21 · 7090 阅读 · 0 评论 -
【优化系列】Intrinsics头文件与SIMD指令集、Visual Studio版本对应表
VisualStudio:Visual Studio版本名。VS:Visual Studio版本号。File:Intrinsics头文件。转载 2023-06-03 14:24:53 · 282 阅读 · 0 评论 -
【优化系列】ARM NEON与X86 SSE的互相转换
Intel的CPU和ARM的CPU都有SIMD指令,可以完成CPU 指令级的并行化。这里边主要涉及CPU的汇编的知识和一些寄存器的知识。在一些耗时的SLAM优化迭代的场合,经常出现这样的指令的优化。SSE是Intel x86架构CPU的SIMD指令的简称,NEON是ARM CPU的SIMD指令的简称。本文主要介绍如何从X86 SSE Intrinsic转换为ARM NEON Intrinsic,以及ARM NEON Intrinsic转换为X86 SSE Intrinsics。原创 2023-03-24 11:48:32 · 821 阅读 · 0 评论 -
【汇编优化系列】Armv9-A构架引入可伸缩矩阵扩展(SME)
Date: 2022.2.13文章目录前言前言ARM架构新技术:Armv9-A 构架引入可伸缩矩阵扩展(SME)原文链接:https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/scalable-matrix-extension-armv9-a-architecture...原创 2022-02-13 21:29:15 · 1294 阅读 · 0 评论 -
【开源项目/工程化系列】X86&ARM汇编优化模板: AssemblySample
DATE: 2020.9.14文章目录1、参考2、目的3、README4、开源地址1、参考【优化系列】X86架构汇编优化系列汇总【ARM系列】ARM NEON汇编优化系列汇总2、目的该模板主要用于快速入门X86 MMX/SSE/AVX/AVX2/AVX512汇编和ARM NEON汇编优化方法,主要包括了X86/ARM纯汇编优化方法、X86/ARM Intrinsic汇编优化方法和X86 Inline汇编优化方法。这个sample也是自己对X86和ARM汇编优化这方面知识的技术总结。3、RE原创 2020-09-16 15:28:17 · 505 阅读 · 0 评论 -
【优化系列】X86优化之GCC 内联汇编
DATE: 2019.1.6文章目录1、参考2、Gcc内联汇编2.1 概览2.2 GCC汇编语法2.3 基本内联2.4 扩展汇编1、参考最牛X的GCC 内联汇编GCC 内联汇编 HOWTO 内联汇编在不同平台下编译的注意事项2、Gcc内联汇编2.1 概览在这里,我们将学习 GCC 内联汇编。这里内联表示的是什么呢?我们可以要求编译器将一个函数的代码插入到调用者代码中函数被实际调用的地方。这样的函数就是内联函数。这听起来和宏差不多?这两者确实有相似之处。内联函数的优点是什么呢?这种内原创 2019-01-06 22:14:47 · 548 阅读 · 0 评论 -
【优化系列】ARM优化之Intrinsic汇编方法
DATE: 2020.9.16文章目录1、参考2、前言3、入门知识4、arm intrinsic头及编译方法5、arm intrinsic数据类型及指令介绍6、指令查找手册1、参考【arm】arm neon intrinsic方式编写arm32位汇编2、前言3、入门知识4、arm intrinsic头及编译方法http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s04s02.html Introd原创 2020-09-16 16:51:55 · 1029 阅读 · 0 评论 -
【优化系列】ARM优化之内联汇编(inline)优化方法
DATE: 2020.10.1文章目录前言1、系列总结2、参考3、ARM内联汇编优化方法前言前面博客里面已经总结了ARM纯汇编优化和Intrinsic优化方法,如下:【arm】arm架构32位汇编优化总结 ,【arm】arm架构64位(AArch64)汇编优化总结【优化系列】ARM优化之Intrinsic汇编方法本文主要讲解ARM内联汇编arm inline的编写方法和注意事项。1、系列总结【ARM系列】ARM NEON汇编优化系列汇总2、参考ARM GCC的内联汇编详解 (ARM原创 2020-10-01 11:19:13 · 914 阅读 · 0 评论 -
【Web/优化系列】WebAssembly(wasm) SIMD优化
DATE: 2021.6.6文章目录1、Wasm simd优化方法1.1 编译器优化选项1.2、缺陷和行为差异1.3、Chrome开启SIMD支持1.4、Wasm simd头文件1.5、Wasm 128bit SIMD扩展2、wasm优化测试demo3、Wasm Intrinsic优化基础3.1、主要Intrinsics函数1、Wasm simd优化方法参考:https://emscripten.org/docs/porting/simd.htmlhttps://github.com/WebA原创 2021-06-06 23:17:56 · 1381 阅读 · 0 评论 -
【优化系列】MIPS架构汇编优化总结
DATE: 2021.8.10文章目录1、参考2、MIPS介绍和设计理念2.1、介绍2.2、设计理念3、MIPS体系架构4、MIPS汇编基础4.1、MIPS SIMD架构(MSA)4.2、MIPS数据类型4.3、MIPS指令格式4.4、MIPS指令风格4.5、MIPS寄存器4.5.1、MIPS32寄存器1、参考【优化系列】MIPS架构汇编优化资料2、MIPS介绍和设计理念2.1、介绍1981年,斯坦福大学教授Hennessy领导团队,设计出第一个MIPS架构的处理器。1984年,Hennes原创 2021-08-06 18:08:09 · 501 阅读 · 0 评论 -
【优化系列】MIPS架构汇编优化资料
DATE: 2021.8.3文章目录前言1、MIPS介绍2、MIPS汇编入门基础3、MIPS汇编优化手册3.1、中文手册3.2、英文手册3.3、Loongson 3A 优化前言在学习MIPS架构汇编过程中,搜集了下面这些资料,总体上国内MIPS相关资料不是很完整,还是主要参考指令手册进行学习,传送门:MIPS架构汇编优化总结1、MIPS介绍MIPS架构-维基百科2、MIPS汇编入门基础MIPS 汇编指令学习MIPS架构及其汇编初步【汇编语言与计算机系统结构笔记17】MIPS 汇编初步【原创 2021-08-03 17:59:07 · 261 阅读 · 0 评论 -
【arm】arm32汇编编写示例demo
Date: 2018.7.22原创 2018-07-22 21:00:49 · 1303 阅读 · 0 评论 -
【arm】arm架构64位入门基础:架构分析、寄存器、调用规则、指令集、程序调试以及参考手册
Date: 2018.8.211、参考https://developer.arm.com/products/architecture/instruction-sets2、ARM64位架构分析ARM64位采用ARMv8架构,64位操作长度,对应处理器有Cortex-A53、Cortex-A57、Cortex-A73、iphones的A7和A8等。AARCH64是全新32位...原创 2018-08-22 15:24:22 · 8523 阅读 · 0 评论 -
【Tools系列】MIPS汇编器和运行模拟器:MARS安装和使用
DATE: 2021.8.11文章目录1、参考2、MARS简介3、MARS安装和使用3.1、安装3.2、使用1、参考MARS(MIPS汇编程序和运行时模拟器)MIPS汇编器和运行模拟器:Mars入门操作Mars 模拟器编写 mips32 汇编 的入门教程2、MARS简介官方网站: http://courses.missouristate.edu/KenVollmar/MARS/MARS is a lightweight interactive development environmen原创 2021-08-11 18:07:58 · 3236 阅读 · 0 评论 -
【优化系列】详解龙芯LoongArch指令集架构
DATE: 2021.8.5文章目录1、参考2、龙芯介绍3、龙芯相关资料4、LoongArch架构1、参考详解龙芯LoongArch指令集架构2、龙芯介绍龙芯–维基百科【优化系列】龙芯loongson简介3、龙芯相关资料龙芯官网: 首页 (loongson.cn)龙芯社区: https://github.com/loongson/LoongArch-Documentation龙芯及MIPS相关资料 https://www.linuxdiyf.com/view_124256.html4原创 2021-08-05 13:59:12 · 3377 阅读 · 0 评论 -
【汇编优化系列】x264中x86inc.asm使用说明
DATE: 2021.7.12文章目录1、前言2、一些重要宏和功能的解析2.1、%ifnidn2.2、cglobal2.3、INIT_XMM/INIT_YMM2.4、SWAP2.5、PALIGNR1、前言在x264工程中,x86汇编优化有个公共汇编头文件"x86inc.asm",该文件的作用是实现不同平台参数和规则的统一。这个是由于x86纯汇编在不同平台之间(win32,win64,linux)的调用规则和参数使用是不同的,所以引入了这个公共汇编头。2、一些重要宏和功能的解析2.1、%ifnid原创 2021-07-12 15:41:00 · 506 阅读 · 0 评论 -
【优化系列】x86汇编优化(一):高级汇编指令
DATE: 2020.9.1文章目录参考1、提取指令:VPERM2F1282、插入指令:pinsrd3、未完待续....参考How can I exchange the low 128 bits and high 128 bits in a 256 bit AVX (YMM) register1、提取指令:VPERM2F128该指令可以实现交换YMM寄存器中低128位和高128位。Synopsis__m256 _mm256_permute2f128_ps (__m256 a, __m256原创 2020-09-02 13:53:32 · 583 阅读 · 7 评论 -
【优化系列】x86asm汇编优化demo
DATE: 2020.6.131、参考【优化系列】X86优化之纯汇编优化方法2、x86 assembly demox86纯汇编:SSE2指令集2.1 demo.cdemo.c如下:#include <stdio.h>#include <stdlib.h>#include <time.h>#include "os_time_sdk.h"#define CLIP(x) (x>255? 255: x<0? 0:x)void x264_p原创 2020-06-13 13:52:20 · 692 阅读 · 0 评论 -
【优化系列】x86内联汇编demo
Date: 2018.6.13 created by soaringleeDate: 2020.9.18 created by soaringlee1、参考内联汇编基础学习GNU C 内联汇编介绍gnu-gcc-insert-asm2、x86内联汇编基础知识【优化系列】X86优化之GCC 内联汇编3、x86内联汇编demo在C代码中内嵌汇编代码的方法,举例如下:3.1 加法操作...原创 2018-07-22 20:17:04 · 372 阅读 · 0 评论 -
【优化系列】X86优化之Intrinsic汇编demo
DATE: 2020.9.5文章目录1、Demo的C代码2、X86 Intrinsic代码1、Demo的C代码// 计算当前图像的梯度图int generateGradientImage(unsigned char *Src, unsigned char *Dst, int Width, int Height, int Stride){ unsigned int gradX = 0; unsigned int gradY = 0; unsigned char * dstImage =原创 2020-09-05 20:22:43 · 359 阅读 · 0 评论 -
【arm】arm neon intrinsic方式编写arm32位汇编
Date: 2018.9.221、c、arm32和intrinsic方式对比int a = 32; // c codevdup.32 d0, r0 // arm32 assembly codeint32x2_t a1=vdup_n_s32(a); // intrinsic assembly code2、 数组相加Intrinsic方式下同种数据类型之间进行运算,可采用类似C的...原创 2018-09-22 14:00:06 · 1035 阅读 · 0 评论 -
【优化系列】C程序调用x86汇编程序的方法
DATE: 2020.6.30本文目录1、参考2、C函数调用x86汇编函数2.1、新建main.c C文件2.2、新建add.asm汇编文件2.3、汇编文件编译方法1、参考【优化系列】x86asm汇编优化demo【汇编优化】之x86汇编与C相互调用2、C函数调用x86汇编函数C函数调用x86纯汇编实现简单的加法:例如add(2,3);2.1、新建main.c C文件#include<stdio.h>#include<stdlib.h> extern int a原创 2020-06-30 13:57:07 · 1429 阅读 · 2 评论 -
【优化系列】VS与YASM的集成使用
DATE: 2020.8.18文章目录1、参考2、VS与YASM集成使用1、参考VC与YASM的集成【PE/vs】Visual Studio自定义生成工具配置方法和相关vs系统变量含义【asm】汇编器yasm使用说明2、VS与YASM集成使用在vs2013中集成yasm过程中遇到不能汇编的问题,特将yasm配置方法记录下来。报错信息如下:error MSB6006: “cmd.exe”已退出,代码为 1。1、yasm下载网址:http://yasm.tortall.net/Down原创 2020-08-18 10:25:33 · 737 阅读 · 0 评论 -
【视频处理系列】图像转置的汇编优化
DATE: 2020.7.19文章目录1、参考2、图像转置算法3、转置算法的汇编优化3.1 ARM/AARCH64优化3.2 X86 SSE2/AVX2优化1、参考C语言实现BMP图像处理(逆时针旋转90度)SSE图像算法优化系列四:图像转置的SSE优化(支持8位、24位、32位),提速4-6倍图像算法的工程优化技术2、图像转置算法来自ffmpeg:void libavsample_transpose_c(unsigned char *dst, unsigned char *src, in原创 2020-07-19 23:03:50 · 391 阅读 · 0 评论 -
【arm】常见函数调用约定(x86、x64、arm、arm64)
Date: 2018.9.201、X86 函数调用约定X86 有三种常用调用约定,cdecl(C规范)/stdcall(WinAPI默认)/fastcall 函数调用约定。详细可参考:函数调用协议__cdecl,__fastcall,__stdcall。其中:Cdecl调用规范:参数从右往左一次入栈,调用者实现栈平衡,返回值存放在 EAX 中。stdcall调用规范:参数从右往左一...原创 2018-09-20 19:58:18 · 1758 阅读 · 0 评论 -
【arm】系统架构AArch64简介
###Date:2017-12-24转载自:http://blog.csdn.net/rd_w_csdn/article/details/53841018查看Android设备的CPU架构信息,可以使用下列命令来完成:1、adb shell 2、cat /proc/cpuinfo➜ ~ adb shellshell@hennessy:/ $ cat /proc/c...转载 2017-12-24 15:47:40 · 22251 阅读 · 0 评论 -
【优化系列】汇编指令movdqa与movdqu的区别
Date: 2018.6.11参考:https://blog.csdn.net/u011019337/article/details/9260257 介绍两条移动双四字数据的指令: MOVDQA - 移动对齐的双四字 将双四字从源操作数(第二个操作数)移到目标操作数(第一个操作数)。此指令可以用于在 XMM 寄存器与 128 位内存位置之间移入/移出双四字,或是在两个...原创 2018-06-11 19:27:33 · 4236 阅读 · 0 评论 -
【Optimization】SSE指令集学习:Compiler Intrinsic
Date: 2018.6.11SSE指令集学习:Compiler Intrinsic1、参考: https://www.cnblogs.com/wangguchangqing/p/5466301.html https://blog.csdn.net/brookicv/article/details/522950432、Intrinsic Optimization大多数的函数是在库中,Intrins...转载 2018-06-11 19:49:18 · 528 阅读 · 0 评论 -
【Optimizaiton/x86】x86 SSE Intrinsic: 点乘算法的Intrinsic实现
Date: 2018.6.12https://blog.csdn.net/liujiayu2/article/details/39964813 https://blog.csdn.net/u010839382/article/details/52743664 https://www.cnblogs.com/iamkevin/p/7194255.html https://blog.cs...原创 2018-07-22 20:14:29 · 378 阅读 · 0 评论 -
【Optimizaition/x86】Intel CPU的CPUID指令获取的C实现
https://www.cnblogs.com/DxSoft/articles/5053954.html https://blog.csdn.net/listener51/article/details/80299003 https://blog.csdn.net/sxf_zero/article/details/590171 https://blog.csdn.net/jamesliuly...原创 2018-07-22 11:09:51 · 623 阅读 · 0 评论 -
【优化系列】常用SSE Intrinsic指令总结
Date: 2018.6.13https://www.cnblogs.com/zhengjianhong/p/7879367.html https://www.cnblogs.com/dragon2012/p/5200698.html https://blog.csdn.net/ww506772362/article/details/41825215原创 2018-06-16 17:43:03 · 1358 阅读 · 0 评论 -
【Optimization】X86汇编快速入门
Date: 2018.6.16转载自: https://www.cnblogs.com/YukiJohnson/archive/2012/10/27/2741836.html本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令、逻辑计算指令、算数运算指令),以及函数的调用规则。个人认为:在理解了本文后,基本可以无障碍...原创 2018-06-16 15:29:34 · 327 阅读 · 0 评论 -
【arm】arm优化基本知识(寄存器、指令集、调用规则以及汇编格式)
https://blog.csdn.net/guanchanghui/article/details/1669513 https://developer.arm.com/products/architecture/a-profile/docs/den0018/a https://developer.arm.com/technologies/neon https://blog.csdn.net...原创 2018-07-01 23:07:20 · 1370 阅读 · 0 评论 -
【Optimization】ARM的寻址方式(详细)
Date: 2018.6.22转载自:https://blog.csdn.net/dongdong0071/article/details/52043985-------------------------------------------------------------------------------------------------------------------------A...转载 2018-06-22 10:24:00 · 649 阅读 · 2 评论