Welcome 微信登录

首页 / 软件开发 / 汇编语言

Win32编程点滴 - 响应ActiveX控件的事件

Win32编程点滴 - 响应ActiveX控件的事件

Win32编程点滴 - 响应ActiveX控件的事件2010-01-10 cnblogs Greatest在最近的一篇文章中说到了,如何创建ActiveX,这次我们来响应事件。这次,我们将创建一个类:CGeneralEventSink,它能够响应任何Dispatch事件(事件的接口继承与IDispatch)。首先,我 们来回顾一下ConnectionPoint的概念。任何支持事件的对象(比如,ActiveX控件),都支持 IConnectionPointC...
内联汇编基础知识

内联汇编基础知识

内联汇编基础知识2010-11-02释雪几天看了孙原等几位仁兄关于的几篇文章,颇感兴趣。于是查了查98版的MSDN中,其中也有几篇关于内联汇编的基础,索引字是asm。讲得不算太难,于是试着将其内容写下来了,特此贴来。一、内联汇编简述Visual C++ 6.0编译器下,内联汇编可以使用所有的Intel486处理器指令集。而且可以对目标处理器建立起伪指令来实现附加指令功能。内联汇编可以使用MASM编译器所允许的表达式,其中的一些表达式可以通过操作符和操作数的...
关于c与汇编混合编程的一点总结

关于c与汇编混合编程的一点总结

关于c与汇编混合编程的一点总结2010-11-24在C和汇编混合编程的时候,存在C语言和汇编语言的变量以及函数的接口问题。在C程序中定义的变量,编译为.asm文件后,都被放进了.bss区,而且变量名的前面都带了一个下划线。在C程序中定义的函数,编译后在函数名前也带了一个下划线。例如:extern int num就会变成 .bss _num, 1extern float nums[5]就会变成.bss _nums, 5extern void func ( )...
从汇编入手,探究泛型的性能问题

从汇编入手,探究泛型的性能问题

从汇编入手,探究泛型的性能问题2012-09-29 博客园 老赵经过了《泛型真的会降低性能吗?》一文中的性能测试,已经从实际入手,从 测试数据上证明了泛型不会降低程序效率。只是还是有几位朋友谈到,“普遍认 为”泛型的代码性能会略差一些,也有朋友正在进一步寻找泛型性能略差的证据 。老赵认为这种探究问题的方式非常值得提倡。不过,老赵忽然想到,如果从能 从汇编入手,证明非泛型和泛型的代码之间没有性能差距——好吧,或...
使用WinDbg获得托管方法的汇编代码

使用WinDbg获得托管方法的汇编代码

使用WinDbg获得托管方法的汇编代码2012-09-29 博客园 老赵这是一个没有多大价值的小实验,对于大家了解.NET编程等方面几乎没有任何 好处,尽管老赵一直强调“基础”,例如扎实的算法和数据结构能力,并且对一 些必要的支持,例如操作系统,计算机体系结构,计算机网络有足够的了解,拥 有“常识”,在需要的时候有足够的能力去深入了解便可;但是对于还有一些科 目,例如“编译原理”,它虽...
汇编基础:标志寄存器

汇编基础:标志寄存器

汇编基础:标志寄存器2013-05-28Intel 8086/8088CPU设置了一个16位的标志寄存器,用来反映微处理器的当前状态和某些控制,标志寄存器中有9个标志位,分为两大类:状态标志(CF, PF, AF, ZF, SF, OF)和控制标志(TF, IF, DF),状态标志由CPU根据运算结果自动设置,用来反映CPU的执行单元EU执行算术运算或逻辑运算后的结果特征,这些特征常用来影响或者是控制某些后续指令的执行,控制标志由系统程序或者用户程序用指令...
汇编基础:程序返回操作系统

汇编基础:程序返回操作系统

汇编基础:程序返回操作系统2013-05-28上一篇聊了下汇编的伪指令,本人也是学汇编没多长时间,所以难免有些不对的地方,如果你在阅读过程中发现了错误,还希望不辞吝教呀,这一篇我们一起来看看汇编语言的程序返回操作系统这部分是怎么实现的。我们都知道,汇编语言源程序要进过汇编和连接两个步骤才能生成一个可以在DOS下直接执行的.exe文件,在DOS下执行这个文件时,DOS像调用子程序一样,把控制权交给它,而这个exe文件执行完成后也要像子程序返回调用程序一样返回...
汇编基础:寻址方式

汇编基础:寻址方式

汇编基础:寻址方式2013-05-28紧接着上一篇我们的标志寄存器,这一篇我大致概括下计算机的寻址方式,因为自己在汇编上也不是知道很多,所以难免有错误之处,还希望高手拍砖。希望这一系列文章能为大家学习汇编提供一个平台。首先还是说下指令操作数,Intel 8086/8088CPU的指令系统中锁需操作数有以下4种:(1)寄存器操作数:操作数在CPU的通用寄存器或段寄存器中(2)立即数操作数:操作数在指令中直接给出(3)存储器操作数:操作数在存储器的存储单元中(...
汇编基础:顺序、分支与循环程序设计

汇编基础:顺序、分支与循环程序设计

汇编基础:顺序、分支与循环程序设计2013-05-28一个算法用程序设计语言的语句有序地组合在一起加以描述,其组合方式称为程序的控制结构或简称为程序结构。程序的基本结构形式有顺序结构、分支结构和循环结构。一、顺序结构顺序结构是最简单的,也是最基本的程序结构形式,这种结构形式的程序的最大特点就是程序运行时从开始到结尾一直是按照编写指令的顺序执行,且每条指令仅执行一次,具有顺序结构的程序或者程序段,成为顺序程序。我们拿一个简单的程序来说明汇编的顺序程序设计。例...
汇编基础:进制转换和串的操作

汇编基础:进制转换和串的操作

汇编基础:进制转换和串的操作2013-05-28代码转换是计算机应用中常见问题,计算机内部职能进行二进制的运算,而输入设备提供的是数和字符的ASCII码形式。所以必须把ASCII码形式表达的十进制数或其他进制数转换成二进制数。同样,当数据处理结束后,也需要进行相应的转换,将二进制码转换为输出需要的ASCII码或者十进制数给显示器。这一节我就说说关于进制的转换。一、十六进制ASCII码与二进制数之间的转换首先我们将十六个字符所在的区域分成 3部分,分别是区域...
汇编基础:跳转指令

汇编基础:跳转指令

汇编基础:跳转指令2013-05-28汇编中的跳转指令从大体上分为无条件转移指令和条件转移指令。下面就围绕着这两个大的方面来探究下汇编语言的跳转指令。一、无条件转移指令无条件转移指令JMP将无条件地转移到指令的目的地址去执行指令,因此JMP指令必须指定转移的目标地址无条件转移指令可以分为两类:段内跳转和段间跳转,段内转移是指在同一段的范围内运行转移。此时转移指令将改变IP寄存器的值,即用新的转移目标地址代替原有的IP寄存器的值来实现转移,因此,此时的目标地...
汇编基础:伪指令

汇编基础:伪指令

汇编基础:伪指令2013-05-28弄懂了前面几篇关于基础的文章,下面就开始我们真正的汇编之旅了,在这一篇中我们着重来强调下汇编语言的伪指令。伪指令是汇编语言程序设计中的一个主要的部分,属于控制命令,在汇编语言中的数据定义、存储单元分配、指示程序结果等功能。首先,我想很多人对伪指令语句与指令语句的区别不是太清楚吧,两者的区别在于:伪指令由汇编程序解释后完成相应的操作,会变厚不产生目标机器代码,进过汇编后的目标程序中,伪指令码已经不复存在。指令语句由汇编程序...
汇编基础:中断

汇编基础:中断

汇编基础:中断2013-05-28中断是计算机输入输出程序设计常用的控制方式,有一点计算机操作系统基础的人对这个词一定不会陌生,中断控制技术主要应用在以下几个方面:1、及时处理计算机中突发故障,比如说突然断电、执行指令时溢出内存故障等等,2、协调主机与外设工作速度的矛盾3、在实时控制系统中,及时处理各控制点的现场一、中断源及中断类型码引起中断的原因叫做中断源,8086/8088 CPU最多可以处理256种类型的中断,这些中断可来自CPU内部的原因,也可来自...
汇编基础:子程序设计

汇编基础:子程序设计

汇编基础:子程序设计2013-05-28在我的上一篇博文中,我简单的向大家介绍了汇编语言程序设计的三种基本方式。在一个程序中的不同地方,常常需要多次非循环的使用完成特定功能的程序段,这些程序段除了某些变量的赋值不同外,具有相同的指令序列,这时,我们为了减少重复编写程序,缩短目标代码,节省内存空间,把视线这一功能的指令序列组成一个相对独立的程序段。这也就是我们这片文章中所要讨论的子程序。子程序相当于高级语言(比如C语言)中的过程和函数,在汇编语言中子程序也称...
ARM汇编程序:C语言调用ARM汇编实现字符串的拷贝

ARM汇编程序:C语言调用ARM汇编实现字符串的拷贝

ARM汇编程序:C语言调用ARM汇编实现字符串的拷贝2013-05-28简单的实现将一个字符串复制到另外一个字符数组中。拷贝功能在ARM中实现。C语言调用汇编实现。C语言代码:主要注意要将汇编中的函数导入进来。其余很简单!我这样赋值方便以后调试的时侯方便。#include <stdio.h>extern void strcopy(char *d, const char *s);int main(int argc, char *argv[]){c...
ARM汇编实现简单的加法运算

ARM汇编实现简单的加法运算

ARM汇编实现简单的加法运算2013-05-28对于初学者来说,这个程序还是能学到很多东西的。另外,对要学汇编的同学说一句,就算是选修课做作业,也不要觉得几行就写完很容易,光在纸上写,实际运行的时候语法问题上还是很多的。我做这个作业用的是Keil的RealView MDK测试,ARM9平台。 题目:将内存中从0x400800开始的100个字数据相加,其结果存于R3、R2中(R3中为高32位)。 分析:看起来很简单有木有!!假象啊,假象,一上手才知道涉及到很...
<< 11 12 13 14 15 16 17 18 19 20 >>