汇编8086的指令系统

8086的指令系统可分成6个功能组,他们是①数据传送类指令②算术运算类指令③位操作类指令④串操作类指令⑤控制转移类指令⑥处理机控制类指令 一、数据传送类指令数据传送类指令又分为:1、通用数据传送指令三条传送指令:MOV dest,src ;dest←src交换指令:XCHG reg,reg/mem ;reg←reg/mem,也可表达为:XCHG reg/mem.reg换码指令:XLAT label 或 XLAT ;al←ds:[bx+al]2、堆栈操作指令进栈指令:PUSH reg/mem/seg ;SP←sp-2,SS:[Sp]←reg/me...
汇编 | 2008-12-24 16:28 | 阅读 4279 次 | 评论 1 条

知己知彼 了解VB编写病毒的大体方法

来源: 网易博客   相信电脑界的每个人都痛恨计算机病毒,她给我们带来了很多麻烦和损失,可你知道编写病毒的方法和过程吗?在此我仅以VB编写为例,揭开她的面纱。 用VB编写病毒需要考虑到如下几点: 感染主机 首先染毒文件运行后先要判断主机是否以感染病毒,也就是判断病毒主体文件是否存在,如果不存在则将病毒主体拷贝到指定位置(如: 将病毒文件拷贝到c:\windows\system\),可用filecopy语句实现;如果病毒已感染主机则结束判断。 例如,判断C:\windows\system\Killer.exe是否存在,如果有则退出判断,如果没有则证明本机未感染病毒...
VB | 2008-12-20 21:17 | 阅读 3348 次 | 评论 0 条

VC遍历文件夹下所有文件和文件夹

void find(char *lpPath){char szFind[MAX_PATH];char szFile[MAX_PATH];CString info; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"\\*.*"); HANDLE hFind=::FindFirstFile(szFind,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) return; while(TRU...
vc | 2008-12-14 18:29 | 阅读 10398 次 | 评论 0 条

vc对注册表各数据类型操作

下面这个是基于MFC的基本对话写的。。 演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得。 void CUserRegDlg::OnOK() { // TODO: Add extra validation here CString str = "hello reg"; DWORD regd = 100; BYTE bValues[] = { 0x11, 0x12, 0x55 }; BYTE Vals[100]; DWORD lenIt = 100; HKEY hk; /...
vc | 2008-12-14 18:14 | 阅读 3397 次 | 评论 0 条

如何在VC++中使用注册表

如今修改注册表成为继超频之后的又一大热点,许多CFAN通过对注册表的修改使Win98显得更加个性化,诸多报刊杂志也纷纷扯起注册表这面旗帜,令人遗憾的是,在介绍注册表修改的众多的文章中,大都以手工修改为例,极少数文章也只介绍有关修改注册表软件的用法,至于如何在程序中实现却无人提及。为此我在Visual Studio6.0帮助文件中用Registry关键字进行搜索,在翻译软件帮助下及不断的上机实践下,我终于摸索出使用注册表接口(API)函数的一些用法,现拿出来与大家共享。  在程序中使用注册表,不外乎创建、打开、读取、设置、删除这五个常规操作,(要想获得更详细的资料可以参考Visual St...
vc | 2008-12-14 18:00 | 阅读 3877 次 | 评论 0 条

点对点语音通信

摘自CSDN论坛随着计算机网络的日益普及,人们通过网络进行交流显得越来越重要,于是出现了一系列语音通信的软件,比如NetMeeting、IPPhone、MediaRing以及VoxPhone等等,但这些软件都功能完善、相对独立,不利于集成到自己开发的软件中,有时我们也希望将这种语音通信功能集成到自己的软件中,尤其当一个单位的局域网用户分散在不同的房间时。本文给出一种灵活、简单的实现方法,采用基于对话框的方式编程,硬件上只需要一块双DMA通道的声卡(目前的声卡大多支持双DMA通道)和一支耳麦,其余全部由软件编程实现。程序在 Windows98/2000、Visual C++6.0 下编译通...

消息钩子函数入门篇

Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子的编程方法是很有必要的。 钩子的类型   一. 按事件分类,有如下的几种常用类型   (1...
vc | 2008-12-13 15:07 | 阅读 3294 次 | 评论 0 条

利用CSocket传送大型数据实现

利用CSocket传送大型数据实现 (dlutyuanhongl发表于2005-3-19 16:08:05) 传输大型文件实列 SOCKET API,98/NT/2000调试通过。C/S均建立读/写线程,一但连接,C/S便都可发送/接收文件,发送文件方式使用字节流传送。将传送文件进行分割,每次传送1K,CLIENT或SERVER方收到后进行重组。接收文件方式使用异步SOCKET,根据实际读入数据写文件。在LAN上测试,C/S多次相互传输大型文件如:IIS,SQL SP,和...

多线程编程之四——线程的同步

多线程编程之四——线程的同步作者:韩耀旭 下载源代码 八、线程的同步   虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程读取的是未完全更新的数据库,因为可能在读的时候只有一部分数据被更新过。  使隶属于同一进程的各线程协调一致地工作称为线程的...
VC++多线程 | 2008-12-11 18:50 | 阅读 3250 次 | 评论 0 条

多线程编程之三——线程间通讯

多线程编程之三——线程间通讯作者:韩耀旭 下载源代码 七、线程间通讯   一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。 使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,我们建议使用volatile 修饰符,它告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部...
VC++多线程 | 2008-12-11 18:50 | 阅读 2982 次 | 评论 0 条

多线程编程之二——MFC中的多线程开发

多线程编程之二——MFC中的多线程开发作者:韩耀旭 下载源代码 五、MFC对多线程编程的支持   MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。  工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来执行任务。  在MFC中,一般用全局函数AfxBeginThr...

多线程编程之一——问题提出

多线程编程之一——问题提出作者:韩耀旭 下载源代码 一、问题的提出 编写一个耗时的单线程程序:   新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //延时6秒 }   编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更...
VC++多线程 | 2008-12-11 18:35 | 阅读 3620 次 | 评论 0 条