汇编教程的任务状态段和控制门
每个任务有个任务状态段TSS用于保存任务有关信息在任务内变换特权级和任务切换时要用到这些信息为了控制任务内发生特权级变换转移为了控制任务切换般要通过控制门进行这些转移本文将介绍任务状态段和控制门 系统段描述符 系统段是为了实现存储管理机制所使用种特别段在80386中有两种系统段:任务状态段TSS和局部描述符表LDT段用于描述系统段描述符称为系统段描述符 1.系统段描述符格式 系统段描述符般格式... [阅读全文]
汇编教程的控制转移(1)
控制转移基本上可分为两大类:同任务内控制转移和任务间控制转移(任务切换)同任务内控制转移又可分为:段内转移、特权级不变段间转移和特权级变换段间转移段内转移和实模式下相似不涉及特权级变换和任务切换只有段间转移才涉及特权级变换和任务切换本文介绍保护方式下控制转移重点是任务内特权级变换和任务间切换任务内无特权级变换转移 各种段内转移和实模式下相似当然不涉及特权级变换和任务切换只有各种形式段间转移才涉及... [阅读全文]
api详解:API参数介绍说明符前缀详解
使用MASM写Windows其实就是和Windows API打交道而个人是不可能记住所有API使用方法所以API参考手册是必不可少API参考手册中原型是按匈牙利表示法表示下面这个表就是API原型中那些前缀详细解释希望对初学者有帮助 资料来源:MicroSoft MSDN Platform SDK 参考 a Array b BOOL () ... [阅读全文]
dos重定向:5个DOS专用文件的6种io重定向 more实现管道原理
1. 重定向 以下a.asm,用含t及回车13txt,仿command.com,依masm命令行arg符号值N,(如masm /Darg=0 a;),实现5个DOS打开专用文件(STD_)6种io重定向: N=0:是STDIN句柄,先bin方式读1符,再从txt输t到char N=1:是STDOUT句柄,输出char1到txt N=2:是STDERR句柄,输出char2到txt N=30... [阅读全文]
c语言编程实例:汇编语言编程例子一
汇编语言编程例子这章,我们要把我们已学知识集合起来具体来讲,我们来写个使用ODBC APIs.为简单起见,这个中我使用MicrosoftAccess数据库(Microsoft Access 97) . 下载例子源. 注意:如果你使用windows.inc 是1.18及其以下版本,在开始编译的前要修改其中个小bug.在windows.inc中查找 "SQL_NULL_HANDLE"将得到下面这行... [阅读全文]
pqmagic分区:仿FDISK及PQMAGIC列出分区逻辑盘符的prw.asm实现1
FDISK,系98FDISK.EXE(512M模式运行) PQMAGIC,系POWER QUEST公司PQMAGIC.EXE(DOS版,7) 本文基于486DX2,主板,可带primary/secondary两IDE控制器,中断14/15,每个IDE,可带master,slave两通道,每个通道,可带1台硬盘驱动器,每台驱动器,可带1块NORMAL,LBA,LARGE模式IDE硬盘. DOS... [阅读全文]
虚拟设备:汇编教程的虚拟设备驱动程序初步
在本教程里我假定读者对诸如虚8086模式调页GDT,LDT,IDT的类INTEL 80x86保护模式操作比较熟悉如果你不了解这些那你要先在 http://developer.el.com/design/pentium/manuals/阅读INTEL文档 内容: Windows95是个运行在最高级特权第0层级别多线程操作系统所有应用都运行在最低级特权第3层级别上这样就限制了应用对系统操作它们不能... [阅读全文]
pqmagic分区:仿FDISK及PQMAGIC列出分区逻辑盘符的prw.asm实现2
mov ax,bp div extblk mov fcbsz[si],al 标占分区表项号 mov al,kbd1 mov logidrv,al inc kbd1 Call Show dospri6:inc dl ;读下块硬盘 jmp dospri0 dospri7:ret dospri endp p... [阅读全文]
虚拟设备:汇编教程的虚拟设备驱动程序结构
现在大家对vmm和vxd有了定了解接下来我们来看看如何编写vxd代码首先你必须具备Windows 95/98 Device Driver Development KitWindow95 ddk只有MSDN 订户才能拿到但Windows98 ddk却可以免费从Microsoft公司取得尽管Windows 98 ddk是面向WDM但你还是可以用它来开发VxD你可以从 http://www.micros... [阅读全文]
虚拟机任务管理器:汇编教程的虚拟机管理器
虚拟机管理器(VMM)是Windows 95实际操作系统它建立和维护个管理虚拟机框架同时为其他vxd提供许多重要服务其中 3种重要服务是: 内存管理 中断处理 线程调度 内存管理 VMM使用Intel 80386或更新处理器内存调页能力来为系统虚拟机创建个32位虚地址空间它把这个地址空间分为 4个区别部分: V86区 地址从0H到10FFEFH这个区属于当前执行虚拟机 应用私有区地址... [阅读全文]
消息框:VxD例程的消息框
在上节教程里我们讲了编写个VxD思路方法现在我们要学以致用在这节里我们要编写个静态VxD这个静态VxD在个虚拟机创建或销毁时就会弹出个消息框 在这里下载例子 捕获虚拟机创建和结束事件 当个虚拟机创建时VMM发送Create_VM控制消息给所有VxD当个虚拟机退出时它也发送VM_Terminate和VM_Terminate2消息给所有VxD我们工作很简单:在设备控制里处理Create_VM a... [阅读全文]
vxd程序设计入门:汇编教程的VxD程序设计入门
我们在上节学会了如何编写个什么事也不做VxD在这节里我们要给它增加处理控制消息功能 VxD化和结束 VxD分为两种:静态和动态每种加载思路方法都区别接受到化和结束控制消息也区别 静态VxD: 下列情况下VMM加载个静态VxD: 个实模式常驻通过中断2FH1605H,来此VxD 此VxD在注册表中如下位置有定义: HKEY_LOCAL_MACHINE\\CurrentControlSe... [阅读全文]
deviceiocontrol:DeviceIoControl接口
在这节中我们将要有关学习动态VXD特别是如何创建加载和使用 点击这里下载例子 VxD接口 VxD总共提供了4种接口 l VxD services VxD服务 l V86 Interface V86接口 l Protected-mode (PM) Interface 保护模式接口 l Win32 DeviceIoControl Interface Win32设备输入输出控制接口 我们... [阅读全文]
非驻留:驻留exe文件
运行重定位exe文件,重定位因子调度覆盖模块,链接器3制静态覆盖块,析栈startup (1) X86汇编语言组,段,类 伪指令group/segment,定义组/段,这使: (1.1) 同组各段,处于同64k空间 (1.2) 段可声明对齐,组合,类可选属性: (1.2.1) 段首,能对齐到BYTE,WORD,PARA(16字节),PAGE(256字节),缺省对齐到PARA. (1.2... [阅读全文]
动态时间:动态库的执行时间
此文章是针对怜香系列专题教程"从DOS到Win32"中第8篇文章后续,读此文的前请先阅读怜香文章. 当中引用了动态库后WINDOWS是先远行呢?还是先加载动态库呢? 为了搞清这个问题我们将MyDLL.ASM和10.ASM稍作修改如下: ;MyDLL.ASM;例:将EDX:EAX中值转换成十进制输出形式串;文件名:MyDll.asm这是动态链接库源 ;编译模式="DLL" .3... [阅读全文]
矛与盾:矛和盾的较量——CRC原理篇
上节我们介绍了花指令不过花指令毕竟是种很简单东西基本上入了门Cracker都可以对付得了所以我们很有必要给自己软件Software加上更好保护CRC校验就是其中种不错思路方法 CRC是什么东西呢?其实我们大家都不应该会对它陌生回忆下?你用过RAR和ZIP等压缩软件Software吗?它们是不是常常会给你个恼人“CRC校验”信息呢?我想你应该明白了吧CRC就是块数据计算值它... [阅读全文]
shell函数:请求执行时间段和Shell函数
请求执行时间段通常被简称为"appy time"是指当系统VM稳定到充许VxDs和ring-3级别应用软件Software(特别是16-bit应用软件Software)交互时时间段例如在个特定时间段VxDs能加载并在16-bit Dlls中这个appy time在Windows 3.x中是无效在Windows3.x个VxD能包含在16-bit DLLs中任意地址并模拟个远到这个地址然而造成了VMM... [阅读全文]
cpu寄存器体系结构:汇编教程的客户寄存器结构
我们将学习本教程中另外个重要结构叫客户寄存器结构在本文中V86指虚拟8086模式在这里下载例子 理论 VxDs和正常win32/win16/DOS应用有很大区别大多数情况下当其他应用正常工作时它们是休眠它们象个监管者样工作其作用是监视ring-3应用并在其出错时改正它们下面是其工作时典型情况: 1、中断发生时 2、VMM得到控制权时 3、VMM存贮寄存器组值时 4、VMM服务于中断或其... [阅读全文]
debug命令:DEBUG命令详解
Debug:A(汇编) 直接将 8086/8087/8088 记忆码合并到内存 该命令从汇编语言语句创建可执行机器码所有数值都是十 6进制格式必须按到 4个输入这些数值在引用操作代码(操作码)前指定前缀记忆码 a [address] 参数 address 指定键入汇编语言指令位置对 address 使用十 6进制值并键入不以“h”结尾每个值如果不指定地址a 将在... [阅读全文]
mdi文档:汇编教程的多文档界面(MDI)
本教程告诉你怎样创建MDI应用.事实上并不是很困难.下载例子. 理论: 多文档界面(MDI)是同时刻处理多个文档应用个规范标准. 你很熟悉记事本.它是单文档界面(SDI)个例子.记事本在个时候只能处理个文档.假如你希望打开另个文档,你首先必须关闭你前面打开那个.你可以想象这有多麻烦. 和Microsoft Word相比:Word可以随心所欲在同时刻打开任意多个文档,而且可以让用户选择使用哪个文... [阅读全文]
汇编教程的列表视图Control控件
本课中我们将学习如何创建和使用列表视图Control控件 理论: 列表视图Control控件和树型视图、丰富文本编辑Control控件样是通用Control控件种可能您都已经知道了列表视图Control控件只不过是不知道它确切名字而已列表视图Control控件可以用来很好地显示项目在这方面它和列表框相同只不过它性能更强 有两种思路方法创建个列表视图Control控件第种也是最简单思路方法是:... [阅读全文]
Windows下程序的反汇编
下编写经编译链接的后就可用debug等调试工具调试执行也能看到反汇编结果这很便于理解“汇编指令”是如何翻译成“机器指令”对Windows这样工具有很多像SoftICE、TRW、W32dasm、IDA、Hiew等这里准备谈下W32dasm ;=;例:取命令行参数并显示到消息框中;文件名:6.asm .386 .model flat,std... [阅读全文]
windows控制台:Windows下控制台输出
控制台输出就象dos下输出可不是图形界面象ping/ipconfig/ftp等命令都是这类 回忆过去在dos下进行文件操作时常用到“文件把柄”概念使用文件把柄操作时非常方便操作时只要知道把柄号就可以而不用操心文件位置dos下设备也都有自己专用把柄这些把柄是: 0000H 标准输入设备 (stdin) 0001H 标准输出设备 (stdout) 0002H 标准设备 ... [阅读全文]
odbc教程:汇编教程的ODBC基础
这是使用 win32asm进行数据库编程系列第份教程在如今IT界数据库编程变越来越重要所以我们不能再忽视它但如今有很多种数据库在使用如果我们为了实现win32下数据库汇编语言编程而学习各种数据库文件格式所花时间大概称得上“永恒” 幸运是Microsoft项技术使得我们得以摆脱这个大麻烦它被称为ODBC是开放式数据库互连(Open Database Connectivity... [阅读全文]
高级语言:汇编语言的高级语言特性
现在写汇编语言就象写结构化高级语言样非常方便不信?你看看下面写小就知道啦没有跳转完全结构化设计最后还附有 Glow Glove 整理总结小篇文章供大家学习参考 ;-------------------------------------------------------;例:计算个数据阶乘;若结果较小可放在 EAX 寄存器;若结果较小可放在 EDX:EAX 寄存器;文件名:7.asm .... [阅读全文]
数据源连接方式:汇编教程的连接数据源
本教程中我们将学习使用ODBC APIs细节. 我们并不和ODBC驱动直接通信而是通过ODBC管理器来定义系列APIs供你以完成工作所以我们需要包含odbc32.inc和odbc32.lib文件当然还有windows.inc 连接数据源需要以下几步: 分配个环境句柄(environment handle). 在进行每个ODBC任务(session)时仅需这样做次.旦获得了句柄,我们就可修改环... [阅读全文]
sql语句教程:汇编教程的使用语句
继续我们学习,在这章我们来看看如何通过ODBC来操作数据源. 在上章,我们已学习了第步怎样连接个数据源个连接定义了用户和数据源数据通道.它是静态.如果要想操作数据源我们就必须使用语句(statement).可以认为语句就是发给数据源命令.这个"命令"必须用SQL写成.通过使用语句,我们就可以修改数据源结构、在其中执行查询、修改及删除数据. 准备及使用语句可分为以下几个步骤: 分配个语句句柄(... [阅读全文]