C++ 汇编
fantasy_arch
这个作者很懒,什么都没留下…
展开
-
1.4 编译驱动器
编译 驱动器原创 2023-03-25 00:37:49 · 295 阅读 · 1 评论 -
重定位和代码修改
链接 重定位 修改代码原创 2023-03-24 00:14:33 · 218 阅读 · 0 评论 -
1.3.2 目标代码库
链接器原创 2023-03-23 23:06:15 · 104 阅读 · 0 评论 -
hevc 四叉树划分
hevc 块划分原创 2022-11-18 08:34:51 · 310 阅读 · 0 评论 -
hevc AMVP模式
AMVP原创 2022-11-16 23:34:58 · 482 阅读 · 0 评论 -
x265 一次失败的优化case
x265 simd原创 2022-11-09 14:29:47 · 340 阅读 · 0 评论 -
gdb调试汇编打印寄存器内容和指向的内容
gdb 汇编原创 2022-11-02 16:33:40 · 1330 阅读 · 0 评论 -
x264中哈德玛变换simd汇编实现
x264 哈德玛变换 汇编 simd原创 2022-09-14 17:45:45 · 852 阅读 · 0 评论 -
x264中的nr实现
x264 汇编原创 2022-09-13 16:53:13 · 327 阅读 · 0 评论 -
C++反汇编
反汇编,向量寄存器优化原创 2022-08-07 09:33:59 · 783 阅读 · 0 评论 -
nasm avx256实现一个点积运算
点积 汇编 simd原创 2022-07-29 17:32:36 · 351 阅读 · 0 评论 -
nasm 宏参数macro
汇编 宏 参数原创 2022-07-08 18:23:35 · 446 阅读 · 0 评论 -
nasm计算sad 计算
汇编 计算 SAD原创 2022-07-01 11:29:47 · 340 阅读 · 0 评论 -
nasm 用xmm寄存器做矩阵相加溢出了如何处理?
汇编,矩阵,相加原创 2022-06-29 11:23:05 · 335 阅读 · 0 评论 -
x264 pass 2缓存文件的使用
e += sscanf( p, " in:%*d out:%*d type:%c dur:%"SCNd64" cpbdur:%"SCNd64" q:%f aq:%f tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%c",&pict_type, &rce->i_duration, &rce->i_cpb_duration, &qp_rc, &qp_aq, &rce-&g...原创 2022-04-28 10:39:30 · 277 阅读 · 0 评论 -
x264 me_search代码trick
以DIA搜索为例,从代码逻辑上看,就是先从一个起始位置,然后不断的逼近最佳的cost的mv,起始位置已经在函数前面运算的candidate中选择了最佳的存入到了bcost的低4bits。但是这里的m偏移值运算 +1, +3, +4 +12就有点令人费解了。我们就来分析下这几个数值是如何得到的?先列出二进制1 013 114 10012 1100每次搜索4个方向,坐标分别为 (-1, 0) (1, 0) (0, -1) (0, 1)x是高2bit ,y是低2bit原创 2021-12-23 11:44:39 · 432 阅读 · 0 评论 -
C++多态到底是什么?
书上讲在面向对象语言中,对于接口的不同实现方式称之为多态。多态性时允许将父类对象设置成为一个或者多个他的子类对象相等的技术一般用指针实现,赋值之后,父类对象可以根据当前赋值给他的子类对象的特性以不同方式进行调用。那么上面说的是怎么做到的呢?我们看下面这个代码#include <stdio.h>#include <stdint.h>static int body = 0;class Base{public: Base() { ...原创 2021-12-18 10:48:46 · 1514 阅读 · 0 评论 -
nasm汇编求平均数
GLOBAL mainextern atoiextern printfdefault relSECTION .textmain:dec rdi ;argc-1, since we dont count program namejz nothingToAveragemov [count], rdi ;save number of real argumentsaccumulate:push rdi ;push rsi ;mov rdi, [rsi+rdi*8.原创 2021-10-22 16:47:59 · 170 阅读 · 0 评论 -
nasm汇编处理输入参数
GLOBAL mainextern putsSECTION .textmain:push rdi;save registers that puts uses 保存参数个数push rsi; 保存参数字符串指针数组,sub rsp, 8; must align stack before call 进入函数的时候,call 保留了下一条指令到栈里面mov rdi, [rsi]; the augument string todisplay 字符串指针数组首地址 存入r...原创 2021-10-21 15:20:07 · 523 阅读 · 0 评论 -
C语言调用汇编
汇编函数GLOBAL maxofthreeSECTION .textmaxofthree:mov rax, rdi;result rax initially holds xcmp rax, rsicmovl rax, rsi; if cmp result is ture, than mov rsi, to raxcmp rax, rdxcmovl rax, rdxret全局符号 maxofthreeC代码#include <stdio.h>原创 2021-10-21 11:18:54 · 342 阅读 · 0 评论 -
用ltrace坑了自己
这些天有SRE告警说我的进程总是长时间占用满一个CPU核心,然后给我拉进一个告警群。一旦发现告警我就上机器看看。 坚守了一些天,好家伙,终于出现了。 一顿操作,登录机器,然后top,我的进程果然跑满了单个核,我的进程是做rtc混流的,都是编解码,混音,视频拼接的运算。视频编码是有fpp的,不太应该占满单核。数据帧也不会无穷无尽,奇了怪了。于是ltrace一把?看到的调用栈是一些线程操作。好像没看出来啥,于是退出ltrace。 退出后发现ubuntu的appro...原创 2021-04-20 09:39:06 · 529 阅读 · 0 评论 -
C++返回局部引用异常过程分析
std::vector<int>&& Ref(){std::vector<int> iv;iv.push_back(1);iv.push_back(1);iv.push_back(1);iv.push_back(1);return std::move(iv);}std::vector<int> iq = Ref()...原创 2019-09-09 10:21:00 · 307 阅读 · 0 评论 -
C++编程特性-1通过protected类型重写public
#include <stdio.h>class A{public: A(){printf("cons A %d..\n",GetValue());} virtual ~A(){} virtual int GetValue(){return 0;}};class B:public A{public: B(){} virtual ~B...原创 2018-12-25 16:35:46 · 721 阅读 · 0 评论 -
C++中的对象返回
一 何为返回值一个函数有返回值类型声明,比如int,char,int*,char*,struct xxxx 等。在函数执行结束的末尾,需要显示的写代码return xxx与函数声明的返回值类型相同。二 普通返回值类型int,char,int*,char*,float* 等。这种返回值类型都是直接通过eax寄存器返回的,返回值的生命周期,显然就是与eax寄存器的值是否有被原创 2018-03-22 08:58:11 · 681 阅读 · 0 评论