
汇编语言
取次花丛懒回顾
一个爱玩儿爱生活的技术宅;
毕业于上海大学通信与信息工程学院,从事流媒体和视频编解码的研究与开发工作;
研究领域包括视频编解码标准、视频处理和流媒体技术、移动互联网技术等。
展开
-
【汇编语言/底层开发】2、CPU的寄存器
寄存器是CPU中用于高速存取暂存数据的存储部件,原创 2014-07-25 16:28:24 · 1390 阅读 · 0 评论 -
理解C语言——从小菜到大神的晋级之路(4)——数据类型、运算符和表达式
一、数据类型 对数据进行处理是程序的基本功能之一,因此对于任何编程语言,数据类型都是重要组成部分之一。C语言中定义了较为完善的数据类型体系用于处理不同类型的数据。(1)标识符 C语言中的标识符可以用作变量名、富豪命、函数名、文件名等等功能。标识符可以包含字母、数字和下划线(不能以数字开头)。C语言是对大小写敏感的语言,因此组成相同但大小写原创 2015-12-23 21:53:24 · 1479 阅读 · 0 评论 -
Intel汇编指令集SSE4
1、引言Intel SSE 4指令集是当前使用广泛的汇编指令集,最初在45nm的Intel 64位处理器和AMD的K10处理器中提供。SSE4的含义是Streaming SIMD Extension 4,SIMD即单指令多数据技术(Single Instruction Multiple Data)。SSE4指令集共包含了54条指令,其中子集SSE 4.1包含了47条指令,另一个子集SSE 4.原创 2015-05-31 17:42:05 · 4930 阅读 · 0 评论 -
使用MMX/SSE汇编指令集优化视频开发
1、汇编指令集目前大部分的PC机采用的都是Intel或者AMD的CPU,其支持的多媒体汇编指令有:MMX:多媒体扩展指令(MultiMedia eXtention),该指令由Intel在1996年为Pentium处理器开发,包括了57条多媒体指令,可以i一次处理多个数据。但是MMX指令不能与X86浮点运算指令同时执行,在某些场合使用受到一定限制。SSE:SIMD扩展指令集(Stream原创 2015-05-26 17:16:52 · 6513 阅读 · 0 评论 -
【汇编语言/底层开发】8、数据处理的两个基本问题
标题中所指的两个基本问题是:(1)处理的数据在什么地方?(2)要处理的数据有多长?要使得计算机正常工作,这两个问题必须给予说明,否则无法工作。1、bx, si, di, bp这四个寄存器用于内存寻址的规则有:(1)在8086中只有这四个寄存器可以用于[]中进行内存单元寻址。也就是说,指令: mov ax, [bx]是正确的,而mov ax, [cx]是错误的。(2)在[]寻址中,这原创 2014-12-30 23:15:27 · 979 阅读 · 0 评论 -
【汇编语言/底层开发】7、更灵活的定位内存地址方法
1、[bx+idata]通常情况下,我们使用ds和[bx]指定内存中的一个内存单元。而[bx+idata]所表示的是一种更加灵活的方式来定位内存地址,其表示的是段地址为DS,偏移地址为(bx)+idata的内存位置。通常idata为一个常量,表示一个固定的地址偏移量。如下面几条指令实际上原创 2014-12-08 21:18:49 · 1200 阅读 · 0 评论 -
【汇编语言/底层开发】10、CALL和RET指令
CALL和RET指令常常用来实现子程序的设计。这两个指令同jmp、loop、jcxz等指令同属于转移指令。1、ret和retf转移指令的主要功能就是修改CS和IP或者只修改IP的内容。其中ret利用栈中的数据修改IP的内容,从而实现近转移;而retf则通过使用栈中的数据同时修改CS和IP的值,实现远转移。ret指令的作用相当于:pop IPretf指令的作用相当于:pop原创 2015-01-12 22:11:44 · 1473 阅读 · 0 评论 -
【汇编语言/底层开发】9、转移指令的原理
可以修改IP或者同时修改CS和IP的指令统称为转移指令。转移指令控制CPU执行内存中某处的代码,其作用相当于C语言中的GOTO。1、操作符Offset;2、jmp指令:jmp为无条件跳转指令,可以修改IP或同时修改CS和IP。原创 2015-01-07 22:38:44 · 1229 阅读 · 0 评论 -
【汇编语言/底层开发】6、程序中包含多个segment
众所周知的是,我们所开发的应用程序需依赖于操作系统运行,因此应用程序所使用的内存空间必须是安全的,不能与操作系统和其他应用程序相重合。因此,应用程序所需要的空间应当通过操作系统申请原创 2014-11-30 17:48:44 · 2669 阅读 · 0 评论 -
【汇编语言/底层开发】3、通过寄存器进行内存访问
上篇叙述了8086CPU的通用寄存器和代码寄存器的一些东西原创 2014-10-15 10:56:07 · 1312 阅读 · 0 评论 -
【汇编语言/底层开发】5、[BX]和loop指令
在之前编写的汇编代码中,我们经常使用到[0]、[1]等标志,原创 2014-11-18 16:37:12 · 1135 阅读 · 0 评论 -
【汇编语言/底层开发】4、使用masm编译、链接汇编源文件
0、准备工作:由于现在我们的操作系统通常都是win7或者win8,所以原创 2014-10-27 21:35:47 · 2904 阅读 · 0 评论 -
【汇编语言/底层开发】1、CPU的总线与存储器
1. 总线CPU对存储器的读写操作是通过总线完成的,原创 2014-07-09 13:39:15 · 1586 阅读 · 0 评论 -
理解C语言——从小菜到大神的晋级之路(5)——程序流程控制
C语言中的控制流语句用于决定代码中各个语句的执行顺序。通常程序的运行次序的结构有顺序结构、选择结构和循环结构。1、顺序结构在正常情况下,C程序都是从main函数的起始位置开始,按由上到下顺序执行。程序执行以语句为单位。通常一个表达式之后加一个分号“;”构成一条语句,如赋值表达式“x = 1”加一个分号就构成了赋值语句“x = 1;”。除了单条的语句之外,使用一对大括号{原创 2016-01-04 22:31:46 · 1476 阅读 · 0 评论