
assembly language
飞翔2017
毕业于北京邮电大学硕士研究生,有超过13年流媒体技术研究和团队管理经验,先后就职于爱奇艺,大智慧股份直播事业部,曾经是波罗蜜创业合伙人之一。对视频直播行业的技术和商业模式都有深入研究,能快速搭建视频直播平台,多款用户数超亿的视频app创造者。能负责公司团队技术积累,流媒体技术研究,对VR, AR等最新流行技术也有深入研究。利用多种开源代码快速搭建视频直播系统。
展开
-
汇编伪指令总结
汇编伪指令总结段定义伪指令 段定义伪指令是表示一个段开始和结束的命令,80x86有两种段定义的方式:完整段定义和简化段定义,分别使用不同的段定义伪指令来表示各种段。 1 完整的段定义伪指令 完整段定义伪指令的格式如下: 段名 SEGMENT . . . 段名 ENDS 段名由用户命名。对于数据段、附加段和堆原创 2012-08-14 11:25:40 · 4473 阅读 · 0 评论 -
Intel英特尔历代经典 CPU 产品回顾
悉数历史 英特尔历代经典 CPU 产品回顾从英特尔于 1971 年推出首款 4004 微处理器到现在, 英特尔处理器已经走过 了 40 个年头。在告别 13 年传奇品牌奔腾之后,我们又迎来新一代酷睿 i 双核处 理器。现在,我们就来回顾一下英特尔处理器 40 年来的发展历程。 1971 年:4004 微处理器 4004 是英特尔推出的第一款微处理器。这一突破性的发明最先应用于 Busicom原创 2012-08-30 14:48:11 · 17004 阅读 · 0 评论 -
AMD公司的灵魂Athlon产品回忆录
在CPU领域里的竞争,AMD与Intel从来就没有停止过,AMD也并没有如几年前人们所料想的那样被Intel压着打,反而步步紧逼Intel做出了种种不得以的决策。从AMD第一块CPU芯片开始,就已经发动了对Intel的猛烈进攻。 Athlon已不仅是一款处理器名称,而成为AMD公司的灵魂。这是一个沿用了8年而不朽的称谓,它见证了AMD由受人摆布到走向成熟,见证了AMD与Intel 历原创 2012-08-30 14:58:23 · 7858 阅读 · 0 评论 -
X86汇编与VS2008混合编程--仅供入门学习参考
X86汇编与VS2008混合编程--仅供入门学习参考 汇编文件保存为扩展名*.asm,把汇编文件加入VS工程,点击文件右键,进入 编译选项 把属性中tool 选项 修改为Custom Build Tool然后填写如下选项内容:command line: yasm -I..\..\common\x86\ -f win32 -O2 -DPREFIX -o "$(IntDir)\$(原创 2012-08-13 16:42:54 · 3529 阅读 · 0 评论 -
准备踏入IT编程的学子们,你们第一门编程语言选谁? Are You Ready? Go!
Are You Ready? Go!——第一门编程语言选谁?金旭亮 说明: 这篇文章是专门针对大学低年级学生(和其他软件开发初学者)写的,如果你己经是研究生或本科高年级学生,请将这篇文章转发给你的师弟或师妹,希望这篇文章能够帮助他们少走弯路,顺利地迈入软件开发的大门;如果您是一位有经验的软件开发者,或者是关注计算机教育的同行,也敬请提出宝贵意见。原创 2012-09-14 11:03:08 · 4589 阅读 · 2 评论 -
12年8月编程语言排行榜:C语言领衔称霸 Objective-C语言强势爬升
TIOBE 于 8 月 11 日公布了 8 月份编程语言排行榜,C 语言继 5 月份超过 Java 之后,已经占据榜单冠军之位 4 个月,而且份额还在继续再增加,展现出长期称霸的冠军像 。Java、C++的份额持续下滑,Objective-C 稳步上升,代表 iOS 开发方兴未艾。PHP 上个月下滑到第七位,这个月又回到第六位,与第七位的 VB 显得比较胶着。其他语言变化不大。 Obje原创 2012-09-21 09:20:11 · 3216 阅读 · 1 评论 -
8086 CPU 寄存器简介
引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像 CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里说明一下,本篇博文介绍的原创 2012-08-14 10:03:39 · 1504 阅读 · 2 评论 -
程序优化总结--万变不离其宗
程序优化总结--万变不离其宗空间优化, 时间优化.目前我们就在PC上,所以主要目标是时间优化.第一步: 算法结构层面的优化. 搞懂算法,从宏观层面优化结构,能在一个层面做的事情,尽量合并一起做!... 第二步: C语言层面的优化. 从函数,语言层面优化程序!1.减少内存访问!2.合并运算!3.空间换时间!4.循环原创 2012-12-12 16:56:14 · 2862 阅读 · 2 评论 -
矩阵转置的SSE汇编优化艺术以及ARM cortext 汇编优化
平时我们做图像处理或者视频处理, 很多地方会用到矩阵转置:比如: DCT变换, 图像旋转, 图像滤波, 以及一些数据的内存行和列的交换等, 会大量使用转置这个动作.然而由于数据量很大,处理速度很慢!如何来提高处理速度呢?下面看看分析: HEVC中有个地方是如下这样实现(直接行和列对应的位置交换): Pel tmp; for (k=0;k<blkSize原创 2012-12-27 09:19:45 · 7988 阅读 · 9 评论 -
Intrinsics头文件与SIMD指令集、Visual Studio版本对应表!
Intrinsics头文件与SIMD指令集、Visual Studio版本对应表! File描述VSVisualStudiointrin.hAll Architectures8.02005mmintrin.hMMX intrinsics原创 2012-12-14 15:42:39 · 3302 阅读 · 2 评论 -
IA-64位微处理器及其编程
ADM64架构概述一、AMD64架构引入以下新的特征。1)、寄存寄存器的扩展。 。8个新的通用寄存器(GPR) 。所有的16个GPR都是64位字宽 。8个新的128位XMM寄存器 。对于所有的GPR都用统一的字节寄存器寻址 。访问扩展寄存器的64位指令前缀2)、长模式 。升到64位虚拟地址(最大支持) 。64位指令指原创 2012-08-23 13:29:48 · 3101 阅读 · 0 评论 -
基于SSE指令集的程序设计简介
SSE技术简介 Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编写汇编代码就可直接使用SSE指令的功能。MSDN中有关SSE技术的主题[1]有可能会使不熟悉使用SSE汇编指令编程的初学者感到困原创 2012-08-23 10:25:32 · 1792 阅读 · 0 评论 -
开博首篇
开博首篇 经过这么多年在IT界发展,个人编程技能和音视频的相关知识也日益深厚,发现很多东西也是可以记录下来,方便自己和大家查看,分享项目经验和人生经历,毕竟有些事情或者经验教训,如果不及时记录下来,这些很有价值的东西会随着时间的增长慢慢的从记忆中消失! 本博客主要关注: 1. 各种视频压缩标准(MPEG2, MPEG4, H261/2/3/4,X264原创 2012-06-27 19:44:16 · 3335 阅读 · 3 评论 -
汇编程序开发环境搭配
引子由于这些日子一直都在研究底层的技术,从 Windows 驱动程序,到 Windows 内核等等技术的学习,让我对底层的技术越发有兴趣了,而刚好,在研究 WRK 时,对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,所以越发的想学习汇编程序设计来提升功力,而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看,所以只好晚上回来学习了,原创 2012-08-14 09:49:58 · 1401 阅读 · 0 评论 -
8086指令总结
一、数据传送指令指令名称汇编语句格式功能影响标志位传送move datamov opd, ops(ops) → opd;分为主存储器、通用寄存器、段寄存器,不可同时使用主存储器,类型要匹配:byte,word,dword无带符号扩充的传送move with sign-extendmovsx原创 2012-08-14 10:46:09 · 5247 阅读 · 0 评论 -
函数命名规则及调用约定(__cdecl,__stdcall,__fastcall)
函数命名规则及调用约定(__cdecl,__stdcall,__fastcall)__cdecl是C/C++和MFC程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码原创 2012-08-29 08:52:06 · 1677 阅读 · 0 评论 -
AT&T与Intel汇编语言的比较
AT&T与Intel汇编语言的比较 我们知道,Linux是Unix家族的一员,尽管Linux的历史不长,但与其相关的很多事情都发源于Unix。就Linux所使用的386汇编语言而言,它也是起源于Unix。Unix最初是为PDP-11开发的,曾先后被移植到VAX及68000系列的处理器上,这些处理器上的汇编语言都采用的是AT&T的指令格式。当Unix被移植到i386时,自然也就采用了AT&T原创 2012-08-29 09:51:47 · 1641 阅读 · 0 评论 -
Linux 汇编语言开发指南 Intel 格式--AT&T 格式
一、简介 简介作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地原创 2012-08-20 10:47:55 · 3068 阅读 · 0 评论 -
RISC、CISC、 SIMD、FPU、MMX、SSE、SSEX、AVX、3D Now以及DSP、ARM的Neon简介
CPU的指令集从主流的体系结构上分为精简指令集和复杂指令集,而在普通的计算机处理器基本上是使用的复杂指令集。在计算机早期的发展过程中,CPU中的指令集是没有划分类型的,而是都将各种程序需要相配合的指令集成到CPU中,但是随着科技的进步,计算机的功能也越来越强大,计算机内部的元件也越来越多,而且越来越复杂,CPU的指令也相应的变得十分复杂,而在使用过程中,并不是每一条指令都要完全被执行,在技术人员的原创 2012-08-30 15:29:28 · 13611 阅读 · 0 评论 -
汇编中参数的传递和堆栈修正
在 Win32汇编中,我们经常要和 Api 打交道,另外也会常常使用自己编制的类似于 Api 的带参数的子程序,本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代原创 2012-08-21 11:37:46 · 1410 阅读 · 0 评论 -
Visual C 中 Inline ASM 内联汇编的使用
一、 优点 使用内联汇编可以在 C/C++ 代码中嵌入汇编语言指令,而且不需要额外的汇编和连接步骤。在 Visual C++ 中,内联汇编是内置的编译器,因此不需要配置诸如 MASM 一类的独立汇编工具。这里,我们就以 Visual Studio .NET 2003 为背景,介绍在 Visual C++ 中使用内联汇的相关知识(如果是早期的版本,可能会有些许出入)。 内联汇编代原创 2012-08-23 08:51:33 · 3148 阅读 · 0 评论 -
Windows下编译最新的x264
Windows下编译最新的x264 X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的。x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了。原创 2013-12-12 14:35:39 · 3083 阅读 · 1 评论