Fork me on GitHub
  2013年3月24日
摘要: 首先注意bgsim intrpt属性为disable,估计本进程会由gna_profile_mgr 进程调用并提供初始化参数。状态变量注意:GnaT_Cli_Ftp_Params_Info* ftp_client_info_ptr;和GnaT_Nam_Appl*application_info_ptr;是由profile提供的参数。//---------------------------------------------------------------------------------------------------------------------------INIT入口代码 阅读全文
posted @ 2013-03-24 19:39 loopever 阅读(918) 评论(7) 推荐(0) 编辑
摘要: 一、数据传输指令1. 通用数据传送指令.MOV(MOVe) 传送字或字节.MOVS(MOVe String)串传送指令MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP交换32位寄存器里字节的顺序XCHG(eXCHanG 阅读全文
posted @ 2013-03-24 19:36 loopever 阅读(1728) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://hi.baidu.com/hypkb/blog/item/5031f781ea8ecad09023d96b.html汇编语言笔记-第10章 call和ret指令2009-02-02 17:59ret指令用栈中的数据,修改IP的内容,从而实现近转移;CPU执行ret指令时,进行下面两步操作:(1)(IP)=((ss)*16+(sp))(2)(sp)=(sp)+2相当于进行:pop IP?retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移;CPU执行retf指令时,进行下面两步操作:(1)(IP)=((ss)*16+(sp))(2)(sp)=(sp)+2(3)(C 阅读全文
posted @ 2013-03-24 19:35 loopever 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 首先,80386以及80386以后的CPU都是32位的纯32位windows是不能进入实模式的,重启以后到载入WINDOWS以前都是实模式,也许你会说windows98不是是可以不用重启机器直接进入到纯DOS(实模式)下么首先,98是个16位和32混编的系统,所以不稳定,但对游戏支持甚好,而且其内核是建立在16位上的(你要是搞过Win32编程就会有所了解),这样的话进入DOS很方便,或者在DOS下一条win命令就可以进入WINDOWS...但是从NT开始就不行了,2000/XP都是建立在纯32位(NT开始)内核上的,所以很稳定,但是如果不重新启动到DOS下是不能进行实模式操作的,但是考虑程序的 阅读全文
posted @ 2013-03-24 19:32 loopever 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 任务内相同特权级的转移:段间直接转移和段间直接调用:1.检查目标地址指针内的选择子指示的描述符是否为空,目标代码段描述符不能为空描述符,即该选择子的高14位不能为02.由选择子内的TI位(第2位)决定是从GDT还是从LDT中读出目标代码段的描述符3.检查描述符类型是否正确4.普通代码段,要求CPL=DPL,RPL<=DPL;一致代码段,要求CPL>=CPL5.目标代码段描述符中的P位必须为16.把目标代码段描述符中的段基址、段限、属性装入CS的高速缓冲寄存器中7.检查目标地址的偏移是否越过目标代码段的段界限,这也是不允许的,即目标地址的偏移不允许越过该代码段8.装入指令指针寄存器E 阅读全文
posted @ 2013-03-24 19:31 loopever 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 保护模式 (Protected Mode,或有时简写为 pmode) 是一种 80286 系列和之后的 x86 兼容 CPU 操作模式。保护模式有一些新的特色,设计用来增强 多工 和系统稳定度,像是 内存保护,分页 系统,以及硬件支援的 虚拟内存。大部分的现今 x86 操作系统 都在保护模式下运行,包含 Linux、FreeBSD、以及 微软 Windows 2.0 和之后版本。 另外一种 286 和其之后 CPU 的操作模式是 真实模式,一种向前兼容且关闭这些特色的模式。设计用来让新的芯片可以执行旧的软件。依照设计的规格,所有的 x86 CPU 都是在真实模式下开机来确保传统操作系统的向.. 阅读全文
posted @ 2013-03-24 19:30 loopever 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 实模式与保护模式摘自ITWIKI,为我和还没搞明白真实模式保护模式的XDJM们真实模式Intel 8086和8088有14个16位缓存器。其中四个(AX, BX, CX, DX)是通用目的(尽管每个缓存器有额外的目的;举个例子:CX可以被用来当作loop(循环)指令的计数器。每个缓存器可以被当成两个分开的字节存取(因此BX的高位可以被当成BH以及低位BL)。除了这些缓存器, 还有四个区段缓存器(CS、DS、SS、ES)。他们用来产生内存的寻址。还有两个指针缓存器(SP是指向堆栈的底部, BP可以用来指向堆栈或内存的其它地方)。两个指针缓存器(SI和DI)可以用来指向数组的内部。最后,有旗标缓存 阅读全文
posted @ 2013-03-24 19:29 loopever 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 该文章在DOS联盟论坛上找的,很不错,在这贴出来,好文章大家看。DOS联盟论坛:http://www.cn-dos.net/forum/硬盘主引导扇区 = 硬盘主引导记录(MBR)+ 硬盘分区表(DPT)--------------------------------------------------------------物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)大小: 512字节其中:MBR 446字节(0000--01BD),DPT 64字节(01BE--01FD),结束标志2字节(55 AA)功能:MBR通过检查DPT分区信息引导系统跳转至D 阅读全文
posted @ 2013-03-24 19:28 loopever 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 这篇文章是我在网上找的,原作者不知道是谁,不过我还是要说声谢谢,我从这篇文章中学到了很多。引导扇区在每个分区里都存在,但是我们常说的*主引导扇区*是硬盘的第一物理扇区。它由两个部分组成:即主引导记录MBR和硬盘分区表DPT。在总共512字节的主引导分区里其中MBR占446个字节(偏移0--偏移1BDH),DPT占64个字节(偏移1BEH--偏移1FDH),最后两个字节“55,AA”(偏移1FEH偏移1FFH)是分区的结束标志。大致的结构如下图:0000 |------------------------------------------------|| || || Main Boot Rec 阅读全文
posted @ 2013-03-24 19:27 loopever 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 错误:EMM386:Uncoverable privileged operation error #9的解决最近看《自己动手写操作系统》。我在VPC上安装的是DOS7.1,结果运行第三章中的例子程序时总是报错:EMM386:Uncoverable privileged operation error #9-Press Enter to reboot。郁闷了很长时间,才找到答案。原因是我的DOS上装了EMM386.EXE。我先是在C:\Config.sys中把DEVICE=C:\DOS71\EMM386.EXE NOEMMS中的NOEMMS删了,保存,重启DOS,运行例子时报错ERROR # 6 阅读全文
posted @ 2013-03-24 19:26 loopever 阅读(479) 评论(0) 推荐(0) 编辑
摘要: VMWare DOS 文件共享vmware 下 DOS 不能安装vmware tools ,所以不能直接共享文件。一种办法是用DOS的网络功能,用FTP。另一种是用光盘,只说第二种:步骤:1.下载VMWare dos镜像 WINISO2.安装VMWare3.VMWare新建虚拟机。选择MS-DOS。4.在新建的虚拟机中,将软盘设置成下载的DOS镜像文件。并将最上面的两个CONNECT和POWER CONNECT选中。否则软盘不工作。提示找不到操作系统。5.启动VMWare,一步一步安装。在安装过程中,提示换软盘。将软盘设置重新设置为第二个软盘镜像即可。6.将需要COPY的东西,我这为ASM文件 阅读全文
posted @ 2013-03-24 19:24 loopever 阅读(722) 评论(0) 推荐(0) 编辑