中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] [4] [5] [6] [7] [8] [9] »
作者:
标题: 论坛帖子摘录 上一主题 | 下一主题
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 76 楼』:  

DOS引导扇区代码详解[转帖]                                            :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=3145&fpage=1&highlight=%2Bko20010214

DOS引导扇区代码详解[转帖]

如果从软盘起动,则Dos引导程序被ROM BIOS直接加载到内存,若从硬盘起动,则被硬
盘的主引导程序加载.不过都是被加载到内存的绝对地址0000:7C00H处.因此,Dos引导程
序的第一条指令的地址一定是0000:7C00H.

Dos引导程序所做的事情如下:
1>调整堆栈位置
2>修改并用修改后的磁盘参数表来复位磁盘系统
3>计算根目录表的首扇区的位置及IO.SYS的扇区位置
4>读入根目录表的首扇区
5>检查根目录表的开头两项是否为IO.SYS及MSDOS.SYS
6>将IO.SYS文件开头三个扇区读入内存0000:0700H处
7>跳到0000:0700H处执行IO.SYS,引导完毕
    上述每一步若出错,则显示"Non system disk or disk error..."信息,等用户按任
一键后试图重新起动.

    下面的Dos引导程序是从硬盘上得来的,显示MSDOS5.0,但Dos的ver命令报告的是6.22
版.FAT表自然是16位的.

说明:
    (DX)          表示寄存器DX的值
    逻辑扇区号    以0面0道1扇区作为逻辑0扇区,而不是以Dos引导扇区为逻辑0扇区,
                  当然,对软盘来说二者是相同的,对硬盘则不同
    面号          即磁头号
    磁道号        即柱面号(对硬盘)
    物理扇区号    由面号,磁道号,扇区号三者共同指定
偏移  机器码        符号指令               说明
=============================================
0000 EB3C          JMP     003E            ;跳过数据区
                                           ;以下数据是厂商OEM信息和磁盘BPB表

0000        90 4D 53 44 4F 53-35 2E 30 00 02 08 01 00     .MSDOS5.0.....
0010  02 00 02 00 00 F8 CC 00-3F 00 10 00 3F 00 00 00   ........?...?...
0020  F1 59 06 00 80 00 29 E3-0B 3F 26 53 4C 4D 20 20   .Y....)..?&SLM
0030  20 20 20 20 20 20 46 41-54 31 36 20 20 20               FAT16
--------------------------------------------------------------------------
003E FA            CLI
003F 33C0          XOR     AX,AX
0041 8ED0          MOV     SS,AX
0041 8ED0          MOV     SS,AX
0043 BC007C        MOV     SP,7C00         ; 初始化堆栈
0046 16            PUSH    SS
0047 07            POP     ES              ;(ES)=0000H
0048 BB7800        MOV     BX,0078         ;1EH 号中断向量的地址为0000:0078H

004B 36            SS:                     ;(SS)=0000H
004C C537          LDS     SI,[BX]         ;取1EH号中断向量的内容存入DS:SI
004E 1E            PUSH    DS              ;该中断向量指向一个11字节的磁盘参
                                           ;数表
004F 56            PUSH    SI              ;取到后压入堆栈中保存
0050 16            PUSH    SS
0051 53            PUSH    BX              ;保存地址0000:0078H
0052 BF3E7C        MOV     DI,7C3E         ;7C3E-7C00=003EH,即偏移003EH,以下
                                           ;类推
0055 B90B00        MOV     CX,000B         ;磁盘参数表共11字节
0058 FC            CLD
0059 F3            REPZ
005A A4            MOVSB                   ;将磁盘参数表复制到0000:7C3EH处
005B 06            PUSH    ES
005C 1F            POP     DS              ;(DS)=0000H
005D C645FE0F      MOV     BYTE PTR [DI-02],0F ;修改参数表中"磁头定位时间"
0061 8B0E187C      MOV     CX,[7C18]       ;从BPB中取"每磁道扇区数"
0065 884DF9        MOV     [DI-07],CL      ;修改参数表中"每磁道扇区数"
0068 894702        MOV     [BX+02],AX      ;(AX)=0000H,修改1EH号中断向量
                                           ;(段址)
006B C7073E7C      MOV     WORD PTR [BX],7C3E ;修改1EH号中断向量(偏移),这
                                              ;样1EH号
006F FB            STI           ;中断向量的内容为0000:7C3EH,指向新的磁盘参
                                 ;数表
0070 CD13          INT     13              ;用新的磁盘参数表来复位磁盘
0072 7279          JB      00ED            ;出错则转出错处理
---------------------------------------------------------------------------
                                           ; 下面一段程序计算扇区位置
0074 33C0          XOR     AX,AX
0076 3906137C      CMP     [7C13],AX       ;偏移0013H处是Dos分区的总扇区数
007A 7408          JZ      0084            ;为零表示大硬盘?
007C 8B0E137C      MOV     CX,[7C13]       ;不为0则取出来放到偏移0020H处
0080 890E207C      MOV     [7C20],CX       ;这个值本程序未用,似乎为IO.SYS准备
                                           ;的
0084 A0107C        MOV     AL,[7C10]       ;取FAT表的个数
0087 F726167C      MUL     WORD PTR [7C16] ;乘以一个FAT表所占的扇区数
008B 03061C7C      ADD     AX,[7C1C]       ;加上Dos分区前的扇区数(隐藏扇数,低
                                           ;位)
008F 13161E7C      ADC     DX,[7C1E]       ;                               高
                                           ;位)
0093 03060E7C      ADD     AX,[7C0E]       ;加上Dos分区内的保留扇区数(低位)
0097 83D200        ADC     DX,+00          ;                         (高位)
009A A3507C        MOV     [7C50],AX       ;根目录表的首扇的逻辑扇区号(低位)

009D 8916527C      MOV     [7C52],DX       ;                          (高位)

00A1 A3497C        MOV     [7C49],AX       ;此处放IO.SYS的首扇的逻辑扇区号(低
                                           ;位)
00A4 89164B7C      MOV     [7C4B],DX       ;                              (高
                                           ;位)
00A8 B82000        MOV     AX,0020         ;根目录表中每项占32字节
00AB F726117C      MUL     WORD PTR [7C11] ;乘以根目录表中的项数
00AF 8B1E0B7C      MOV     BX,[7C0B]       ;取"每扇区的字节数"
00B3 03C3          ADD     AX,BX           ;这两条指令是为了取整
00B5 48            DEC     AX
00B6 F7F3          DIV     BX              ;除以每扇字节数,得到根目录所占扇区
                                           ;数
00B8 0106497C      ADD     [7C49],AX       ;得到根目录表后首扇的逻辑扇区号(低
                                           ;位)
00BC 83164B7C00    ADC     WORD PTR [7C4B],+00  ;                         (高
                                                ;位)
---------------------------------------------------------------------------
                       ;下面一段程序在根目录表中找系统文件IO.SYS和MSDOS.SYS
00C1 BB0005        MOV     BX,0500         ;内存缓冲区的偏移值
00C4 8B16527C      MOV     DX,[7C52]       ;取根目录表的首扇的逻辑扇区号(高
                                           ;位)
00C8 A1507C        MOV     AX,[7C50]       ;                            (低
                                           ;位)
00CB E89200        CALL    0160            ;将逻辑扇区号转换为物理扇区号
00CE 721D          JB      00ED            ;出错则转出错处理
00D0 B001          MOV     AL,01
00D2 E8AC00        CALL    0181            ;读一个扇区到内存(根目录的首扇)
00D5 7216          JB      00ED            ;出错处理
00D7 8BFB          MOV     DI,BX           ;内存缓冲区的首址
00D9 B90B00        MOV     CX,000B         ;比较11个字节
00DC BEE67D        MOV     SI,7DE6         ;偏移01E6处是串"IO      SYS",长11
                                           ;字节
00DF F3            REPZ
00E0 A6            CMPSB                   ;看第一项是否为IO.SYS
00E1 750A          JNZ     00ED            ;不是则出错
00E3 8D7F20        LEA     DI,[BX+20]      ;跳过32字节就指向第二项
00E6 B90B00        MOV     CX,000B         ;比较11个字节
00E9 F3            REPZ
00EA A6            CMPSB                   ;看第二项是否为MSDOS.SYS
00EB 7418          JZ      0105            ;是则两个文件都已找到,跳过出错处理

---------------------------------------------------------------------------
                                           ;下面一段进行出错处理
00ED BE9E7D        MOV     SI,7D9E         ;偏移019EH处是串"Non system disk.
                                           ;.."
00F0 E85F00        CALL    0152            ;显示字符串
00F3 33C0          XOR     AX,AX
00F5 CD16          INT     16              ;等待任一键按下
00F7 5E            POP     SI
00F8 1F            POP     DS              ;得到1EH号中断向量的地址0000:0078H
00F9 8F04          POP     [SI]
00FB 8F4402        POP     [SI+02]         ;恢复1EH号中断向量的内容
00FE CD19          INT     19              ;自举
0100 58            POP     AX
0101 58            POP     AX
0102 58            POP     AX              ;清理堆栈
0103 EBE8          JMP     00ED            ;再次试图起动
---------------------------------------------------------------------------
                       ;下面读入IO.SYS的头3个扇区到内存0000:0700H处
0105 8B471A        MOV     AX,[BX+1A]      ;从根目录表第一项中取IO.SYS的首簇
                                           ;号
0108 48            DEC     AX
0109 48            DEC     AX              ;首簇号减二
010A 8A1E0D7C      MOV     BL,[7C0D]       ;取每簇的扇区数
010E 32FF          XOR     BH,BH
0110 F7E3          MUL     BX              ;(首簇号 - 2)乘以 每簇的扇区数
0112 0306497C      ADD     AX,[7C49]       ;相加后得到IO.SYS的首扇的逻辑扇区
                                           ;号
0116 13164B7C      ADC     DX,[7C4B]
011A BB0007        MOV     BX,0700         ;内存缓冲区的偏移值
011D B90300        MOV     CX,0003         ;循环计数初值,读3个扇区
0120 50            PUSH    AX              ;逻辑扇区号进栈(低位)
0121 52            PUSH    DX              ;              (高位)
0122 51            PUSH    CX              ;循环计数器进栈
0123 E83A00        CALL    0160            ;逻辑扇区号转换为物理扇区号
0126 72D8          JB      0100            ;出错处理
0128 B001          MOV     AL,01
012A E85400        CALL    0181            ;读一个扇区到内存缓冲区
012D 59            POP     CX              ;循环计数出栈
012E 5A            POP     DX
012F 58            POP     AX              ;逻辑扇区号出栈
0130 72BB          JB      00ED            ;读盘出错处理
0132 050100        ADD     AX,0001
0135 83D200        ADC     DX,+00          ;下一个扇区
0138 031E0B7C      ADD     BX,[7C0B]       ;缓冲区指针移动一个扇区的大小
013C E2E2          LOOP    0120            ;循环读入三个扇区
013E 8A2E157C      MOV     CH,[7C15]       ;取"磁盘介质描述",传给IO.SYS
0142 8A16247C      MOV     DL,[7C24]       ;取"系统文件所在的驱动器号"
0146 8B1E497C      MOV     BX,[7C49]       ;取IO.SYS的首扇的逻辑扇区号
014A A14B7C        MOV     AX,[7C4B]
014D EA00007000    JMP     0070:0000       ;执行IO.SYS,引导完毕
--------------------------------------------------------------------------
                                           ;显示字符串的子程序
0152 AC            LODSB                   ;从串中取一个字符
0153 0AC0          OR      AL,AL
0155 7429          JZ      0180            ;为0则已到串尾,返回(共用RET指令)
0157 B40E          MOV     AH,0E
0159 BB0700        MOV     BX,0007
015C CD10          INT     10              ;显示该字符
015E EBF2          JMP     0152            ;循环显示下一个
--------------------------------------------------------------------------

                                           ;将逻辑扇区号转换为物理扇区号的子
                                           ;程序
0160 3B16187C      CMP     DX,[7C18]       ;这两条指令是为了避免第二次除法时
                                           ;除数
0164 7319          JNB     017F            ;为0
0166 F736187C      DIV     WORD PTR [7C18] ;逻辑扇取号除以每道扇区数,商(AX)=
                                           ;总磁
016A FEC2          INC     DL              ;道数,余数(DX)再加一即为扇区号,因
                                           ;为扇
016C 88164F7C      MOV     [7C4F],DL       ;区号是从1开始的,而不是从0开始
0170 33D2          XOR     DX,DX
0172 F7361A7C      DIV     WORD PTR [7C1A] ;总磁道数(AX)再除以面数,所得的
0176 8816257C      MOV     [7C25],DL       ;余数(DX)=面号(即磁头号)
017A A34D7C        MOV     [7C4D],AX       ;商(AX)=磁道号
017D F8            CLC
017E C3            RET                     ;正常返回
017F F9            STC
0180 C3            RET                     ;异常返回
---------------------------------------------------------------------------
                                           ;读一个扇区的子程序
0181 B402          MOV     AH,02           ;读功能调用
0183 8B164D7C      MOV     DX,[7C4D]       ;需要的入口参数如下:
0187 B106          MOV     CL,06           ;(DL)=驱动器号
0189 D2E6          SHL     DH,CL           ;(DH)=面号
018B 0A364F7C      OR      DH,[7C4F]       ;(CH)=磁道号
018F 8BCA          MOV     CX,DX           ;(CL)=扇区号(第6,7位为磁道号的高2
                                           ;位)
0191 86E9          XCHG    CH,CL           ;(AL)=要读的扇区数
0193 8A16247C      MOV     DL,[7C24]       ;(ES:BX)=缓冲区首址
0197 8A36257C      MOV     DH,[7C25]
019B CD13          INT     13
019D C3            RET
---------------------------------------------------------------------------
0190                                            0D 0A                 ..
01A0  4E 6F 6E 2D 53 79 73 74-65 6D 20 64 69 73 6B 20   Non-System disk
01B0  6F 72 20 64 69 73 6B 20-65 72 72 6F 72 0D 0A 52   or disk error..R
01C0  65 70 6C 61 63 65 20 61-6E 64 20 70 72 65 73 73   eplace and press
01D0  20 61 6E 79 20 6B 65 79-20 77 68 65 6E 20 72 65    any key when re
01E0  61 64 79 0D 0A 00 49 4F-20 20 20 20 20 20 53 59   ady...IO      SY
01F0  53 4D 53 44 4F 53 20 20-20 53 59 53 00 00 55 AA   SMSDOS   SYS..U.


Re: MS-DOS引导程序剖析                    :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=3142&fpage=1&highlight=%2Bko20010214

Re: MS-DOS引导程序剖析

发信人: jan1 (精灵), 信区: DOS
标  题: Re: MS-DOS引导程序剖析
发信站: BBS 水木清华站 (Thu Sep 11 19:48:24 1997)

【 在 cq (七支居士) 的大作中提到: 】
: 哪位行家顺手post上来, 不胜感激. 我看过的书上没有说明过.
以下为一个硬盘的分区结构,分为一个pri和一个ext, ext中包含一个logical
C:\>debug
-a100
1876:0100 mov ax,201
1876:0103 mov bx,7c00
1876:0106 mov cx,1      ; col 0, sector 1
1876:0109 mov dx,81     ; Second hard disk, head 0
1876:010C int 13
1876:010E int 3
1876:010F
-g=100

AX=0050  BX=7C00  CX=0001  DX=0081  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1876  ES=1876  SS=1876  CS=1876  IP=010E   NV UP EI PL NZ NA PO NC
1876:010E CC            INT     3
-d7d80
1876:7D80  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7D90  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DA0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 01   ................
                                                        ^^ dh for pri-partition
1876:7DC0  01 00 06 3F 60 F3 20 00-00 00 E0 9F 0F 00 00 00   ...?`. .........
           ^^^^^cx for pri-partition                    ^^ dh for ext-partition
1876:7DD0  41 F4 05 3F E0 F1 00 A0-0F 00 00 F0 0F 00 00 00   A..?............
           ^^^^^cx for ext-partition
1876:7DE0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   ..............U.
-a106
1876:0106 mov cx,f441   ;
1876:0109
-g=100                  ; reading col:sec  f441, head 0, this is ext-partition

AX=0050  BX=7C00  CX=F441  DX=0081  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1876  ES=1876  SS=1876  CS=1876  IP=010E   NV UP EI PL NZ NA PO NC
1876:010E CC            INT     3
-d7d80
1876:7D80  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7D90  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DA0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 01   ................
                                                        ^^ dh for logical driver
1876:7DC0  41 F4 06 3F E0 F1 20 00-00 00 E0 EF 0F 00 00 00   A..?.. .........
           ^^^^^cx for logical driver
1876:7DD0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DE0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1876:7DF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   ..............U.


--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 162.105.170.149]


[转贴]Windows98 启动代码分析 其实就是 主引导记录                 :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=44893&fpage=1&highlight=%2Bko20010214

[转贴]Windows98 启动代码分析 其实就是 主引导记录

说明:硬盘主引导记录独立于操作系统,但又和操作系统息息相关――很多时候它又是由
; 操作系统所提供的工具所生成(例外的情况是您使用了其他的分区工具,不过它又运行在
; 什么操作系统中呢?;()。
;
; 如果您安装了Windows 98(我现在暂时不能接触95下的主引导记录,总不能用95重装我的
; 系统吧?)操作系统,那您机器上的主引导记录已经与以前的大有不同了,通过下面的分析
; 您一定能对Windows 98为什么要更改主引导记录有所了解――它已经开始支持扩展Int13h
; 了!并且这个主引导记录的编程技巧更是我们应该学习的。
;
; 主引导记录包括代码、数据两部分。它在被BIOS中断Int19h装入内存后获得控制权。数据
; 部分最重要的当然是分区表了!彻底熟悉主引导记录,可以帮助我们了解系统的引导过程,
; 处理因主引导记录损坏所造成的无法引导故障,消除引导型计算机病毒,更使我们能通过
; 修改主引导记录完成我们希望的工作:如多重引导,系统加软锁等...
;
; BIOS中断总是把主引导记录所在扇区(硬盘的0头0道1扇区)的内容(包括代码和数据)
; 装入内存0000:7C00起始的区域,然后检验该扇区内容的最后两个字节是不是“AA55”,
; 如果不是,那么对不起,Int19h将不把控制权交给主引导记录;若是,则下面的主引导记录
; 才能获得了控制权了(Int19通过跳转指令交转控制权):
;
; 二进制形式的主引导记录:
0000:0600 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P....|
0000:0610 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04 ...PW...........
0000:0620 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B 8,|.u...........
0000:0630 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC ....It.8,t....N.
0000:0640 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25 <.t...........F%
0000:0650 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05 ..F...<.t...<.t.
0000:0660 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4 :.u+@.F%.u$..UP.
0000:0670 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74 A..Xr...U.u....t
0000:0680 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF ....V$.......f..
0000:0690 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E .......3.......N
0000:06A0 25 03 4E 02 CD 13 72 29-BE 2D 07 81 3E FE 7D 55 %.N...r).-..>.}U
0000:06B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 1A 07 EB .tZ.......u.....
0000:06C0 8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB ...R..F..V....Z.
0000:06D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 80 49 12 00 .Ot.3........I..
0000:06E0 56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4 V3.VVRP.SQ...V..
0000:06F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 64 10 72 PR..B.V$..ZX.d.r
0000:0700 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 B7 .@u.B......^..t.
0000:0710 D6 C7 F8 B1 ED CE DE D0-A7 00 BC D3 D4 D8 B2 D9 ................
0000:0720 D7 F7 CF B5 CD B3 CA B1-B3 F6 B4 ED 00 4D 69 73 .............Mis
0000:0730 73 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 sing operating s
0000:0740 79 73 74 65 6D 00 00 00-00 00 00 00 00 00 00 00 ystem...........
0000:0750 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0760 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0770 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0780 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00 ......W.........
0000:0790 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07B0 00 00 00 00 00 00 00 00-86 D8 00 00 00 00 80 01 ................
0000:07C0 01 00 06 3F 3F FD 3F 00-00 00 41 A0 0F 00 00 00 ...??.?...A.....
0000:07D0 01 FE 05 3F FF FE 80 A0-0F 00 C0 4F 2F 00 00 00 ...?.......O/...
0000:07E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
;
; 反汇编结果
;
; 0000:7C00~0000:7C1A:初始化各个段寄存器、堆栈指针,最后将主引导记录在内存中搬家,腾出其所占内
; 存空间以供装入分区引导记录。
0000:7C00 33C0 XOR AX,AX ;AX寄存器清0
0000:7C02 8ED0 MOV SS,AX ;SS=0
0000:7C04 BC007C MOV SP,7C00 ;装填栈指针――SS:SP=0000:7C00
0000:7C07 FB STI ;开中断(装填栈指针时为避免硬件中断引起栈混乱应关中断)
0000:7C08 50 PUSH AX ;
0000:7C09 07 POP ES ;装填附加数据段寄存器ES=0
0000:7C0A 50 PUSH AX ;
0000:7C0B 1F POP DS ;装填数据段寄存器DS=0
0000:7C0C FC CLD ;规定其后的串操作为正向串操作
0000:7C0D BE1B7C MOV SI,7C1B ;源指针
0000:7C10 BF1B06 MOV DI,061B ;目的指针
0000:7C13 50 PUSH AX ;
0000:7C14 57 PUSH DI ;看看0000:7C1A――构造一个跳转
0000:7C15 B9E501 MOV CX,01E5 ;
0000:7C18 F3 REPZ ;
0000:7C19 A4 MOVSB


; ;0000:7C1B起始的CX字节传送至0000:061B起始的区域
0000:7C1A CB RETF ;跳转到0000:061B(这是一种技巧跳转)
;
; 为直观起见,下面的地址按实际运行时的地址给出。
; 0000:061B~0000:062B:对分区表进行初步检验,一旦检测到某分区表项状态字节大于等于80h,就通过(当
; 然,在此之前如果检测到某项分区表的状态字节小于80h,就转错误处理。当然,如果四个分区项的状态字节
; 都为零,主引导记录就会调用BIOS-ROM的INT 18h,显示\"PRESS A KEY TO REBOOT\"信息等待你的操作。
0000:061B BEBE07 MOV SI,07BE ;SI指向第一个分区表项,这时CX=0
0000:061E B104 MOV CL,04 ;分区表共四个表项
0000:0620 382C CMP [SI],CH ;
0000:0622 7C09 JL 062D ;大于等于80h转[注意JL指令:(SF xor OF)=1则转]
0000:0624 7515 JNZ 063B ;不为0则[SI]一定小于80h,只能转错误处理了!
0000:0626 83C610 ADD SI,+10 ;为零则检查下一表项
0000:0629 E2F5 LOOP 0620 ;检查下一表项
0000:062B CD18 INT 18 ;四表项的状态字节都为0,则系统只好调用INT 18h了!
;
; 0000:062D~0000:0639:检查剩余的分区表项――状态字节必须为零,否则显示错误信息“分区表无效”然
; 后当机!拜托,微软搞错没有,怎么用中文提示信息?真TM傻得可爱!
; 这里还有个小BUG,前面放行原则是只要状态字节大于等于80h,那么如果这个字节是诸如A0h、E5h之类数值
; 呢?嘿嘿,这个引导记录统统认为是有效的可引导分区了!
0000:062D 8B14 MOV DX,[SI] ;为读分区引导记录做准备:磁头号→DH,驱动器号→DL
0000:062F 8BEE MOV BP,SI ;SI→BP,保存可引导分区表项的指针
;
0000:0631 83C610 ADD SI,+10 ;其余的分区表项还要检查检查的
0000:0634 49 DEC CX ;
0000:0635 7416 JZ 064D ;CX=0则检查顺利通过,转继续
0000:0637 382C CMP [SI],CH ;
0000:0639 74F6 JZ 0631 ;为零,是合法表项,再查下一表项
;
; 0000:063B~0000:064B:执行错误处理――报告错误信息后当机
0000:063B BE1007 MOV SI,0710 ;错误信息字符串偏移+1→SI
0000:063E 4E DEC SI ;SI-1→SI
0000:063F AC LODSB ;SI+1→SI
0000:0640 3C00 CMP AL,00 ;
0000:0642 74FA JZ 063E ;AL=0则表明一条错误信息显示完毕,系统陷入一个死循环
0000:0644 BB0700 MOV BX,0007 ;字符方式显示
0000:0647 B40E MOV AH,0E ;
0000:0649 CD10 INT 10 ;以写电传方式显示信息(只显示一个字符)
0000:064B EBF2 JMP 063F ;显示下一个字符,直到遇到提示信息结束为止
;
; 0000:064D~0000:0662:判断可引导分区的分区类型,然后转相应处理程序。
0000:064D 894625 MOV [BP+25],AX ;BP=指向第一个可引导分区表项的指针,这时AX=0000h
;使用长度最短的指令将[BP+25]起始的两个单元清零
;这两个单元将被用来存放中间变量
0000:0650 96 XCHG SI,AX ;此时SI清零的最佳指令选择(仅1字节),将服务于0000:06B8
0000:0651 8A4604 MOV AL,[BP+04] ;取分区类型(本例是“06”喽――FAT16主DOS分区)
0000:0654 B406 MOV AH,06 ;为扩展INT 13h无法使用做好更改分区类型的准备
0000:0656 3C0E CMP AL,0E ;0Eh:需要用扩展INT 13h访问的FAT16主DOS分区
0000:0658 7411 JZ 066B ;0Eh类型的分区转066Bh
0000:065A B40B MOV AH,0B ;
0000:065C 3C0C CMP AL,0C ;0Ch:需要用扩展INT 13h访问的FAT32分区
0000:065E 7405 JZ 0665 ;0Ch类型的分区转0665h先行预处理
0000:0660 3AC4 CMP AL,AH ;0Bh:用传统INT 13h就可以访问的FAT32分区
0000:0662 752B JNZ 068F ;其他类型的分区转068Fh
;
; 0000:0664~0000:06A1:根据分区类型和分区表表项内容进行读取分区引导记录前的处理工作
0000:0664 40 INC AX &nbs

p; ;★★★0Bh类型的分区由此开始处理,此条指令用意是清ZF位
0000:0665 C6462506 MOV BYTE PTR [BP+25],06 ;★★★0Ch类型的分区由此开始处理
;为什么取值06,一时没有自圆我说的解释,请耐心几天吧。
0000:0669 7524 JNZ 068F ;请注意上面指令对ZF位的影响:0Bh类型分区转,0Ch则不转
; 0000:066B~0000:068C这段代码仅当分区类型是0Ch、0Eh才有获得执行的机会
0000:066B BBAA55 MOV BX,55AA ;★★★0Eh类型的分区由此开始处理
0000:066E 50 PUSH AX ;
0000:066F B441 MOV AH,41 ;扩展INT 13h功能,检测BIOS是否已经支持扩展INT13h
0000:0671 CD13 INT 13 ;入口参数:BX=55AAh,DL=驱动器号,AH=41h
0000:0673 58 POP AX ;执行完恢复AX为060Eh
0000:0674 7216 JB 068C ;不支持则转
0000:0676 81FB55AA CMP BX,AA55 ;
0000:067A 7510 JNZ 068C ;扩展INT13h不可用也转
0000:067C F6C101 TEST CL,01 ;测试扩展盘访问是否被支持
0000:067F 740B JZ 068C ;不支持还转
; 因为扩展INT13h方式读盘与标准INT13h方式读盘有很大差别,所以0000:0686处指令修改其后的代码以保证按
; 照扩展读方式读分区引导扇区时能正确跳转到相应的处理程序中。
0000:0681 8AE0 MOV AH,AL ;分区类型→AH
0000:0683 885624 MOV [BP+24],DL ;保存驱动器号→[BP+24]
0000:0686 C706A106EB1E MOV WORD PTR [06A1],1EEB ;修改0000:06A1处代码为\"JMP 06C1\"
0000:068C 886604 MOV [BP+04],AH ;注意:如果扩展INT13h不能使用则A改分区类型为06,但如果
;扩展INT13h能使用,则仍保持原分区类型不变
0000:068F BF0A00 MOV DI,000A ;★★★其它类型分区由此开始处理。此条指令初始化计数器
0000:0692 B80102 MOV AX,0201 ;AH:读操作,AL:读取1个扇区的内容
0000:0695 8BDC MOV BX,SP ;SP=7C00→BX,指定分区引导记录装入内存的位置偏移
0000:0697 33C9 XOR CX,CX ;CX清零
0000:0699 83FF05 CMP DI,+05 ;注意5
0000:069C 7F03 JG 06A1 ;大于则转去读由分区表指定的分区引导扇区
0000:069E 8B4E25 MOV CX,[BP+25] ;小于则证明所读分区表指定的引导扇区无合法的引导记录,
;改按???再读,毕竟多一种选择多一次机会嘛!;)
; 以下标有①②者请注意它们的地址都是一样的,就是说实际运行中只可能是二者之一,但为了分析之方便,我
; 把两者都列了出来以供对比,阅读时千万别看成是两条指令了啊!
①0000:06A1 034E02 ADD CX,[BP+02] ;获取分区引导扇区所在的柱面号和物理扇区号
②0000:06A1 EB1E JMP 06C1 ;如果分区类型是0Ch、0Eh而且扩展读能使用则执行该指令
;
; 0000:06A4:将可引导分区的分区引导记录装入内存指定区域
; 入口参数:AH=功能号,02为读盘操作;AL=一次读取的扇区数
; ES:BX=读入内存的起始地址
; CH=10位柱面号的低8位;CL:高两位是10位柱面号的高两位,低6位是物理扇区号
; DH=磁头号;DL=驱动器号,最高位(即位7)为0是软盘,为1是硬盘
0000:06A4 CD13 INT 13 ;读分区引导记录到0000:7C00起始的区域
;
;
0000:06A6 7229 JB 06D1 ;不成功转
0000:06A8 BE2D07 MOV SI,072D ;错误信息字符串偏移→SI
0000:06AB 813EFE7D55AA CMP WORD PTR [7DFE],AA55 ;分区引导记录合法吗?
0000:06B1 745A JZ 070D ;合法则转(这是主引导记录唯一的正常出口)
0000:06B3 83EF05 SUB DI,+05 ;不合法则为换读其他扇区做准备
0000:06B6 7FDA JG 0692 ;只有一次换读扇区的机会!
;
; 0000:06B8~0000:06BF:错误预处理
0000:06B8 85F6 TEST SI,SI ;测试SI值是否为0,其意义在于确定该显示哪条信息
0000:06BA 7583 JNZ 063F ;不为0则转错误处理,显示“Missing operating system”
0000:06BC BE1A07 MOV SI,071A ;错误信息字符串偏移→SI
0000:06BF EB8A JMP 064B ;转错误处理,显示“加载操作系统时出错”
;
; 0000:06C1~0000:06CF:整理扩展读所需入口参

数,然后调用扩展读子程序
; 这段代码只有在以扩展读方式读取分区引导记录时才有机会获得执行
0000:06C1 98 CBW ;转换字节AL为字AX,执行后,AX中是一次要读的扇区数
0000:06C2 91 XCHG CX,AX ;AX→CX,CX→AX,执行后,CX中是一次要读的扇区数
0000:06C3 52 PUSH DX ;
0000:06C4 99 CWD ;将字AX转换为双字→DX,AX
0000:06C5 034608 ADD AX,[BP+08] ;
0000:06C8 13560A ADC DX,[BP+0A] ;执行后,DX:AX=LBA绝对物理扇区号
0000:06CB E81200 CALL 06E0 ;调用扩展读子程序
0000:06CE 5A POP DX ;
0000:06CF EBD5 JMP 06A6 ;
;
; 0000:06D1~0000:06D8分区引导记录装入失败时的处理
0000:06D1 4F DEC DI ;计数器减1
0000:06D2 74E4 JZ 06B8 ;五次读盘均未成功则转错误处理(注意这时SI=0)
0000:06D4 33C0 XOR AX,AX ;置功能号
0000:06D6 CD13 INT 13 ;复位磁盘系统
0000:06D8 EBB8 JMP 0692 ;再读
;
;
0000:06DA 00 00 80 49 12 00 ...I..
;
; 0000:06E0~0000:070C:使用扩展INT 13h功能读取分区引导记录的子程序
; 调用时,SP=7BFE。这段程序利用压栈寄存器方式构造了一个磁盘地址包,请注意体会。另外,0000:06FC处
; 的一条指令就释放了几乎全部由本段程序占用的栈空间,构思之巧妙,绝对需要我们学习!
; 所以,分析该段程序,一个重点应放在栈的变化上。
0000:06E0 56 PUSH SI ;保存SI――注意,这次压栈并不构造磁盘地址包
0000:06E1 33F6 XOR SI,SI ;清零
0000:06E3 56 PUSH SI ;
0000:06E4 56 PUSH SI ;
0000:06E5 52 PUSH DX ;
0000:06E6 50 PUSH AX ;以上四条指令压栈的是扇区LBA号码*2
0000:06E7 06 PUSH ES ;压栈内存目标缓冲区首址段址
0000:06E8 53 PUSH BX ;压栈内存目标缓冲区首址偏移
0000:06E9 51 PUSH CX ;压栈所读扇区数
0000:06EA BE1000 MOV SI,0010 ;注意SI的高8位对应着磁盘地址包的保留字节,必须为0
0000:06ED 56 PUSH SI ;压栈磁盘地址包包长,执行完本条指令一个包已经构造完毕
0000:06EE 8BF4 MOV SI,SP ;规定磁盘地址包偏移指针,这时SP=7BEA
0000:06F0 50 PUSH AX ;保存AX
0000:06F1 52 PUSH DX ;保存DX
0000:06F2 B80042 MOV AX,4200 ;置扩展读功能号
0000:06F5 8A5624 MOV DL,[BP+24] ;取驱动器号,参照0000:0683
; 入口参数:AH=功能号,02为读盘操作;DL=驱动器号
; DS:SI=16字节磁盘地址包――第0字节:包长度(固定为10h);第1字节:保留,必须为0;
; 第2、3字节:所读扇区数;第4~5字节:内存目标缓冲区首址偏移;
; 第6~7字节:内存目标缓冲区首址段址; 第8~15字节:扇区LBA号码
; 出口参数:成功则AH=0;错误则AH=错误代码
0000:06F8 CD13 INT 13 ;执行扩展读操作
0000:06FA 5A POP DX ;
0000:06FB 58 POP AX ;
0000:06FC 8D6410 LEA SP,[SI+10] ;7BEA+10h=7BFA→SP(注意是取偏移而不是取单元内容)
0000:06FF 720A JB 070B ;扩展读不成功转
0000:0701 40 INC AX ;
0000:0702 7501 JNZ 0705 ;
0000:0704 42 INC DX ;AX加1溢出时(比如0FFFFh+1)DX才加1
0000:0705 80C702 ADD BH,02 ;调整BX,使偏移量增加512字节(刚好一扇区)
0000:0708 E2F7 LOOP 0701 ;0701~0708一段代码暂未明白其真实意图!
0000:070A F8 CL





C ;
0000:070B 5E POP SI ;
0000:070C C3 RET ;
;
; 0000:070D:中继跳转
0000:070D EB74 JMP 0783 ;
;
; 070F~0745是错误信息!果然是中文Windows98生成的主引导记录,所以我要特别
; “感谢”微软这个傻B,真难为它竟然用中文表述前两个信息!可惜真需显示的时
; 候鬼才能看懂是什么呢!!!我K!――耍弄我们耶!?
; 070F~0718:“分区表无效”中文信息
; 071A~072B:“加载操作系统时出错”中文信息
; 072D~0744:“Missing operating system”英文信息
0000:070F B7 .
0000:0710 D6 C7 F8 B1 ED CE DE D0-A7 00 BC D3 D4 D8 B2 D9 ................
0000:0720 D7 F7 CF B5 CD B3 CA B1-B3 F6 B4 ED 00 4D 69 73 .............Mis
0000:0730 73 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 sing operating s
0000:0740 79 73 74 65 6D 00 00 00-00 00 00 00 00 00 00 00 system..........
0000:0750 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0760 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0770 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0780 00 00 00 ...
;
; 0000:0783~0000:0789:控制权移交
0000:0783 8BFC MOV DI,SP ;
0000:0785 1E PUSH DS ;
0000:0786 57 PUSH DI ;构造一个跳转地址
0000:0787 8BF5 MOV SI,BP ;
0000:0789 CB RETF ;交控制权给分区引导记录(0000:7C00)
;
;
0000:078A 00 00 00 00 00 00 ......
0000:0790 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
;
; 07B8~07BB四个字节的内容用于什么呢?(不同机器此四字节均不同)
; 07BE~07FD为分区表,内含四个分区表项(每表项10h字节)
0000:07B0 00 00 00 00 00 00 00 00-86 D8 00 00 00 00 80 01 ................
0000:07C0 01 00 06 3F 3F FD 3F 00-00 00 41 A0 0F 00 00 00 ...??.?...A.....
0000:07D0 01 FE 05 3F FF FE 80 A0-0F 00 C0 4F 2F 00 00 00 ...?.......O/...
0000:07E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
*1:因为物理扇区号总是从1排列而起
*2:由此可见,就是使用LBA扩展读的功能,主引导记录却限制了分区引导扇区必须在LBA绝对物理扇区
0FFFFFFFFh之前才有可能从该分区引导系统!

[ Last edited by zzz19760225 on 2017-11-9 at 14:52 ]



1<词>,2[句],3/段\,4{节},5(章)。
2016-6-23 21:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 77 楼』:  变形啦

DOS操作系统基本使用方法                                :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=3120&fpage=1&highlight=%2Bko20010214

发信人: mmbbooyy (QQPETER), 信区: DOS
标  题: DOS操作系统基本使用方法
发信站: BBS 水木清华站 (Sun Jul 15 18:15:14 2001)
                                                                                            
/---------------------------------------------------------------------\                    
\---------------------------------------------------------------------/                    
                                                                                            
    第1节 DOS操作系统概述


┏━━━━━━━━━━━┓                                                                  
┃1.1 DOS操作系统的发展 ┃                                                                  
┗━━━━━━━━━━━┛

  DOS操作系统也就是磁盘操作系统(Disk Operating System),简称DOS。目前广泛使用的MS-DOS是美国微软公司买下DOS专利权后命名的,PC-DOS则是IBM公司在推出IBM-PC机时,选定了MS-DOS作为基本操作系统,并将其改名为PC-DOS。MS-DOS与PC-DOS在本质上并没有太大的区别且命令是基本兼容的。
    MS-DOS的前身是Seatlle Computer Products公司与1980年推出的86-DOS。微软公司在1981年买下了86-DOS的专利,经修改、扩充后更名为MS-DOS,即MS-DOS V1.0版。随着微机硬件和软件的不断发展,微软公司也在不断更新DOS版本。从1981年推出的DOS V1.0到今天,已经过了十多次,目前最新的版本为MS-DOS V6.22。表1.1列出了MS-DOS的不同版本和主要的技术改进。

                       表1.1 MS-DOS版本及其主要技术
┏━━━┯━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃版本号│  推出时间  │                      主要技术改进                                         ┃
┠───┼─────----─┼────────────────────────----------------------──┨
┃1.0  │1981年7月   │                                                                                ┃
┠───┼─────---─┼────────────────────────-----------------------──┨
┃2.25  │1982年      │增加双面软盘                                                                ┃              
┠───┼─────---─┼────────────────────────-----------------------──┨              
┃2.0   │1983年3月   │硬盘、树形结构                                                            ┃              
┠───┼─────---─┼─────────────────────────-----------------------─┨              
┃3.0   │1984年8月   │1.2M软盘、RAM盘、卷名和ATTRIB命令                          ┃              
┠───┼─────---─┼─────────────────────────-----------------------─┨              
┃3.1   │1984年11月  │支持Microsoft网络                                                      ┃              
┠───┼─────---─┼─────────────────────────-----------------------─┨              
┃3.2   │1986年      │支持3.5英寸盘                                                              ┃              
┠───┼─────--─┼─────────────────────────-------------------------─┨              
┃3.3   │1987年      │支持1.44M盘                                                                ┃              
┠───┼─────---─┼─────────────────────────------------------------─┨              
┃4.0   │1989年12月  │增加MS-DOS外壳、大容量文件和磁盘                             ┃              
┠───┼─────----─┼────────────────────────-----------------------──┨              
┃5.0   │1991年6月   │内存管理、任务切换、EDIT、更大容量磁盘                      ┃              
┠───┼──────---┼─────────────────────────------------------------─┨              
┃6.0   │1993年4月│多机配置、磁盘压缩与优化、防治病毒、支持Windows            ┃              
┃       │                │和便携机、通信与网络、文件备份、删除与保护、                  ┃              
┃        │               │在线帮助、内存管理等                                                      ┃              
┗━━━┷━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛                     


┏━━━━━━━━━━━━┓
┃1.2 DOS的主要功能及构成 ┃
┗━━━━━━━━━━━━┛

    DOS的主要功能包括:文件管理、存储管理、设备管理、作业管理和CPU管理。                    
    (1)文件管理:                                                                        
    文件管理是指对计算机中各类文件进行有序的管理。其中包括:对文件标识符、属性、生成或修改时间的管理;对文件读写操作的管理及对文件建立、检索、比较、修改、删除和复制等操作的管理等。
    (2)存储管理:                                                                        
    存管理是利用DOS的动态存储管理,对内存块的分配、请求、释放和修改等操作进行管理。存储管理可以为系统程序和应用程序有效地利用当前内存容量提供方便。
    (3)设备管理:                                                                        
    设备管理是利用DOS的设备管理程序和模块,进行外设分配、外设输入/输出操作和缓冲区的有效管理。
    (4)作业管理:                                                                        
    作业是拥护请求计算机系统完成的一个独立任务。一个作业可以包括输入、编译、连接、运行和输出等若干个处理步骤。作业管理就是许多个作业执行时进行必要的资源调度和作业处理过程控制。
    (5)CPU管理:                                                                          
    CPU是微机系统中的重要资源。CPU管理一是使CPU能够进行高效的运作,二是能够处理各种可能发生的中断事件。
    (6)DOS的构成:
    MS-DOS的主体采用层次模块结构,有一个引导程序和三个层次模块构成,如下图1所示。

          ┌──-──┐  ┌─---────-─┐                                                  
        │用    户├─→│键 盘 命 令  │                                                  
          └─┬──┘  └──--┬──-─┘                                                  
          │   ┌┈┈┈┈┼┈┈┈┈┈┈┐                                            
            │   ┊     ↓      ┊                                            
          │   ┊ ┌────---------──┐   ┊                                            
          │   ┊ │COMMAND.COM │   ┊                                            
              │         ┊   └──┬──---------─┘   ┊                                            
              ↓         ┊         ↓                     ┊                                            
          ┌──---──┐┊  ┌────--------──┐    ┊                                            
          │用户程序├┼→│ MSDOS.SYS  │    ┊                                            
          └───---─┘┊  └──┬─-------──┘    ┊                                            
        ┌┈┈┈┈┈┈┘        ↓                    ┊DOS                                         
        ┊┌───---─┐    ┌─────----─┐       ┊                                            
        ┊│引导程序│  │ IO.SYS    │       ┊                                            
        ┊└-─┬──-┘    └──┬──---─┘       ┊                                            
        └┈┈┼┈┈┈┈┈┈┼┈┈┈┈┈┈┘                                            
                 │                  ↓                                                         
                 │            ┌────----──┐                                                  
                 └────→│  ROM BIOS  │                                                  
                               └───-----───┘                                                  
                        图1 DOS组成结构


    ①引导程序(Boot record)                                                               
    引导程序存放在磁盘的0面0道1扇区(引导扇区)。当DOS启动时,通过存储于只读存储器中的基本输入输出系统(ROM BIOS)中的字举程序,首先将引导程序调入内存,在由它将DOS的其余部分从磁盘调入内存。

    ②输入输出接口程序(IO.SYS)
    输入输出接口程序是DOS的最低层次模块,是MSDOS.SYS与ROM BIOS的接口。它包括DOS的全部功能调用模块,可以完成对显示器、键盘、打印机、通信口和时钟、计数器等外设的操作。此时,当DOS启动时,IO.SYS还负责检查与计算机系统连接的设备情况,并对将要使用的设备进行设置,以保证系统运行时的正常使用。

    ③文件管理和系统调用程序(MSDOS.SYS)
    该程序是DOS的核心模块,包括文件管理、磁盘管理和其他外设管理的DOS内部命令执行模块。当DOS启动是,MSDOS.SYS被调入内存长驻,负责内部工作表和文件装配表的初始化、接受各种DOS内部命令调用等。

    ④键盘命令管理程序(COMMAND.COM)
    键盘名利管理程序是拥护DOS之间的界面,以命令文件名COMMAND.COM存储在磁盘上。其功能是接受用户的键入命令并进行分析,根据命令的类型(内部命令或外部命令)不同,用相应的处理程序进行解释和执行,在显示器上输出执行结果。如果用户键入的命令有误,则显示出错信息。


┏━━━━━━━┓                                                                          
┃1.3 DOS的启动 ┃                                                                          
┗━━━━━━━┛                                                                          

    (1)DOS的启动方式
    DOS的启动包括冷启动和热启动两种方式。

    ①冷启动是指对系统加电启动。冷启动操作方法为:
    A盘(软盘)启动
    a.将装DOS系统的软盘插入A驱动器,关好驱动器闩门;
    b.顺序打开显示器、打印机(如果有的话)和主机电源,即可进入DOS启动状态。
    C盘(硬盘)启动                                                                        
    a.将A驱动器闩门打开;
    b.依次打开显示器、打印机及主机电源即可。

    ②热启动是当计算机运行不正常、死机或改变系统参数设置后采用的DOS启动方式。热启动的方法是:
    同时按下 Ctrl 键、Alt 键和 Del 键。

    (2)系统的初始化                                                                       
    在完成DOS的启动操作后,微机系统就自动进入系统初始化。系统初始化的主要工作有:
    ①进行硬件设备的检测,包括CPU芯片检测、其他主要芯片检测(如中断控制器,DMA控制器等)、ROM BIOS芯片检测、内存芯片检测、键盘检测、显示器检测、磁盘设备检测以及打印机和串行口地址等。热启动方式下,不检测内存芯片。
    ②执行ROM BIOS中的字举程序,将引导程序由磁盘装入内存。
    ③执行引导程序,将DOS的三个模块装入内存并执行。
    ④查找并执行CONFIG.SYS(系统配置程序)和AUTOEXEC.BAT(批处理程序)。
    当显示器出现A:\>(软盘启动)或C:\>(硬盘启动)时,表示DOS启动完成且系统初始化完毕,可以接受DOS命令。
                                                                                            

                                                                                            
        第2节 文件和文件管理
                                                                                            
    广义的文件是指存储在一定媒体上的一组相关信息的集合。在计算机中,文件一般专指存储于存储介质上的相关信息的集合。即文件可以是存储在卡片、磁带、磁盘、光盘上的各种程序、数据、文本、图形和声像资料等。
    由于我们平时使用最多的是磁盘文件,因此,必须深入理解磁盘文件及其管理。

┏━━━━━━━━━┓
┃2.1 文件和文件目录┃
┗━━━━━━━━━┛

    (1)文件
    为了合理地使用文件和磁盘,就要了解DOS系统对文件管理的一些规定。

    ①文件名(File Name)
    DOS系统规定:一个文件的文件名由主文件名和扩展文件名两部分组成。
    文件名命名规定:
    a.主文件名由1~8个合法字符组成;扩展文件名由1~3个合法字符组成。
    b.不能用下列DOS保留字符作文件名字符:
            *    文件通配符            ,    并列参数分隔符
            ?    文件通配符            .    扩展名前导符
            >    操作重定向            :    磁盘定义符
            [.]
    例如下列文件名是合法的:                                                               
        COMMAND.COM        AUTO.BAT        LXX.DOC
    下列文件名是非法的:                                                                    
        ABC/XY.BAS         主文件名中有非法字符
        SAYON.EXEC         扩展名超过三个字符
        .SYS                    无主文件名

    ②文件类型
    主文件名为用户提示文件的作业或功能,扩展名是文件类型的标志,通常是有系统给出的。常见的扩名类型有:
    可执行文件:.EXE(可执行文件)   .COM(命令文件)     .BAT(批处理文件)
    文本文件:   .TXT(文本文件)      .DOC(文档文件)     .DAT(数据文件)
    源程序文件:.BAS(BASIC)          .PAS(PASCAL)       .C  (C语言)
                      .PRG(DBASE/FOX)  .ASM(汇编)
    其他文件:   .SYS(系统文件)      .OVL(覆盖文件)      .BAK(备份文件)

    ③文件通配符
    DOS系统提供了两个文件通配符“*”和“?”,均可用于住文件名或扩展文件名中。
    “*”代表该字符起的任意个字符,“?”表示该字符位置的一个字符。例如:
    *.*         所有文件
    A*.TXT      主文件名为A打头、扩展名为TXT的所有文件
    ABA?.*      主文件名为ABA打头、不超过四个字符的所有文件
    ?A*.*       主文件名第二个字符为A的所有文件(包括任何扩展名和无扩展名的文件)
    在DOS文件操作命令中,有些命令不允许使用文件通配符(如TYPE命令),有些命令使用通配符会引起混乱(如RENAME命令),在使用中必须特别注意。

    ④文件属性
    文件除文件名、文件类型以外,还有文件属性。文件属性包包括系统(System).只读(ReadOnly).隐藏(Hidden)和归档(Archive)四种。它们的属性特点是:
    系统属性(S)表示该文件为DOS系统文件;
    只读属性(R)表示该文件只能读出,而不能修改和删除;
    隐藏属性(H)表示该文件在一般显示命令下不显示文件名;
    归档属性(A)表示该文件从上一次备份后又修改过。
    文件属性可以通过DOS的ATTRIB命令显示或设置。

    (2)文件目录                                                                           
    文件目录与一本书的章、节目录类似,是显示一批文件的目录。一个磁盘的容量较大,可以存储许多文件目录。DOS是通过文件目录来组织和管理磁盘文件的。
    在文件目录中,为每个文件设立了目录项,其中包括文件名、长度、建立或修改的日期和时间、文件属性以及存放位置的起始地址等信息。

    (3)目录结构
    DOS的文件目录采用树形结构。
    树形目录结构像一棵倒置的树。树中的树根节点是根目录。自根向下,每一树枝节点是一个子目录,每一个树叶节点是一个文件,如图2所示。

                                   ┌───---─┐                                                
                                   │根目录\  │                                                
                                   └----─┬─┘                                                
           ┌─────-----──┬───┴───------─┬─────------──┬──-----───┐                 
           ↓                    ↓                         ↓                      ↓                ↓                 
       ┌──--──┐  ┌────------─┐      ┌──-------──┐ ┌─────---------─┐ ┌──---┐            
       │ BASIC  │  │CONFIG.SYS│      │WINWORD │ │COMMAND.COM │ │DOS │            
       └─┬─-─┘  └────------─┘      └─┬─-------─┘ └────---------──┘ └┬--─┘            
           ├───────┐                  ┌──┴─-----------─┐                ┌────┴┐               
           ↓                ↓                 ↓                      ↓               ↓            ↓               
       ┌────----─┐┌──-----───┐┌───------─┐┌───----─┐┌──-----──┐┌--──┐            
       │BASIC.EXE ││BASIC.BAS ││TEMPLATE││LETTERS ││ANSI.SYS││VDIF│            
       └──----───┘└───-----──┘└─┬─-----─┘└─┬─----─┘└───----─┘└┬-─┘            
                                                    ↓                ↓                               ↓                 
                                    ┌────--------─┐┌─────--------─┐       ┌──-------───┐            
                                    │NORMAL.DOT││OTHER10.DOT │       │ACER10.DOT│            
                                    └────--------─┘└────--------──┘       └───-------──┘

                             图2 树形目录结构示意图

    图中BASIC、WINWORD、DOS、TEMPLATE、LETTERS和VDIF都是树枝节点,也就是子目录,CONFIG.SYS、COMMAND.COM、BASIC.EXE、ANSI.SYS、NORMAL.DOT、OTHER10.DOT和ACER10.VDB都是树叶节点,也就是文件。

    树形目录结构的特点是:                                                                  
    ①在多层目录中允许存在多个同名文件,只要分布在不同的目录就行;
    ②一个磁盘只有一个根目录。根目录没有目录名,一般用“\”来表示。例如:C:\>表示C盘根目录;
    ③子目录命名规则与文件名相同,但子目录名一般不用扩展名。子目录名不能与同级文件名重复;
    ④每个子目录下都有两个特殊的文件目录项:第一个是“.”,内含子目录本身目录信息;第二个是“..”,内含上一级目录信息。这两个目录项是在自目录建立时自动建立的。

    (4)当前盘和当前目录                                                                  
    “当前”盘和“当前”目录是系统默认的操作对象,如果用户没有明确指定操作对象时,系统就对“当前”对象进行操作。
    一般情况下,DOS启动后就自动将启动盘和该盘的根目录作为系统默认的操作对象,即当前盘和当前目录。例如:用硬盘启动后,屏幕显示C:\>,表示C盘为当前盘,C盘根目录为当前目录。              
    每个磁盘都拥有自己的当前目录。如果一个磁盘目录含有多个子目录,就会有多个当前目录。首次被操作的磁盘,其当前目录是根目录。


┏━━━━┓
┃2.2 路径┃
┗━━━━┛

    (1)路径
    路径(PATH)是指从根目录或当前目录到所要访问的对象(文件或目录)所在目录所经过的通道组合。
    路径有绝对路径和相对路径两种:
    绝对路径由从根目录到指定文件(或目录)所经过的一组子目录名表示,必须以“\”开始。即:
        \子目录名1\子目录名2\……
    例如:        
          ┌┈┈┈┐      ┌┈┈┈┈┈┈┈┈┐
          ┊ C:\> ┊DIR┊\LXX                 ┊
          ┊ C:\> ┊DIR┊\LXX\USER         ┊
          ┊ C:\> ┊DIR┊\LXX\USER\READ┊
          └┈┬┈┘      └┈┈┈┬┈┈┈┈┘
              ↓        ↓
        当前目录(根目录)  绝对路径

    相对路径由当前目录到指定文件(或目录)所经过的一组的子目录名表示。即:
        子目录名1\子目录名2\……
    例如:        
          ┌┈┈┈┈┈┈┈┈┈┈┐          ┌┈┈┈┈┈┈┐
          ┊C:\LXX>                  ┊    DIR┊USER\READ  ┊
          ┊C:\LXX\USER>          ┊    DIR┊READ\HZK   ┊
          ┊C:\LXX\USER\READ> ┊    DIR┊HT              ┊
          └┈┈┈┈┬┈┈┈┈┈┘          └┈┈┬┈┈┈┘
                        ↓                                    ↓
                 当前目录                             相对目录

    (2)文件标识
    由于DOS采用的树形文件目录结构允许多个同名文件存在不同的子目录中,所以,使用时必须用文件标识确定对哪一个文件进行操作。
    文件标识由盘符、路径和文件名三部分组成,即:
        [:][]
    其中“:”表示存放文件的磁盘,可以是A:、B:、C:、D:、……,分别表示A盘、B盘、C盘、D盘等,如果是当前盘可以省略;可以用绝对路径或相对路径表示。

第3节 基本DOS命令使用



    DOS系统本身包括有几十条命令,但对于初学者来说,应该首先掌握其中最常用命令的功能和使用方法。随着自身知识的积累和使用水平的提高,就可以自然掌握其它命令。

┏━━━━━━━━┓
┃3.1 DOS命令概述 ┃
┗━━━━━━━━┛

    (1)内部命令和外部命令
    DOS命令可以分为内部命令和外部命令两大类:
    ①内部命令是常驻内存的处理命令。DOS启动后,可随时使用这类命令。
    ②外部命令是以独立文件形式存储在磁盘上的程序。每一个外部命令对应一个可执行文件。执行外部命令时,DOS将处理该命令的程序调入内存,然后执行。使用外部命令应指定盘符和路径。所有扩展名为.COM、.EXE、.BAT的文件都可被视为外部命令。

    (2)DOS命令格式
    DOS命令有其一定的命令格式,一般为:
        [] [][]...[]
    其中命令字表明操作任务,开关参数指定操作细节,“[...]”表示可选项。
    DOS规定:一个命令行的字符不能超过127;命令字、文件标识和开关参数之间必须用空格分开;开关参数用“/”作为前导符,开关参数的顺序不影响命令执行结果;用回车见结束命令的输入。
    为说明方便,在后面的命令实例中用“↙”代表回车键。


┏━━━━━━━━┓
┃3.2 文件操作命令┃
┗━━━━━━━━┛

    文件操作命令顾名思义,是指对文件进行操作的命令。
    基本的文件命令包括文件内容查看、文件复制、文件删除和文件重命名等命令。

    (1)文件内容查看命令
    ①格式:TYPE [d:][path]filename[.ext]
    其中[d:]表示盘符,[path]表示路径,filename表示主文件名,[.ext]表示扩展文件名。
    ②功能说明:TYPE命令是内部命令,用来显示或打印指定文件的内容。如果要打印,必须先同时按 Ctrl + PrintScreen 键连通打印机;TYPE命令不允许使用通配符。
    TYPE命令只能显示文本文件(.TXT)、批处理文件(.BAT)和源程序文件等可阅读的ASCII码文件,不能显示二进制代码文件(如.COM或.EXE)。
    例如:C:\>TYPE AUTOEXEC.BAT
    屏幕(或打印机)上会输出AUTOEXEC.BAT文件的内容。

    (2)文件复制命令
    ①格式:
    a. COPY [d1:][Path][d2:][Path]
    b. COPY [d1:][Path]++...+
    ②功能说明:COPY命令是内部命令;允许使用通配符;第一种命令格式可以复制一个或多个文件,目标文件与源文件名可以同名(在不同的目录下),也可以不通明;第二种命令格式可以将多个文件合并为一个文件,合并后的文件与第一个文件相同。
    例如
    C:\>COPY AUTOEXEC.BAT AUTO.BAK      ;       复制文件到相同目录,文件名改为AUTO.BAK。
    C:\>COPY AUTOEXEC.BAT \LXX          ;       复制文件到LXX子目录,文件名不变。
    C:\>COPY AUTOEXEC.BAT A:\DOS        ;       复制文件到A盘DOS子目录下,文件名不变。
    C:\>COPY *.* A:                     ;       将C盘根目录中的所有文件复制到A盘。
    C:\>COPY L1.DAT+L2.DAT+L3.DAT       ;       将三个文件合并为一个,文件名为L1.DAT。

    (3)文件删除命令
    ①格式:DEL(或ERASER)
    ②功能说明:DEL命令是内部命令;允许使用通配符;DEL命令可以删除指定的一个或多个文件,不能删除子目录。
    例如:
    C:\>DEL AUTO.BAT                    ;       删除C盘根目录中名为AUTO.BAT的文件。
    C:\>DEL \LXX\AUTO.BAT               ;       删除C盘LXX子目录中名为AUTO.BAT的文件。
    C:\>DEL A:\*.BAS                    ;       删除A盘根目录中所有扩展名为BAS的文件。
    如果使用通配符*.*删除指定目录上的所有文件时,为防止错误删除,DOS系统会显示提示信息:
        Are you sure(Y/N)?_
    让用户确认,键入Y并回车,则将指定目录中的所有文件删除,否则取消删除操作。
    使用DEL *.*必须非常小心,一般情况下不要对C盘根目录使用该命令。

    (4)文件重命名命令
    ①格式:REN [d:][Path]
    ②功能说明:REN命令是内部命令;允许使用通配符;REN命令可以将一个或多个文件的文件名更改。
    例如:
    C:\>REN AUTO.BAT AUTOEXEC.BAK       ;       将AUTO.BAT文件改名为AUTOEXEC.BAK。
    C:\>REN A:\LXX\*.TXT *.DOC          ;       将A盘LXX子目录中所有扩展名为TXT的文件改成主文件名不变、扩展名为DOC的文件。
    一般情况下,REN命令中尽量避免使用通配符。如果通配符使用不当,会造成文件名的混乱。


┏━━━━━━━━┓
┃3.3 目录操作命令┃
┗━━━━━━━━┛

    目录操作命令是对目录进行操作的命令。包括目录显示、建立子目录、改变当前目录和删除子目录等基本命令。

    (1)目录显示命令
    ①格式:DIR [][]
    ②功能说明:DIR命令是内部命令;允许使用通配符;DIR命令用于显示(或打印)指定目录的目录清单,如果省略部分,系统默认为当前目录;常用的开关参数有:
    /W  :在一行上以多列方式显示,而且只显示文件名和子目录名;
    /P  :分屏显示目录清单。当文件项显示满一屏后暂停,按任意键继续显示;
    /S  :显示包括所有下级子目录中的文件目录;
    /A  :显示指定属性的文件和目录,包括隐藏文件和系统文件。
    例如:
    C:\>DIR                             ;       显示C盘根目录中的所有文件和子目录名。
    C:\>DIR A:\LXX /W                   ;       以多列方式显示A盘LXX子目录中的所有文件名。
    C:\>DIR \DOS\*.EXE /P               ;       分屏显示C盘DOS子目录中所有以EXE为扩展名的文件名。

    (2)建立子目录命令
    ①格式:MD [][]
    ②功能说明:MD命令是内部命令;用于在指定的目录下建立子目录;新建的子目录名不能与同级目录中已有的子目录名或主文件名相同;MD命令中如果缺省盘符和路径,表示在当前目录下建立子目录。
    例如:
    C:\>MD USER                         ;       在C盘根目录下新建名为USER的子目录。
    C:\>MD \USER\LXX                    ;       在C盘USER子目录下新建名为LXX的子目录。
    C:\>MD A:\USE                       ;       在A盘根目录下新建名为USER的子目录。

    (3)删除子目录命令
    ①格式:RD [:][]
    ②功能说明:RD命令是内部命令,用于删除指定子目录;RD命令不能删除当前目录和根目录;被删除的子目录中必须是空目录(即子目录中只有“.”和“..”两个文件标记)。
    例如:
    C:\>RD USER                         ;       删除C盘根目录下名为USER的子目录。
    C:\>RD \USER\LXX                    ;       删除C盘USER子目录下名为LXX的子目录。
    C:\>RD A:\USE                       ;       删除A盘根目录下名为USER的子目录。
    DOS命令中还提供了一个删除子目录的命令:
    DELTREE [:][]
    该命令可以直接删除指定的子目录,包括其中的所有的文件和子目录。由于该命令会删除大批文件,因此,必须谨慎使用。

    (4)改变当前目录命令
    ①格式:CD [:][]
    ②功能说明:CD命令是内部命令,用于改变并显示当前目录。
    例如:C盘有目录结构C:\USER\LXX\HZK,其中USER、LXX和HZK均为子目录名。则:
     当前目录和显示         命令                       改变后当前目录显示
     C:\>                        CD USER                 C:\USER>
     C:\>                        CD USER\LXX\HZK    C:\USER\LXX\HZK>
     C:\USER\LXX\HZK>    CD..                       C:\USER\LXX>
     C:\USER\LXX\HZK>    CD\                        C:\>
     C:\USER\LXX\HZK>    CD A:\DOS              A:\DOS>


┏━━━━━━━━┓
┃3.4 磁盘操作命令┃
┗━━━━━━━━┛

    磁盘操作命令的操作对象是软盘和硬盘,其中包括磁盘格式化、磁盘复制、磁盘检查、系统文件复制和磁盘目录结构显示等基本命令。

    (1)磁盘格式化命令
    ①格式:FORMAT [:][开关参数1][开关参数2]……[开关参数n]
    ②功能说明:FORMAT命令是外部命令,用于对指定的磁盘进行格式化;常用的开关参数有:
    /S:磁盘格式化后,将三个DOS系统文件复制到被格式化的磁盘上,是该盘可以启动DOS;
    /F:指定被格式化磁盘的容量。可以是360K、640K、720K、1200K、1440K或1.2M、1.44M等;
    /V:为磁盘指定一个卷标名(有1~11个字符组成);
    /Q:快速格式化磁盘,只删除被格式化磁盘上原有的文件分配表和根目录内容,不检查磁盘缺陷。
    例如:要在A驱动器中格式化一张新软盘,操作过程为:
    a.键入命令  FORMAT A:↙
    屏幕显示:
                Insert new diskette for drive A:
                and press Enter when ready...
    b.将新盘插入A驱动器中,关好驱动器闩门,按回车键。系统开始对软盘进行格式化操作。
    当格式化完成后,屏幕显示:
                Volume Label (11 Characters, Enter for None)?
    系统提示拥护输入卷标名,如不设卷标名就直接按回车。屏幕将显示磁盘格式化后的磁盘容量信息,并显示:
                Format another(Y/N)?
    拥护若要格式化其他软盘,键入Y,否则键入N结束格式化操作。
    如果要 在 A 驱动器中格式化另一张名为 LXX、 可作为系统盘使用的软盘, 可以使用命令:
FORMAT A:/S/V:LXX
    由于FORMAT命令不但可以格式化新磁盘,也可以对已经使用过的磁盘进行格式化。所以,对旧盘进行格式化前,必须确认盘中的全部信息一不在需要,否则可能造成无法挽回的损失。一般情况下,不要对硬盘格式化。

    (2)磁盘复制命令
    ①格式:DISKCOPY [:][:][/1][/V]
    ②功能说明:DISKCOPY命令是外部命令,用于将指定磁盘的内容复制到另一个磁盘上;d1表示源盘,d2表示目标盘;/1表示只复制源盘的一面到目标盘,/V 表示在复制的同时检验目标盘与源盘信息的一致性;源盘和目标盘的规格必须一致;当d1和d2相同时,表示在同一驱动器上惊醒磁盘复制;如果目标盘为格式化,复制过程中将自动对其进行格式化。
    例如:将A盘上的内容全部复制到B盘,可键入命令:
                DISKCOPY A: B:↙
    屏幕显示:
                Insert Source diskette for drive A:
                Insert Target diskette for drive B:
    提示用户将源盘和目标盘分别插入A驱动器和B驱动器中,然后回车。系统开始复制,复制结束后,屏幕显示:
                Copy press ended
                Copy another diskette (Y/N)?
    用户若要继续复制其它软盘,键入Y,否则键入N结束复制操作。
    在同一驱动器上也可以复制磁盘。如在A驱动器上复制磁盘,可以键入命令:
                DISKCOPY A: A:↙
    系统会提示用户何时插入源盘和目标盘,直至完成复制操作。
    从表面上看,磁盘复制命令DISKCOPY和文件复制命令COPY *.*都可以将一个磁盘的内容复制到另一个磁盘中,而实际上两个命令有许多不同点,见表3.1。

                      表3.1 DISKCOPY命令和COPY *.*命令比较
┏━━━━━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
┃            │DISKCOPY A: B: │ COPY A:\*.* B:┃
┠──────────---------──┼───────────┼─────────-─┨
┃复制系统、隐含文件   │     能      │          不能        ┃
┠──────────---------──┼───────────┼─────────-─┨
┃  单驱动器操作                │          能             │          不能        ┃
┠───────────---------─┼───────────┼─────────-─┨
┃复制是格式化磁盘            │          能             │          不能        ┃
┠──────────---------──┼───────────┼─────────-─┨
┃  整理文件碎片                │         不能           │           能          ┃
┗━━━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━┛

    (3)磁盘检查命令
    ①格式:SCANDISK [:]
    ②功能说明:SCANDISK是高级本DOS提供的外部命令,可以对指定磁盘进行磁介质、文件分配表、目录结构、文件存储情况检查,还可以对磁盘表面结构进行扫描。检查过程中,使用图形界面提示检查状态和检查结果。
    例如:键入命令
          SCANDISK A:↙
    系统将对A驱动器中的磁盘进行磁介质、文件分配表、目录结构、文件存储情况等检查,一以图形方式显示检查结果。然后提示用户是否进行磁盘表面结构扫描,如果用户同意扫描,系统将开始扫描操作,并以图形方式显示磁盘表面结构和扫描进程。在系统执行磁盘检查命令过程中,可以随时按“X”键中止操作或退出SCANDISK命令。

    (4)系统文件复制命令
    ①格式:SYS [:][]:
    ②功能说明:SYS是外部命令,用于将DOS启动时需要的三个系统文件IO.SYS、MSDOS.SYS、COMMAND.COM)复制到指定的磁盘上,使该盘成为可以启动DOS的系统盘;d1和路径指明系统文件的位置,若省略,表示系统文件在当前磁盘的根目录中;d2表示复制系统文件的目标盘。
    例如:
    C:\>SYS A:          ;将C盘的三个系统文件复制到A盘,使之成为系统盘。
    C:\>SYS A: B:       ;将A盘的三个系统文件复制到B盘,使之成为系统盘。

    (5)磁盘目录结构显示命令
    ①格式:TREE [][][/F]
    ②功能说明:TREE是外部命令,用于显示指定磁盘的目录结构;/F表示还要显示各级目录中的所有文件。
    例如:
    C:\>TREE A:         ;显示A盘根目录结构。
    C:\>TREE \USER      ;显示USER子目录的结构。
    C:\>TREE A: /F      ;显示A盘根目录结构和各级目录中的所有文件名。


┏━━━━━━━━━━┓
┃3.5 系统环境设置命令┃
┗━━━━━━━━━━┛

    系统环境设置命令一般是内部命令。
    (1)清屏命令
    ①格式:CLS
    ②功能说明:CLS命令用于清除屏幕,并将系统提示符和光标定位到屏幕的左上角。
    例如:
    C:\>CLS↙
    屏幕上原有内容全部消失,只在屏幕的左上角显示“C:\>”。

    (2)日期设置命令
    ①格式:DATE []
    ②功能说明:DATE命令用于显示和重新设置系统日期;mm表示月,dd表示日,yy 表示年(省略前两位),并用符号“-”隔开。
    例如:C:\>DATE↙
    屏幕显示系统当前日期为:
        Current date is 11-18-97
        Enter new date(mm-dd-yy):_
    提示用户输入新日期。如果不修改日期,就直接回车。

    (3)时间设置命令
    ①格式:TIME []
    ②功能说明:TIME 命令用于显示和重新设置系统时间 ;hh 表示小时(0~23),mm 表示分钟(0~59),ss 表示秒(0~59),并用符号“:”隔开。
    例如:C:\>TIME↙
    屏幕显示系统当前时间为:
        Current time is 10:05:48p
        Enter new time:_
    提示用户输入新时间。如果不修改时间,就直接回车。

    (4)显示DOS版本号命令
    ①格式:VER
    ②功能说明:VER命令用于显示当前使用的DOS版本号。
    例如:C:\>VER
    屏幕显示:
        MS-DOS Version 6.22
    其中6表示主版本号,22表示次版本号。


  (完)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                       本书原著著作权所有:《计算机基础应用》编写组
                                                          (中央广播电视大学出版社)
                                       本书与原著略有修改,排版版权所有:QQ-PETER

※ 修改:·mmbbooyy 於 Jul 21 15:23:20 修改本文·[FROM:   61.137.130.78]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 61.176.58.142]

(本文采用S-Term文章拷贝脚本拷贝)

[ Last edited by zzz19760225 on 2017-10-31 at 14:22 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 78 楼』:  

[转帖]MS-DOS淺談                                    :Dark-Destroy
http://www.cn-dos.net/forum/viewthread.php?tid=1961&fpage=1

[转帖]MS-DOS淺談

一、何谓DOS?
所谓DOS,是〝Disk Operating System〞的缩写,翻译成中文,就是〝磁盘作业 系统〞。
计算机设计者将驱动硬件工作的程序及一些使用计算机时必备、常用的程序加以组织编排的程序集叫作操作系统(Operation System,简称为 OS),控制了计算机设备的各个组件,它同时负责监督与指挥各组件间的协调与工作。
而DOS是以磁盘作业为主的操作系统中的一种,称为磁盘操作系统(Disk Operation System,简称DOS),而Microsoft所开发的DOS(即MS-DOS)而IBM-PC的操作系统 叫PC-DOS。它主要功能是用来管理磁盘上的资料,所以才称为DOS-Disk Operating System,磁盘操作系统。
DOS的主要功能:
1.        管理磁盘上资料的存取
不管任何数据,平时都必须存放于磁盘上,要使用时再从磁盘上将资料加载 计算机,这项工作就是由DOS负责执行。因此DOS扮演了使用者、计算机、应用程 式三者之间的中间人,即是所谓的接口(Interface)。至于磁盘资料的管 理,包含了显示磁盘目录或资料的内容,格式化磁盘,资料的复制与删除等等。
2.        协调与指挥各项外围设备的运作
不论是想将一份资料经由打印机打印出来,或是使用鼠标去执行某 些软件,诸如此类,这些外围设备的运作,也必须透过DOS监督 管理。
3.        计算机操作环境的设定
由于计算机各部份组件可依使用者的喜好与能力自由组合,因此,必 须依据硬件的配备,设定一个最佳的操作环境,如:有多少的记忆 体可供使用,虚拟磁磁机的设定,一次可以开启数据文件的数量等 等,都是由DOS设定好之后,应用程序便依据所设定的操作环境 运作。

开机五大步骤:
1.        开启计算机电源。
2.        自我测试(Self-Test)
在开启电源之后,计算机内部的一个叫做BIOS(Basic Input/Output System)的系统程序会开始运作。BIOS首先先将你的硬设备整个 检查一遍,包括内存、键盘、磁盘驱动器、萤光幕、甚至打印机,都 是他的检查范围。如果任何一项设备发生问题,BIOS便会在屏幕上 出现错误的原因,如果错误情形严重,甚至会无法开机。
3.        加载DOS
DOS包含了三个档案:
   IO.SYS            输入、出控制部份       MSDOS.SYS          系统逻辑执行部份     COMMAND.COM        命令处理执行部份    
4.        加载DOS就是将这三个档案库入至内存中,如果无法顺利加载 这三个档案,屏幕上便会出现下列错误讯息:
      Non-system disk or disk error                 Replace and strike any key when ready         
5.        这就是告诉我们「这是一张没有DOS系统的开机磁盘,或是磁盘 上的资料无法被读取,请更换正确的磁盘,并按下任意键」。
6.        若是DOS加载成功了BIOS便将控制权交给DOS,自此之后计算机 就由DOS来管理了。
7.        加载CONFIG.SYS(非必要性)
当DOS被顺利的加载内存之后,它会尝试着搜寻一个相当特殊 的档案:CONFIG.SYS。这个档案我们称之为「组态文件」,其功能是 设定DOS的操作环境。若是DOS找不到这个档案,DOS会有 它自己内定的环境设定值。因此,若是找不到CONFIG.SYS,仍可顺 利的使用计算机。
8.        加载AUTOEXEC.BAT(非必要性)
最后,DOS会搜寻另一个特殊的档案:AUTOEXEC.BAT,这个档案 我们称之为「自动批次档」,它可以省掉每次开机后,一些例行的 工作指令,像设定DOS的提示符号、设定档案的搜寻路径等等。 至此就完成了开机的步骤。

一、树状结构
                          ╭───────╮
                         │   (ROOT) C:  │
                          ╰───┬───╯
                                    │
                   ┌───---──┼──────┐
             ┌-─┴─┐  ┌---─┴─┐    ┌─┴─┐
             │ ET3  │  │DOS62 │    │ PE2  │
             └-─┬─┘  └──----─┘    └─┬─┘
          ┌───┴───┐          ┌─--──┴-┬──-───┐
     ┌─┴-─┐    ┌──┴--┐┌─┴-─┐  ┌-─┴─┐  ┌-─┴─┐
     │ UTL  │    │ DMO  ││ BAK  │  │ DOC  │  │ TXT  │
     └──--─┘    └──---─┘└──-─┘  └─--──┘  └─--──┘
1.        根目录-简称为根(ROOT或\),FORMAT 磁盘时所造出的,此目录永远存在, 不能删除,激活系统后就会进入根目录。
2.        支目录-根目录以外的目录均为支目录,支目录无层数限制。
3.        工作目录-目前所在的目录,就叫工作目录(Working directory)或现在目录 (Currtent directory ),可以用〝.〞代表。
4.        子目录-由一个目录所直接衍生者,就称为此目录的子目录(Child directory)。
5.        父目录-子目录的直接衍生者称为此子目录的父目录(Parent directory), 可以用〝..〞来代表。
6.        路径-目录与目录(或档案)间的联机叫作路径(PATH)。
7.        径名-路径上的所有目录与文件名之连串而以〝\〞分隔者,称为径名(Pathname)。
EXAMPLE:
(1)C:\PARK.COM
(2)C:\DB3\SALES.PRG
(3)C:\PE2\DOC\HW.TXT
(4)C:\DOS\DOS62\FORMAT.COM
(5)C:\ET3\UTL\SETHRC.COM
倘若在磁盘上有数百个档案,要是全都放在一起,而没有做分类的工作 的话,则在寻找使用某个档案时,会相当的不便。因此我们必须将档案 分门别类的储存,是故目录的观念便产生了。通常我们会利用许多个目 录,来将整个磁盘空间划分成几个区域,每个目录中都可分别存放不同 的档案,且各目录中的档案完全独立,彼此互不干扰。
为了便于管理众多的目录,DOS采用了所谓的「阶层式」的目录管理 方式,即在每个目录之中,还可以往下再建立许多目录,以做分类的工 作。由于每个目录都可以往下产生目录,我们便称某目录之下产生的目 录称为该目录的「子目录」,每个目录的上层目录则称为该目录的「父 目录」或称为「亲代目录」,而最最上层的目录我们则称为「根目录」 ,故根目录能有许多子目录,但却不可能有父目录。而对任何目录来说 ,可以有许多个子目录,也可以没有任何的子目录,但却一定有唯一的 一个父目录(根目录除外)。
目录命名原则
由于一个目录下可能会有许多的子目录,因此为了便于区分,因此 每个目录都必须有一个名称。至于目录的命名规则如下:
·        根目录-以反斜线( \ )为其名称。
·        子目录-由使用者自行命名,命名规则和文件名称完全相同。
·        亲代目录-以〝..〞(连续两个句点)代表亲代目录。
·        目前目录-以 〝.〞(一个句点)代表目前目录。
另外要注意的是在同一个目录区之下,不能同时存在两个名称相同的文件 案或子目录,但是由于之前有提过各个目录中的档案是完全独立,互不 干扰的,因此在不同的目录区中可以存在着相同名称的档案或子目录。

二、路径(PATH)
由于在一个磁盘空间会分成若干个目录区,因此当我要要指定某一个档 案时,除了要告诉DOS所在的磁盘驱动器代号之外,还必须告诉DOS该 档案位于哪一个目录区之中。而这种指明档案所在的目录区,就是所谓 路径的观念。要描述一个路径,可使用以下两种格式:
   ┌───────────────────-------------──────────┐
   │格式一:                                                                  │
   │      磁盘驱动器代号:\目录1\目录2\目录3\...\文件名称      │
   │                              │              │                              │      
   │    由根目录出发用来隔开各         └>与文件名称亦以       │
   │                          层的目录             〝\〞 隔开             │
   │                                                                              │
   │格式二:                                                                  │
   │      磁盘驱动器代号:目录1\目录2\目录3\...\文件名称      │
   │                │                                                           │
   │                └>没有反斜线就代表由目前目录区往下         │
   │                                                                              │
   └───────────────────------------──────────┘
EXAMPLE:
(1)C:\PARK.COM
(2)C:\DB3\SALES.PRG
(3)C:\PE2\DOC\HW.TXT
(4)C:\DOS\DOS62\FORMAT.COM
(5)C:\DOS\DOS33\FORMAT.COM

MS-DOS内部命令
DOS的指令分成两大类:内部命令(Internal Command)以及外部命令(External Command)。DOS是将一些常用的指令都归属为内部命令,至于较少用的指令则大都属于外部命令。DOS之所以要把指令分成外部与内部指令,主要是为了节省内存。若将一些不常用的指令也都常驻在内存中,则会降低内存的使用效率。
当使用者输入一个DOS指令之后,该指令会经由COMMAND.COM 分析, COMMAND.COM 我们称之为命令处理器,其功能就是判断使用者所输入的指令,是内部指令还是外部指令,倘若是内部指令,随即交给IO.SYS或 MSDOS.SYS 处理。但若是外部指令,则到磁盘上找寻该档案,若是找到了,则将控制权转交到该档案,即执行该指令。如果该档案找不到,屏幕上便会出现
  Bad Command or filename         
这样的错误讯息。
1.        内部命令与外部命令
o        内部命令
内部命令是隐藏在DOS的 IO.SYS以及MSDOS.SYS二个档案中,当 以DOS开机之时,这两个档案就加载内存中,并一直常驻着。 所以,在DOS开机后,内部指令就随时可用。
o        外部命令
外部命令则是以档案的方式存放在磁盘上,要用时才从磁盘上将该 档案加载内存中。换言之,外部命令不是随时可用,而是要看该 档案是否存在于磁盘中。
2.        常用的内部命令
DIR(列出目录的内容),DIRectory ,简称DIR
MKDIR(造出支目录),Make Directory ,简称MD
CHDIR(转移工作目录),Change Directory ,简称CD
COPY (拷贝一个或多个档案)
REN(更改檔名),REName ,简称REN
DEL(删除一个或多个档案),DELete ,简称DEL
TYPE(列出档案的内容)
PROMPT(符号参数或文字)
DATE(系统日期显示、设定与管理)
TIME(系统时间显示、设定与管理)
CLS
VER(显示目前DOS之版本),VERsion ,简称VER
PATH 路径1;路径2;路径3;......
VOL(显示磁盘卷标名),Volime label,简称VOL

DOS的外部命令
1.FORMAT        磁盘驱动器:[/V][/Q][/U][/F:n][/B][/S][/T:n][/N:n][/1][/4][/8]
        〔功能〕 格式化磁盘或硬盘
2.UNFORMAT         磁盘驱动器:[/U][/L][/P][/TEST][/J][/PARTN]
        〔功能〕 救回磁盘片或硬盘上的资料
3.SYS        磁盘驱动器:
        〔功能〕 将DOS的三个系统档案IO.SYS、MSDOS.SYS、及COMMAND.COM 转移到指定的磁盘上
4.UNDELETE        磁盘驱动器:路径 文件名[/LIST|ALL][/DOS|DT]
        〔功能〕 救回磁盘片上被删除的资料
5.DELTREE        [磁盘驱动器]路径[/Y]
        〔功能〕 可以将指定的子目录及其中的档案或该子目录一并删 除
6.MOVE        
        ┌ 资料来源 ┐ ┌─ 目的地 ─┐[磁盘:][路径]文件名 [磁盘:][路径][文件名]
〔功能〕 依指定路径搬移档案,同时可更改档名        
7.XCOPY        档案来源 目的地[/A][/M][/D:date][/P][/S] [/E][/V][/W]
        〔功能〕 档案对档案的复制,但可将子目录区的档案一并复制
8.DISKCOPY (拷贝整张磁盘)  DISKCOPY 来源磁盘驱动器: 目的磁盘驱动器:  C:>DISKCOPY [D1:] [D2:] 
? EXP:  C:>DISKCOPY A: B:  
若只指定第一部磁盘驱动器,则目前的磁盘驱动器会被当成目的磁盘的磁盘驱动器.对于全新未格式化的磁盘,DISKCOPY会一边格式化一边拷贝;而已格式化的磁盘,则只拷贝磁盘内容。 〔功能〕 将整张磁盘以磁道对磁道的方式复制
9.MEM         [/P][/D][/C]
        〔功能〕 显示内存使用情形
10.LABEL        [][卷标]
        〔功能〕 设定或取消磁盘的卷标
11.APPEND          路径1;路径2;路径3;...[/E][/X:ON|OF][/PATH:ON|OFF]
        〔功能〕 设定资料文件的搜寻路径
12.ATTRIB        [+R][-R][+A][-A][+S][-S][+H][-H] 路径 文件名[/S]
        〔功能〕 改变或显示档案的属性

批次档的建立与使用
所谓批次档(Batch file),是由一个或一个以上的DOS指令所组成的 档案,它是一个可执行档,可以直接在DOS下直接执行。当执行一个 批次档之时,DOS会将该批次文件内所包含的指令依序执行。因此使用 批次档可以避免重复输入相同的指令,以节省时间。
DOS对于批次文件有以下一些注意事项:
1.        批次档的附加档名必须是 .BAT。
2.        批次文件中可包含的指令除了 (1)DOS的内部指令(2)DOS的外 部指令 (3)可执行档的主档名之外,另外还有(4)批次文件专用的 指令。
3.        执行批次档时,亦是输入批次档的主档名即可。
4.        批次文件的执行先顺序较 .COM和.EXE为低,所以尽量避免和 .COM或 .EXE檔使用相同的主檔名。
5.        按下CTRL-C或CTRL-BREAK可中断一个正在执行的批次档。
此外还有一些指令是专供批次文件使用的指令:
ECHO        文字叙述
        ON|OFF
        〔功能〕 (1)将指定的文字叙述显示在屏幕上     (2)批次文件中执行的指令是否显示在屏幕上
PAUSE          
        〔功能〕 暂停批次文件的执行,并在屏幕上显示Press any key to continue……的讯息。
        
CALL        批次檔名
        〔功能〕 在批次文件中呼叫另一个批次档
REN        文字叙述
        〔功能〕 在批次文件加上批注文字,以增加批次档的可读性。

[ Last edited by zzz19760225 on 2017-10-31 at 15:30 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 79 楼』:  

第1课时:认识DOS,知道什么是DOS。                                     :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=1649&fpage=1&highlight=%2Bko20010214

第1课时:认识DOS,知道什么是DOS。

DOS教学计划之初级班-第1课时:认识DOS,知道什么是DOS。
什么是DOS?
Disk Operation System.磁盘操作系统。
这就是DOS。
很简单吧?呵呵。。。
不过,让我们从头解释吧。
先我们要知道什么是电脑。就是计算机啦。俗称电脑。
一台电脑,有这么几个部分。让我们来列一张电脑配置单:
主板:MainBoard(也有称MotherBoard的)
中央处理器:CPU(Central Processing Unit),中央处理单元,又叫中央处理器或微处理器,被喻为电脑的心脏。
内存:Memory,一般为RAM(Random Access Memory),随机存储器,即人们常说的“内存”。
硬盘:HardDisk 用来存储各种文件的介质
显卡:Video Card (Display Adapter) 驱动显示器的家伙
显示器:Monitor  显示屏幕
声卡:Sound Blaster 声霸卡 让电脑能够从音箱发出声音的东西
音箱:Sound Box  发出声音的东西
光驱:CD-ROM (CD Driver) 读光盘的东西
软驱:Floppy Drive(FD) 读软盘的东西
键盘:Keyboard 用来打字的东西
鼠标:Mouse  用来在电脑屏幕上点来点去的东西
机箱:Machine Box 大箱子,是大部分部件的家
一般我们看到的电脑都是由:主机(主要部分)、输出设备(显示器)、输入设备(键盘和鼠标)三大件组成。而主机是电脑的主体 ,在主机箱中有:主板、CPU、内存、电源、显卡、声卡、网卡、硬盘、软驱、光驱等硬件。
从基本结构上来讲,电脑可以分为五大部分:运算器、存储器、控制器、输入设备、输出设备。

1、机箱,一般电脑的主要零件都放在这里。
2、显示器,用来看电脑的工作过程,要不然,你都不知道电脑究竟在做什么。
3、键盘和鼠标,向电脑输入有用的命令,让它去为我们工作。
4、主板,这是一块很重要的东西,虽然它长得有点“丑”,这里是决定你这台电脑性能的重要零件之一哦。
5、内存,当电脑工作时,电脑会在这里存上存储数据,相当于人的记忆。
6、CPU,也称中央处理器,是电脑运算和控制的核心。
7、显卡,电脑通过这个玩意传送图像给显示器。
8、声卡,电脑通过这个玩意传送声音给音箱的哦。
9、硬盘,平常人们常说我的硬盘有多少G多少G,是指这个硬盘的容量,而G数越多能装的东西便越多。
10、软驱,就是插软盘的玩意,现在一般都用3.5英寸的,古老年代用5.25英寸的,现在我们去买人家都不卖了。
11、光驱,听CD当然少不了这个,还有有时候你要安装某些软件都是在光盘上的,所以这个用处大大。
12、电源,主要用于将220V的外接电源转换为各种直流电源,供电脑的各个部件使用。
。。。。。。。有了这些,我们可以正常工作了,当然如果你还想HIGH些,得买个音箱。如果你要上网的话,还要一个猫(Modem调制解调器)--用来拨号上网,或者一个ADSL Modemt 和网卡(Net Card)--用来上宽带网。

  刚才,我们接触到了硬盘(Hard Disk)这个词,而DOS,就是基于Disk的操作系统。关于硬盘,要讲的又太多了,这里不多讲,刚才大家一下子看了上面这么多的名词解释,估计就已晕了。呵呵 。。。我们只要知道,硬盘是来存放各种文件的东东就可以了。不过,如何存放这些文件,如何管理这些文件,那就要一个标准了。所以呢,硬盘先要低格(Low-level Formatting,低级格式化),这是为了让DOS之类的操作系统能认识它,但一般出厂时厂里就做好了这一步,不必我们操心;分区(FDISK),这是把硬盘分成一个(一个也叫“分成”?)或几个分区(Partition,就是我们平常说的C盘,D盘等“盘”);高格(High-level Formatting,高级格式化),这是为了能让DOS这个操作系统能认识并进一步管理它。怎么说呢?打个比方,把硬盘比作一个木柜来讲,低格好比是让DOS知道这是个木柜,分区好比是DOS用几块隔板将这个木柜隔成相同或不同大小的几个隔间,高格呢?好比是将这几个隔间用一定规格的小抽屉填进去,这样,一个“文件柜”就做好了!呵呵。。。
  这样处理过后的硬盘,如果就这样用,当然是可以用了,但是要从软盘或光盘启动才行,要从硬盘启动的话,还要传送系统文件(System Translate)给硬盘的主分区。这样,从硬盘也可以启动了。关于system translate,DOS有个外部命令叫sys(sys.com),是专门做这个工作的。它会把启动需要的几个文件(io.sys,msdos.sys,command.com)复制到主分区的特定位置,使硬盘能启动(BootEnabled)。这也是DOS系统的最小模式。有了这三个文件,你就可以使用DOS系统了。当然,这是最小模式,所以你能作的事很有限,只能使用内部命令。而DOS的强大功能一般都是通过外部命令来实现的。这里我们讲一下command.com,这是所谓的命令解释器,当我们输入一条命令时,它会检查是不是内部命令,是哪一条内部命令,然后执行它。如果我们输入的是一条外部命令或是软件的主执行文件名时,它会检查磁盘上(当前目录中和指定的路径中)有没有该命令或软件,有则负责解释运行这条外部命令或是这个软件。要是没有呢?就会告诉你:Bad command or file missing.(无效的命令或文件丢失)。什么叫内部命令(internal command)呢?就是隐藏在command.com里面的命令,比如dir,cd,md,rd,del,copy,time,date...等等。什么叫外部命令(external command)呢?就是必需有额外的文件的命令(这个文件的名字和这条外部命令的名字一样),这个文件就是这个命令的内容(当然,这些内容是二进制代码,我们是看不懂的,但是command.com能懂)。一般地,有xcopy,deltree,fdisk,format,sys...等等。
  好了,我们现在知道了什么是DOS,磁盘,格式化,启动,最小模式的DOS,内部命令,外部命令。
就到这里吧,休息,休息一会儿。


:这里附一些电脑名词的解释,如果我上面的话中没讲清楚,可以参照下面的解释。
  RAM:Random Access Memory,随机存储器,即人们常说的“内存”。
  ROM:Read-Only Memory,只读存储器。
  SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,又称同步DRAM,为新一代动态存储器。它可以与CPU总线使用同一个时钟,因此,SDRAM存储器较EDO存储器能使计算机的性能大大提高。
  CMOS:是Complementary Metal Oxide Semiconductor的缩写,含义为互补金属氧化物半导体(指互补金属氧化物半导体存储器)。CMOS是目前绝大多数电脑中都使用的一种用电池供电的存储器(RAM)。它是确定系统的硬件配置,优化微机整体性能,进行系统维护的重要工具。它保存一些有关系统硬件设置等方面的信息,在关机以后,这些信息也继续存在(这一点与RAM完全不同)。开机时,电脑需要用这些信息来启动系统。如果不慎或发生意外而弄乱 了CMOS中保留的信息,电脑系统将不能正常启动。
  PCI:Peripheral Component Interconnection,局部总线( 总线是计算机用于把信息从一个设备传送到另一个设备的高速通道)。PCI总线是目前较为先进的一种总线结构,其功能比其他总线有很大的提高,可支持突发读写操作,最高传输率可达132Mbps,是数据传输最快的总线之一,可同时支持多组外围设备。PCI不受制于CPU处理器,并能兼容现有的各种总线,其主板插槽体积小,因此成本低,利于推广。
  CD-ROM:Compact Disc-Read Only Memory,压缩光盘-只读记忆(存储),又叫“只读光盘”。 CD-ROM的确切含义是致密光盘只读存储器(Compact Disk Read Only Memory),就是时下人们常说的光驱。它能阅读的盘片都光闪闪的,和音乐CD一样!CD-ROM驱动器不仅可以播放音乐CD,还可以阅读存于CD上的软件,还有广泛流行的影碟VCD。
  Modem:调制解调器,家用电脑上Internet(国际互联网)网的必备工具,在一般英汉字典中是查不到Modem这个词的,它是调制器(MOdulator)与解调器(DEModulator)的缩写形式。Modem是实现计算机通信的一种必不可少的外部设备。因为计算机的数据是数字信号,欲将其通过传输线路(例如电话线)传送到远距离处的另一台计算机或其它终端(如电传打字机等),必须将数字信号转换成适合于传输的模拟信号(调制信号)。在接收端又要将接收到的模拟信号恢复成原来的数字信号,这就需要利用调制解调器。
  UPS:为Uninterruptible Power Supply(不间断电源)的英文缩写。它是伴随着计算机的诞生而出现的,是电脑的重要外围设备之一。UPS是一种含有储能装置,以逆变器为主要组成的恒压恒频的不间断电源,用以保护电脑在突然断电时不会丢失重要的数据。
主板是电脑系统中最大的一块电路板,它的英文名字叫做“Mainboard”或“Motherboard”,简称M/B。主板上布满了各种电子元件、插槽、接口等。它为CPU、内存和各种功能(声、图、通信、网络、TV、SCSI等)卡提供安装插座(槽);为各种磁、光存储设备、打印和扫描等I/O设备以及数码相机、摄像头、“猫”(Modem)等多媒体和通讯设备提供接口,实际上电脑通过主板将CPU等各种器件和外部设备有机地结合起来形成一套完整的系统。电脑在正常运行时对系统内存、存储设备和其它I/O设备的操控都必须通过主板来完成,因此电脑的整体运行速度和稳定性在相当程度上取决于主板的性能。

{(不负责任的第二课时在此)
(连接abcdefghijklmnopqrstuvwxyz,com,cn)  :复制粘贴者备注,:(    吼吼    }

第3课时:DOS的基本概念,如文件、文件夹、驱动器等                     :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=1677&fpage=1&highlight=%2Bko20010214

第3课时:DOS的基本概念,如文件、文件夹、驱动器等。

其实在第一课里我们已经接触到了一些基本概念。而且DOS里最基本,最关键的硬盘我们也有一定的了解。
现在我们还是来重点讲一下驱动器(主要是讲硬盘)。
驱动器(Drive,Drivers):我个人感觉这是一种windows下的提法,按我们DOS下的叫法应该叫磁盘(Disk)比较好。注意,这里讲的驱动器和“驱动”不是一个概念。而且,讲“驱动器”有点混淆的味道。严格来说,磁盘驱动器是用来汇报磁盘的信息给CPU并把CPU给磁盘的操作命令解释执行的一个中间部件,而不是磁盘本身。实际上应该叫“IDE ATA/ATPI controllers”。而叫做“disk drives”的,实际上是DISK,而不是它的drives.呵呵 。。。
不管了,我们这里讲的就是磁盘!
磁盘又包括软盘和硬盘。光盘的介质不是磁性物质,所以不能算到磁盘类里。
软盘(Floopy disk),又分为5寸盘和3寸盘。5寸盘现在很少见了,古董级的东东。要用专用的5寸盘驱动器来读写。3寸盘现在还有,大部分电脑上(尤其是旧电脑)都有3寸盘驱动器,我们叫软驱的那东东,就是专门来读写3寸盘的。而且,在DOS世界里,软盘可是功不可没的功臣哦。以前互联网还没流行的时候,传递文件可基本都是由软盘来实现的。不过,随着U盘(flash闪盘,一般都是USB接口的,又叫U盘)的流行,软盘就要趋于消亡了。。。3寸盘的的容量一般为 1.44M,软盘只能存储一些小的文件。在DOS时代,文件都不大,几K到几百K,所以呢,软盘就可以大显身手。现在一首MP3的大小一般是4M左右,也就是说,一张软盘连一首MP3都放不下,软盘退居二线也就不足为奇了。现在软盘一般的用途有:1。作为启动盘,在系统有故障不能启动时从软盘启动,来加载一个最简单的操作系统(一般是最小模式的DOS)和一些工具软件来解决电脑的故障。2。作为杀毒盘,在系统感染了病毒后启动一个干净的内存环境并加载 DOS下的杀毒软件进行杀毒。3。作为密钥盘,一些软件被设计成要验证用户有没有特定的密钥盘来判断是否是合法用户。4。作为备份盘,一些文本文件或其它的较小的文件可以保存在软盘中作为备份。一张软盘可以存储70万个汉字,放几本文本格式的小说是不成问题的。5。作为不同电脑之间的传递文件的工具。一般很少用了。

硬盘,就是我们上次说的那个“文件柜”,今天让我们来看看柜子的结构吧。
我们上次说了,硬盘在经过低格,分区,高格,并传递系统后使其能启动了。
而经过分区后,一块硬盘就变成了有几个逻辑盘的一个大“文件柜”了。而这些逻辑盘呢,通常我们把它们叫做C盘(第一个分区,主分区),D盘(第二个分区),E盘。。。依次下去,可以一直到Z盘。但我们一般不会那么变态的了,非要把24个字母用完吗?(因为软驱占了两个字母A和B,分给硬盘的最多就只剩 24个字母了)。常常分为2个分区到6个分区左右。

而做为第一个分区的又是主分区的C盘,在它的第一个扇区(sector at cylinder 0, head 0, sector 1 )存放的是主引导记录(Master Boot Record (MBR))。当从硬盘启动时,INT 19 试着读取MBR,如果发现MBR,则把它读入到内存地址 0000:7c00且INT 19 跳到内存地址0000:7c00. 在这MBR中的一个这小程序会试着找到一个可启动的(bootable)分区,如果发现可启动分区,那启动扇区将会被读取到内存地址0000:7C00且这MBR 程序(现在是MBR程序了,刚才是int 19)跳到内存地址0000:7C00. 这样就可以开始启动了。不同的操作系统会有不同的启动扇区。
在(0柱面1磁头1扇区)这个地方呢,是启动扇区。
然后呢,在某个地方,有文件分配表(FAT1 和FAT2),我也不知道在哪啦。
但是文件分配表的作用我还是知道的。这个东东就相当于一份索引,或者说是一份目录(这里讲的目录是指我们一般说的象杂志啊,书籍前面的那个目录。不是电脑里按window的叫法叫“文件夹”的那个目录)。它指出这个盘里有哪些文件和文件夹,这些文件和文件夹分别在这个盘的什么地方。这是不是有点象杂志里的索引?它指出这本杂志有哪些文章,这些文章在这本杂志的哪些页面里。

其它盘的结构也基本一样,只不过没有MBR而已。

文件:文件相当于细胞。任何生物都是由细胞构成的。任何软件也都是由文件构成的。不管它是系统软件还是应用软件,它都是由一个或多个文件组成的。硬盘是用来存文件的。它里面(数据区)存储的全是文件。文件有很多类型。但一般为分为可执行文件和不可执行文件。

在DOS下,文件的命名遵守8.3规则。即:最长8位的文件名,由小数点分隔后再跟上最长3位的后缀名,如:READ.ME、SETUP.EXE,一般情况下文件名不允许使用汉字(注:其实用汉字也可以,只不过在没有汉字系统的支持的情况下不方便查看管理汉字文件名,系统会显示为乱码),只能由字母、数字和一些符号组成。如READ.ME用中文理解就是“读我”,即提示用户在使用软件前先看看这个文件的内容,以获取更多的提示信息。而更重要的是,DOS下规定用后缀名来区分各种不同的文件。

  在DOS下最容易遇到的首先是可执行文件,后缀名有两类:*.exe、*.com(此处的*表示文件名任意),它们是由汇编语言或其它高级语言编出的程序经过编译后直接在DOS下运行的文件。有时由于软件功能多、内存偏小,不能一次性全部调入内存还可能有同文件名的ovl文件,如ws.exe、 ws.ovl。另外还有一种文件可以直接运行,*.bat,即批处理文件,其中有许多命令或可执行文件名,主要用于提高工作效率,其中最有用的是 Autoexec.bat,这个文件在开机时会被自动执行(自动执行在英文中就是Automatically execute)。而另外一种可以加载但不能直接运行的文件即是系统扩展管理文件*.sys(sys即系统system),它主要提供某些非标准设备如鼠标、扩充内存等的驱动程序,如mouse.sys、himem.sys。为了统一管理还专门规定了一个config.sys的文本文件来一次性地在开机时自动调入这些必需的设备驱动程序,这些文件一旦被误删或换名或被病毒侵袭则将直接导致系统工作不正常。

    其它的文件都是不可执行的文件。(光指DOS下的,window的可执行文件的类型更多)
    常见的不可执行文件有:文本文件,数据文件,图像文件,声音文件等(其实后两类也是在window以后才见得多些。)
  DOS下字处理产生的文件原本是可以不用后缀的,但人们常用*.txt表示(txt即文本text)。被所有的平台和所有应用程序支持。而为了管理方便,人们也可以用自己的名字做后缀来表示是自己建的文本文件,如我输入的很多文章即为*.mcj,为了便于用户在意外删掉原文件的情况下能尽快恢复原文件,许多字处理系统都提供了一种自动备份的功能,如我第二次编辑JIHUA.MCJ时(JIHUA:计划的汉语拼音),系统会先拷贝一份原文件为 JIHUA.BAK。使用具有特殊格式功能的字处理软件,如求伯君先生早年推出的WPS,就会规定其后缀为.wps,用以标识是用WPS生成的文本文件。当使用字处理软件编辑高级语言程序时,后缀通常为相应语言的前三个字母(如:*.BAS即BASIC语言源程序,*.PAS为PASCAL语言程序, *.FOR为Fortran语言程序,*.C即为C语言,*.ASM即为汇编语言程序)。
    数据文件一般后缀名为DAT。常常是由一些程序生成的或被一些程序调用的。

文件夹:这是一种window的叫法。按我们DOS下的叫法应该叫目录(Directory)。但按window下的更容易懂。呵呵。。。很简单啦。文件夹当然也是用来放文件的东东。为什么要有文件夹?方便管理嘛。就这样说算了。什么叫根目录(root-directory)?第一级目录就叫根目录。根目录没有目录名,盘符后直接接一个斜杠线就表示根目录。比如C:\表示C盘的根目录。什么叫子目录(sub-Directory)?就是在目录里面又建的目录叫子目录。就象硬盘里可以不但可以存放文件还可以“存放”目录一样,目录里面也可以存放文件和“存放”目录。这种存放在目录里面的目录就叫子目录,而上一级目录 (用来存放这一级目录的目录)叫做父目录。其实这个只要你在DOS的界面下敲入“DIR”这条命令就很好理解。

如图所示,后面带有<dir>的是目录,没有的则是文件,这些目录里都分门别类地存放着许多不同用途的文件。你看,第一排是DOS目录,它里面有许多DOS命令文件和一些辅助信息文件。第二排是WINDOWS目录,它里面包含着许多有关WINDOWS程序的文件。
  在DOS中,文件名的规则是8.3形式,即一个文件名由文件基本名和文件扩展名组 成,中间用点“.”隔开,文件基本名由不超过8个英文字母或数字组成,文件扩展名由不超过三个英文字母或数字组成,文件基本名必须有,扩展名可以没有。
  看上图,第一列的就是“文件基本名”,第二列的是“文件扩展名”。注意:在用dir命令显示文件列表时,文件基本名和扩展名之间并无“.”分隔符,但你在输入完整的文件名时必须输入它。
  第三列显示的是文件的大小,表示它占用了多少存储空间,也就是文件包含信息的多少,包含的信息越多,文件就越大;
  第四列表示的是文件建立的日期或者是最后被改动的日期,每个文件都有对应的生成时间,就象每个人都有自己的生日一样,文件的生成时间就是文件形成的时候。时间采用通常的表示方法,由年、月、日组成。
  最后一列表示文件生成的具体时间,最后的一个字母a表示上午、p表示下午。
  我们再来看看倒数一二行,这些是什么意思呢。“ 10 file(s) ”是要告诉你这个目录内有 “ 10 ”个文件,这些文件加起来一共有“ 64,692 bytes”大,在这种计算中,每个子目录也算是一个文件,但它的大小算零。最后一行的是告诉你当前你的工作磁盘上还剩下“ 215,735,513 bytes”大小可用的磁盘空间。
  如果我们要看看DOS目录里的文件,那么我们可以敲dir dos回车,也就是查看DOS目录的意思,如果敲dir windows回车就是查看windows目录下的文件的意思。 大家可以试着练习练习dir命令,观察文件夹下面的东西。
就到这里吧。休息,休息一会儿。

这里附一些资料:

操作系统是管理计算机系统资源以及方便用户利用计算机系统资源的一组程序。这组程序是系统软件。计算机系统资源包括硬件资源(微处理器,存储器,输入、输出设备及其它外部设备)和软件资源(程序、文件或数据等)。世就是说,计算机硬件资源和软件资源构成了计算机系统。操作系统就是管理这些硬件资源和软件资源的一组程序。

    主分区表位于硬盘主引导扇区(0柱面0磁头1扇区)的后部。从1BE字
节开始,共占用64个字节,包含四个分区表项。每个分区表项的长度为
16个字节,它包含一个分区的引导标志、系统标志、起始和结尾的柱面
号、 扇区号、 磁头号以及本分区前面的扇区数和本分区所占用的扇区
数。其中"引导标志"表明此分区是否可引导,即是否活动分区。当引导
标志为"80"时,此分区为活动分区(系统名称为红色);"系统标志"决
定了该分区的类型,如"06"为DOS FAT16分区,"0b"为DOS FAT32分区,
"83"为Linux分区等; 起始和结尾的柱面号、扇区号、磁头号指明了该
分区的起始和终止位置。
    分区表项的16个字节分配如下:
    第1字节: 引导标志
    第2字节: 起始磁头
    第3字节: 低6位为起始扇区, 高2位与第4字节为起始柱面
    第4字节: 起始柱面的低8位
    第5字节: 系统标志
    第6字节: 终止磁头
    第7字节: 低6位为终止扇区, 高2位与第8字节为终止柱面
    第8字节: 终止柱面的低8位
    第9-12字节: 该分区前的扇区数目
    第13-16字节: 该分区占用的扇区数目
    扩展分区作为一个主分区占用了主分区表的一个表项。在扩展分区
起始位置所指示的扇区(即该分区的第一个扇区)中,包含有第一个逻辑
分区表,同样从1BEH字节开始,每个分区表项占用16个字节。逻辑分区
表一般包含两个分区表项,一个指向某逻辑分区,另一个则指向下一个
扩展分区。下一个扩展分区的首扇区又包含了一个逻辑分区表,这样以
此类推,扩展分区中就可以包含多个逻辑分区。为方便说明,我们把这
一系列扩展分区和逻辑分区分别编号,主扩展分区为 1号扩展分区,第
一个逻辑分区表所包含的两个分区分别标为 1号逻辑分区和 2号扩展分
区,依次类推

硬盘驱动器是计算机中一个重要部件,是微机系统中保存信息资源的重要外部设备。在选择硬盘时,我们常常是左思右想,有时还会 被宣传广告上的各种名目繁多的硬盘参数所困扰。这里我想将常用的硬盘参数及其对硬盘性能的影响、硬盘的大概结构和硬盘的日常 管理、维护、保养一般方法向大家做一个比较详细的介绍。


一、硬盘的基本知识

1.硬盘的组成
 目前微机系统中使用的硬盘大多为温盘(Winchester),由头盘组件(HDA,Head Disk Assembly)与印刷电路板组件(PCBA,Print Circuit Board Assembly)组成。温盘是一种可移动头固定盘片的磁盘存储器,磁头定位的驱动方式主要有步进电机驱动(已淘汰)和音 圈电机驱动两种。

2.常见接口类型
(1)IDE接口
 IDE(Integrated Drive Electronics)是一种广泛应用于ISA(EISA)总线微机系统的硬盘接口。IDE接口使用一根40芯或80芯的扁平 电缆连接硬盘(最多2个)与主板。连接方式有:①多功能卡上的IDE Connector(基本已淘汰)②主板上的IDE Connector。IDE接口硬 盘的优点在于价格便宜和易于安装。1996年底,昆腾和英特尔公司宣布共同开发了Ultra DMA/33的新型EIDE接口(其数据传输率 为33MB/s)。Ultra DMA把时钟脉冲的上升和下降沿均用作选通信号,即每半个时钟周期传输一次数据,这就使得最大外部传输速率从 16.6MB/s倍增至33.3MB/s。另外,Ultra DMA采用总线控制方式,在硬盘上有直接内存通道控制器,可大大降低硬盘在读写时对CPU的 占用率,可将对CPU的占用率从92%降至52%,这也是Ultra DMA的一个重要作用。当然,要实现Ultra DMA功能,还需要支持Ultra DMA规格的主板和相应的驱动程序。
(2)SCSI接口
 SCSI(Small Computer System Interface)接口使用一根50芯的扁平电缆,可支持多种外部设备。选用SCSI接口必须配置SCSI适配器及 相应驱动程序。SCSI接口硬盘速度很快,但价格较高,且安装不便,比较适用于高档计算机和高档服务器,它能大大提高同一种设备 间的互换能力,更有利于即插即用功能的实现,并可实现多设备连接或将多个驱动器连到一台工作站上。但由于硬盘技术的成熟, EIDE(增强IDE)接口的硬盘在容量和速度上已与SCSI接口硬盘相差无几。

3.硬盘参数
(1)容量
硬盘常以兆字节(MB,一百万字节)和千兆字节(GB,十亿字节)为单位,市场上常见的硬盘容量多为4.3GB~30.1GB。作为个人计算机最 大的数据储存器,硬盘容量自然是越大越好。而在容量上所受的限制,一方面来自厂家制作更大硬盘的能力,另一方面则来自计算机 用户自身的实际工作需要和经济承受能力。硬盘的选择应做到容量够用,有一定盈余。但现在4.3GB以下的硬盘基本已经被淘汰,因此 ,目前至少应选10GB以上的硬盘。当前的主流硬盘为20.1GB,以后会逐步向30.1GB过渡。
(2)数据传输率
 硬盘的运行速度是购买者最关心的。硬盘的数据传输率是衡量硬盘速度的一个重要参数。它是指计算机从硬盘中准确找到相应数据并 传输到内存的速率,以每秒可传输多少兆字节来衡量(MB/s),常见的为10~40MB/s。数据传输率通常会受到总线速度、硬盘接口等因 素的影响,对它影响最大的是硬盘磁头的读写速度。如追求更快的速度或考虑到以后的升级需要,则应选择支持Ultra DMA接口的硬盘 。特别是大型文件使用较频繁的用户,更要注意选择高数据传输率硬盘。由于市场上这普通接口和Ultra接口硬盘的价格相差很小,所 以,建议尽量购买支持Ultra DMA100的新型硬盘,即使你目前的主板不支持Ultra DMA(Inter 430HX、VX及其更低档次的主板),经测 试,这种硬盘的速度依然略高于普通硬盘。一旦以后将主板升级至TX甚至更高水平,该硬盘就可大显身手了。
(3)平均寻道时间
 平均寻道时间是指计算机在发出一个寻址命令,到相应目标数据被找到所需时间,我们常以它来描述硬盘读取数据的能力。平均寻道 时间越小,硬盘的运行速率相应也就越快。一般硬盘的平均寻道时间在7.5~14ms。IDE接口的硬盘应在9.7~12ms,请在购买时务必看 清.
(4)硬盘高速缓存
 与计算机的其他部件相似,硬盘也通过将数据暂存在一个比其磁盘速度快得多的缓冲区来提高速度,这个缓冲区就是硬盘的高速缓存 (CACHE)。硬盘上的高速缓存可大幅度提高硬盘存取速度,这是由于目前硬盘上的所有读写动作几乎都是机械式的,真正完成一个读取 动作大约需要10ms以上,而在高速缓存中的读取动作是电子式的,同样完成一个读取动作只需要大约50ns。由此可见,高速缓存对大 幅度提高硬盘的速度有着非常重要的意义。从理论上讲,高速缓存当然是越大越好,但鉴于成本较高,一般为256KB~2MB。因此您在选 购是最好选择带有2MB缓存的硬盘。
(5)硬盘主轴转速
 较高的转速可缩短硬盘的平均寻道时间和实际读写时间,从而提高硬盘的运行速度。一般硬盘的主轴转速为3600RPM~7200RPM(转/每 分钟)。对IDE接口的硬盘,其转速至少应选5400RPM的。7200RPM的硬盘虽然价格稍高,但可以说是物有所值,千万不要为了几十块钱 而因小失大。
(6)单碟容量
 硬盘中的存储碟片一般有1~4片。每张碟片的磁储存密度越高,则其达到相同容量所用的碟片就越少,其系统可靠性也就越好。同时 ,高密度碟片可使硬盘在读取相同数据量时,磁头的寻道动作和移动距离减少,从而使平均寻道时间减少,加快硬盘速度。
(7)柱面数(Cylinders)
 柱面是指硬盘多个盘片上相同磁道的组合。
(8)磁头数(Heads)
 硬盘的磁头数与盘面数相同。
(9)登陆区(Lzone:landing Zone)
 登陆区是指数据区外最靠近主轴的盘片区域。硬盘的盘片不转或转速较低时磁头与表面是接触的。当转速达到额定值时,磁头以一定 的"飞行"高度浮于盘片表面上。登陆区的线速度较低,盘片启动与停转时磁头与盘片之间的磨擦不很剧烈,加之该区内不记录用户 数据,即使盘片表面被擦伤了,也不影响正常使用。故被选作磁头的登陆区。
(10)扇区数(Sectors)
 硬盘上的一个物理记录块要用三个参数来定位:柱面号、扇区号、磁头号。硬盘容量=柱面数×磁头数×扇区数×512字节。

4.耐用性

 耐用性耐用性通常是用平均无故障时间、元件设计使用周期和保用期来衡量。一般硬盘的平均无故障时间大都在20~50万小时,元件 设计使用周期应在2~5年,其保用期一般为1~4年。


二、硬盘的管理与维护

 硬盘是微机系统中保存信息资源的重要外部设备。然而一些用户常因缺少硬盘的基本知识和使用经验而无法正确管理、维护硬盘,甚 至对硬盘进行一些错误操作或不必要的操作(如经常对硬盘进行低级格式化或强行关机),以至影响系统的正常运行、数据的安全性及 硬盘的使用寿命。因此对硬盘正确进行管理与维护便显得很重要了。

1. 保持电脑工作环境清洁

 硬盘是一密封体,仅以带有超精过滤纸的呼吸孔与外界相通,因此它可以在普通无净化装置的室内环境中使用。但若环境中灰尘过多 ,会被吸附到PCBA的表面、主轴电机的内部以及堵塞呼吸过滤器。硬盘的制造过程是在绝对无尘的环境下进行,哪怕是一粒小小的灰 尘都可能使整块硬盘报废,虽然硬盘有坚硬的外科保护,但请您还是不要在电脑旁吸烟,保持电脑工作环境清洁的清洁。

2.硬盘拆装时要注意防止静电

 用户要保证连接好硬盘的接地插片,切勿带电插拔。在拆装过程中不可在有静电的工作台上进行,亦不要用手接触PCBA的焊点。

3.减少震动与冲击

 如今的硬盘转速已今非昔比了,微机工作或刚关机时,严禁搬运机器,以免磁头与盘片产生撞击而擦伤盘片表面的磁层,从而导致硬 盘的物理损害 (这种损伤往往是致命的)。

4.养成正确关机的习惯

 如今的操作平台已是windows的天下了,请您一定要养成点击开始菜单正确关机的习惯。千万不要随手按电源关机,这样会使磁头不能 正确复位而造成硬盘的划伤。

5.保持合理的使用温度(1-40℃)

6.养成经常整理硬盘的习惯

 硬盘长期使用后会产生大量文件碎片,过多的碎片会导致应用程序启动和执行变慢等不良 后果,因此应养成经常整理硬盘的习惯。

7.时常备份重要信息

 对硬盘中重要文件,特别是应用软件的数扰文件要按一定的策略进行备份工作,以免因硬件故障、软件功能不完善、误操作或病毒破 坏等造成的损失。常用工具有NOTRON的GOAST和微软的MS-BACKUP等等。

8. 建立RESCUE DISK

 使用Norton Utilities工具软件将硬盘分区表、引导记录以及CMOS信息保存到软盘上,以防万一。

9.及时删除不再使用的文件、临时文件等。

 电脑长期使用后,应用程序会在硬盘上建立许多临时文件(c:\windows\temp中的),应及时予以删除。

10.注意预防病毒和特洛依木马程序

 在如今这个谈"毒"色变的时代,拥有两套不同的杀毒软件就显得很重要了。建议平时不要随便运行来历不明的应用程序,运行前一 定要先查病毒和木马。


三、硬盘购买的一些误区

 如果有人问你,带有512k板上缓存的Ultra DMA硬盘哪一款比较快:是14GB、7200rpm、具有9.5ms平均寻道时间的IBM Deskstar 14GXP 驱动器,还是17GB、5,400rpm、具有9.0ms平均寻道时间的Maxtor DiamondMax 4320驱动器,你可能会告诉我是IBM的硬盘。那么你就 错了。实际上,5,400rpm的Maxtor驱动器在Winstone和Disk WinMark基准测试中所表现出来的性能与7,200rpm的IBM驱动器基本相当。 这是为什么呢?原来,除了转速与寻道时间以外,还有一些其它影响硬盘性能的因素:驱动器的结构、数据密度、电子元器件的运行 速度,以及驱动器的控制器和固件中的创新技术,都对硬盘性能有显著的影响作用。IBM的驱动器采用了5个碟片和10个读写头,而 Maxtor的驱动器采用了4个碟片和8个磁头。IBM和Maxtor硬盘驱动器介质表面的最大读写数据传输速率都是大约22MBps,因此在进行大 量的持续数据传送时它们的性能基本相当。由于Maxtor硬盘的转速低于IBM硬盘,而且具有较少的碟片数,但是它具有更大的数据容量 ,因此它的每个磁道存储的数据较多,也就是说它具有更大的磁道密度。由此可见,尽管两款硬盘每英寸的磁道数量大约都是13,000 道,不过Maxtor硬盘从内道到外道的不同记录区域中每个磁道拥有230到384个扇区不等,而IBM硬盘每个磁道的扇区数则是165到265。 因此Maxtor硬盘的每个磁道容纳了更多的数据,这意味着与IBM相比它的每一次磁盘操作可以读或写更多的数据。另外,Maxtor硬盘的 道与道之间寻道时间为0.9ms,而IBM硬盘则为2.2ms-差异甚大。由此我们不难发现,片面追求硬盘转速是不可取的。

我就用这种方法来重新写一下第3课的内容吧:-)

驱动器:
就是你在开机进入DOS后(出现了DOS提示符后)你看到的有光标闪动的那一行的第一个字母。
如果是C,说明就是在C驱动器(C盘),如果 是A ,说明就是在A驱动器(A盘,软盘),如果是D,则说明就是在D驱动器(D盘)。如此类推。但要注意,如果是A或是B,则说明驱动器为软盘,C以后的是硬盘。要在不同的驱动器(盘)中切换,(或说切换到不同的驱动器(盘)),直接打该驱动器(盘)的名字(也就是那个字母了,比如要到C盘就打C,D盘就打D)再加一个冒号(:)就可以了。举个例子 要切换到E盘去,在Dos提示符下敲入E: ,再按一下回车键。
文件:
就是你在DOS提示符下敲入“DIR”这个命令后看到的文件列表。
其中,后面没有的就是文件。
后面跟着COM或者是EXE的就是可执行文件。
后面跟着BAT的就是批处理文件。
后面没跟什么的就是普通的文件。
目录:
就是你在DOS提示符下敲入“DIR”这个命令后看到的文件列表。
其中,后面跟着有的就是目录。
子目录:
就是你进了一个目录后(用cd 命令可以进入一个目录。)再用dir命令看到的文件列表中的后面跟着有的就是子目录。
换句 话说,说是在目录里面的目录叫子目录。

如果觉得这样更通俗易懂的话,就为这个鼓掌吧。呵呵。。。(苦笑中。。。)



第4课时:DOS基本内部命令(一)
http://www.cn-dos.net/forum/viewthread.php?tid=1780&fpage=1&highlight=%2Bko20010214
第4课时:DOS基本内部命令,如DIR、CD、MD、DEL、COPY等的基本介绍。

这是我以前写的。就“拿来主义”一把吧! 后面注明了[外]的是外部命令。
一. 基本命令列表 base command list:

1. d:          ----改变驱动器盘符 change drive
2. dir         ----文件列表 list file
3. cd          ----进入目录 come to a directory
4. copy        ----拷贝文件 copy a file or many files
5. type        ----显示文本文件内容 show file conment
6. ren         ----文件改名 rename a file
7. del         ----文件删除 delete a file
8. cls         ----清屏 clear  the screen
9. xcopy       ----某目录下一组文件的拷贝 copy a group of files in a directory [外]
10.attrib      ----显示或改变文件属性 show or change file''s charckter [外]
11.edit        ----文本编辑器 a editor for write a file [外]
12.chkdsk      ----磁盘检测 check a disk [外]
13.tree        ----显示目录树 list directory tree  
14.format      ----磁盘格式化 format a disk for dos  [外]
15.md          ----建立一目录 make a directory
16.rd          ----删除目录 delete a directory
17.deltree     ----删除目录和它的所有子目录 [外]
                    delete a directory with all it''s sub directory
18.time        ----显示系统时间 show system time
19.prompt      ----改变提示符 change the prompt

二. 基本命令用法 base use-way:
1. d:          ----c:>d:a:        ----到A:盘 change to drive a:
2. dir         ----c:>dir[d:][path][filename[.ext]][/p][/w]
    eg:             c:>dir a:    ----A:盘文件列表 list files in disk a
                    c:>dir l*.*  ----文件名第一字母为"L"的所有文件列表
                                     list files whose first letter is "l"
                    c:>dir/w/p   ----按宽屏分页显示文件
                                     list files as wide (  5 files in a line)
                                     and page
    ******          c:>dir ,    ----显示所有属性文件列表
    ******          c:>dir/a    ----显示所有属性文件列表
3. cd          ----c:>cd [d:][path]
    eg:             c:>cd yln    ----进入YLN目录
                                     come to directory named as "yln"
                    c:yln>cd..   ----退回上级目录
                                     come back pre-directory
                    c:>cd yln\tool   ----进入yln\tool子目录
                                         come to multiple(deep layer) directory
                    c:yln\tool\cd\..\game   ----转到上级目录后,
                                                再进入game子目录
                                                turn to another directory
4. copy        ----c:>copy [d:][path]file1[.ext] [d:][path]file2[.ext][/a][/v]
    eg:             c:yln\tool>copy  qe.exe a:   ----拷贝文件qe.exe 到a:盘
                                                      copy qe.exe to disk a
                    c:yln\wps>copy xue1.wps+xue2.wps xue3.wps
                                    ---- 拷贝文件xue1.wps和xue2.wps 为另一文件
                                         xue3.wps
                                         let xue1.wps and xue2.wps 合成 a new
                                         file named as xue3.wps
                    c:yln\wps>copy xue1.wps xue01.wps ----拷贝文件xue1.wps为
                                                          一新文件xue01.wps
                                                         copy xue1.wps as new
                                                         name
5. type         ----c:>type [d:][path]filename[.ext][|more]
   eg:              c:yln\wps>type hlp.txt|more   ----逐页显示文件hlp.txt
                                                       show hlp.txt when a page
                                                      full then pause and wait
                                                     you press any key continue
6. ren          ----c:>ren [d:][path]file1[.ext] file2[.ext]
   eg:              c:>ren a.bat b.bat  ----文件a.bat改名为b.bat
                                            a.bat rename to b.bat
7. del          ----c:>del [d:][path]filename[.ext]
   eg:              c:>del c:\yln\wps\xue1.bak  ----删除文件xue1.bak
                                                    del the file named xue1.bak
8. cls          ----c:>cls               ----清屏
                                             clear the screen
9. xcopy        ----c:>xcopy [d:][path] [d:][path] [/s][/e]
   eg:              c:yln>xcopy \wps /s/e ---- 拷贝wps目录下所有文件,包括子目录
                                               和空目录
                                               copy the directory "wps" and all
                                               it''s sub-directory enclude empty
                                               sub-directory
10. attrib      ----c:>attrib[+h][-h][+r][-r][+s][-s][+a][-a][d:][path]filename
    eg:             c:yln\wps>attrib  +h +r xue1.wps----设定文件属性为隐含,只读
11. edit        ----c:>edit [d:][path][filename][.ext]
    eg:             c:>edit  \yln\wps\xue3.txt ----编辑文件xue3.txt
12. chedsk      ----c:>chkdsk [d:]        ----检查d:驱动器中的盘
13. tree        ----c:>tree [d:]           ----显示d:中的盘的目录
14. format      ----c:>format [d:]        ----格示化d:中的盘 for dos
15. md          ----c:>md directory-name  ----建立新目录
16. rd          ----c:>rd directory  --删除一个目录
    eg:             c:>rd yln       ----删除yln目录,但yln一定要是个空目录才
                    能删除
17. deltree     ----c:>deltree [d:][directory][/y]
    eg:             c:>deltree yln/y ----删yln目录,不询问是否确认删除
                                         [很危险,慎用]
18. time        ----c:>time    ----询问系统时间并修改,用回车放弃修改
19. prompt      ----c:>prompt $p$g ----设定提示符为d:\current-path>

这下面是菜鸟宝典里“拿来”的,稍微修改了一些地方。(主要是全角中文符号改成半角英文符号)

   (一)MD——建立子目录
    1.功能:创建新的子目录
    2.类型:内部命令
    3.格式:MD[盘符:][路径名]〈子目录名〉
    4.使用说明:
    (1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;
    (2)“路径名”:要建立的子目录的上级目录名,若缺省则建在当前目录下。
    例:(1)在C盘的根目录下创建名为FOX的子目录;(2)在FOX子目录下再创建USER子目录。
    C:\>MD FOX (在当前驱动器C盘下创建子目录FOX)
    C:\>MD FOX\USER (在FOX 子目录下再创建USER子目录)
    (二)CD——改变当前目录
    1.功能:显示当前目录
    2.类型:内部命令
    3.格式:CD[盘符:][路径名][子目录名]
    4.使用说明:
    (1)如果省略路径和子目录名则显示当前目录;
    (2)如采用“CD\”格式,则退回到根目录;
    (3)如采用“CD..”格式则退回到上一级目录。
    例:(1)进入到USER子目录;(2)从USER子目录退回到子目录;(3)返回到根目录。
    C:\>CD FOX\USER(进入FOX子目录下的USER子目录)
    C:\FOX\USER>CD.. (退回上一级根目录)
    C:\FOX>CD\ (返回到根目录)
    C:\>
    (三)RD——删除子目录命令
    1.功能:从指定的磁盘删除了目录。
    2.类型:内部命令
    3.格式:RD[盘符:][路径名][子目录名]
    4.使用说明:
    (1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;
    (2)不能删除根目录和当前目录。
    例:要求把C盘FOX子目录下的USER子目录删除,操作如下:
    第一步:先将USER子目录下的文件删空;
    C:\>DEL C:\FOX\USER\*.*
    第二步,删除USER子目录。
    C:\>RD C:\FOX\USER
    (四)DIR——显示磁盘目录命令
    1.功能:显示磁盘目录的内容。
    2.类型:内部命令
    3.格式:DIR [盘符][路径][/P][/W]
    4. 使用说明:/P的使用;当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示;Press any key to continue
    /W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。
(五) COPY文件复制命令
    1.功能:拷贝一个或多个文件到指定盘上。
    2.类型:内部命令
    3.格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]
    4.使用说明:
    (1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;
    (2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;
    (3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;
    (4)文件名中允许使用通配举“*”“?”,可同时复制多个文件;
    (5)COPY命令中源文件名必须指出,不可以省略。
    (6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;
    (7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;
    (8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;
    (9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY CON [盘符:][路径]〈文件名〉;
    (10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!
      (六)Del删除文件命令
    1.功能:删除指定的文件。
    2.类型:内部命令
    3.格式:DEL[盘符:][路径]〈文件名〉[/P]
    4.使用说明:
    (1)选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除;
    (2)该命令不能删除属性为隐含或只读的文件;
    (3)在文件名称中可以使用通配符;
    (4)若要删除磁盘上的所有文件(DEL*.*或DEL.),则会提示:(Arey ou sure?)(你确定吗?)若回答Y,则进行删除,回答N,则取消此次删除作业。

其它的内部命令还有:
cls    CLS——清屏幕命令
    1功能:清除屏幕上的所有显示,光标置于屏幕左上角。
    2类型:内部命令
    3格式:CLS

date DATE日期设置命令
    1功能:设置或显示系统日期。
    2类型:内部命令
    3格式:DATE[mm-dd-yy]
    4使用说明:
    (1)省略[mm-dd-yy]显示系统日期并提示输入新的日期,不修改则可直接按回车键,[mm-dd-yy]为“月月-日日-年年”格式;
    (2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。(注:早期的DOS是这样的,后来的没有这一条规矩了。:-)  )

path    PATH——路径设置命令
    1.功能:设备可执行文件的搜索路径,只对文件有效。
    2.类型:内部命令
    3.格式:PATH[盘符1]目录[路径名1]{[;盘符2:],〈目录路径名2〉…}
    4.使用说明:
    (1)当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据PATH命令所设置的路径,顺序逐条地到目录中搜索该文件;
    (2)PATH命令中的路径,若有两条以上,各路径之间以一个分号“;”隔开;
    (3)PATH命令有三种使用方法:
    PATH[盘符1:][路径1][盘符2:][路径2]…(设定可执行文件的搜索路径)
    PATH:(取消所有路径)
    PATH:(显示目前所设的路径)

time   TIME系统时钟设置命令
    1功能:设置或显示系统时期。
    2类型:内部命令
    3格式:TIME[hh:mm:ss:xx]
    4使用说明:
    (1)省略[hh:mm:ss:xx],显示系统时间并提示输入新的时间,不修改则可直接按回车键,[hh:mm:ss:xx]为“小时:分钟:秒:百分之几秒”格式;
    (2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。(注:早期的DOS是这样的,后来的没有这一条规矩了。:-)  )

vol  VOL——显示磁盘卷标命令
    1.功能:查看磁盘卷标号。
    2.类型:内部命令
    3.格式:VOL[盘符:]
    4.使用说明:省略盘符,显示当前驱动器卷标。

ren  REN——文件改名命令
    1.功能:更改文件名称
    2.类型:内部命令
    3.格式:REN[盘符:][路径]〈旧文件名〉〈新文件名〉
    4.使用说明:
    (1)新文件名前不可以加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名;
    (2)允许使用通配符更改一组文件名或扩展名。

ver  VER查看系统版本号命令
    1功能:显示当前系统版本号
    2类型:内部命令
    3格式:VER

Internal (内部命令): ( 注:这些是msdos7.X中支持的内部命令)
Break  设置对键盘中断某程序执行的命令的检查。即对ctrl -C 的检查。
Call   呼叫另一个批处理,或可执行文件,或command
CD / ChDir  进入目录(退出目录)
CHCP [计] 修改或显示当前的代码页
Cls  清屏
Copy  复制,拷贝
CTTY  将控制台输入和输出改向其它设备
Date   显示或设置系统日期
Del / Erase  删除文件
Dir  列出文件和目录列表
Echo 显示控制开关。
Exit  退出command环境。(该command环境是在DOS提示符中执行另一个新的command的拷贝而创建的,也叫dos SHELL?)
For  用于运行一指定命令或一系列的命令. 通常用在批处理文件中,但也能用于命令提示符后。  
GoTo 转向语句
If  条件语句
LfnFor  当运行FOR命令时支持长文件名。
Lock  锁定对磁盘的直接读取。
MD / MkDir  创建目录
Path  路径
Pause  暂停
Prompt  设置提示符格式
RD / RmDir  删除目录
Rem and ::   注释
Ren / Rename  改名,重命名
Set   设置
Shift  位移,在批处理文件中用作改变可替换参数的位置。
Time  显示和设置时间
Truename 显示长文件名格式和8.3格式之间的对应关系,或subst命令创建的虚拟盘
Type  在屏幕上显示文本文件的内容
Unlock 解锁对磁盘的直接读取
Ver  显示msdos的版本号
Verify  校验。以保证写入磁盘的内容可读。
Vol 显示磁盘的卷标和序列号。

其中 break call if goto shift pause for set path rem :: prompt 经常用于批处理文件当中。

判断一个命令是不是内部命令,最好的办法就是:
亲自试一试。
用一张只有io.sys msdos.sys 和 command.com三个文件的可启动的系统盘(这种盘可以在格式化一张软盘时用 format a:/S 来制作)来启动电脑,然后开始输入命令,如果该命令能正确执行,那就说明是内部命令。如果不是,一般提示为 BAD command or Missing files.


第5课时:DOS外部命令的基本介绍(一)。
http://www.cn-dos.net/forum/viewthread.php?tid=3724&fpage=1&highlight=%2Bko20010214
第5课时:DOS基本外部命令,如EDIT、XCOPY、MOVE、TREE等的基本介绍(一)。

APPEND
(External)

APPEND ;
APPEND [d:]path[;][d:]path[...]
APPEND [/X:on|off][/path:on|off] [/E]

Displays or sets the search path for data files. DOS will search the specified path(s) if the file is not found in the current path.
显示或设定资料文件的搜寻路径.  如果这文件不在当前的目录中, DOS 会在指定好的路径(s)中搜索。

ASSIGN
(External)

ASSIGN x=y [...] /sta

Redirects disk drive requests to a different drive.
重定向硬盘(重新分配一个盘符)

ATTRIB
(External)

ATTRIB [d:][path]filename [/S]
ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [d:][path]filename [/S]

Sets or displays the read-only, archive, system, and hidden attributes of a file or directory.
设定或显示文件或目录的属性(唯读的, 压缩档, 系统, 和隐藏的属性之一.)

BACKUP
(External)

BACKUP d:[path][filename] d:[/S][/M][/A][/F:(size)] [/P][/D:date] [/T:time] [/L:[path]filename]

Makes a backup copy of one or more files. (In DOS Version 6, this program is stored on the DOS supplemental disk.)
制作一个或多个备份文件. (在DOS6.xx 版本中, 这程序是储存在于DOS的补充磁盘中.)--KO的话:这好像是说这个程序不是标准配置下(标准DOS系统盘)的
DOS外部命令, 而是在附加的DOS系统盘里的命令。

CHKDSK
(External)

CHKDSK [d:][path][filename] [/F][/V]

Checks a disk and provides a file and memory status report.
检查磁盘和提供一文件和记忆体(内存)状态报告.

COMMAND
(External)

COMMAND [d:][path] [device] [/P][/E:(size)] [/MSG][/Y [/C (command)|/K (command)]

Starts a new version of the DOS command processor (the program that loads the DOS Internal programs).
开始一新的版本之这DOS 命令处理器(这程式那载入这DOS 内部程式).
KO的话:这个翻译不容易懂。开机时(启动时)在DOS下面会自动装入command.com这个程序,用来解释各种命令的执行。但你还可以在这个环境下再运行一个
command的副本(这个也不容易懂),就是说你还可以在命令提示符下敲入command这个命令,它会再创造一个解释命令执行的环境。在你敲入command这个命令后
,你以后敲入的命令都在这个command的环境中解释执行,除非你敲入EXIT这个命令。(这个命令告诉command,该结束了,你应该返回到最初的那个command的环
境中去了。)这有点象一些DOS软件提供的DOS SHELL 功能一样。(shell ,壳,环境)


COMP
(External)

COMP [d:][path][filename] [d:][path][filename] [/A][/C][/D][/L][/N:(number)]

Compares two groups of files to find information that does not match. (See FC command).
比较二组文件以判断是不是匹配. (参见FC 命令).  

DBLSPACE
(External)

DBLSPACE / automount=drives
DBLSPACE /chkdsk [/F] [d:]
DBLSPACE /compress d: [/newdrive=host:] [/reserve=size] [/F]
DBLSPACE /create d: [/newdrive=host:] [/reserve=size] [/size=size]
DBLSPACE /defragment [d:] ]/F]
DBLSPACE /delete d:
DBLSPACE /doubleguard=0|1
DBLSPACE /format d:
DBLSPACE [/info] [d:]
DBLSPACE /list
DBLSPACE /mount[=nnn] host: [/newdrive=d:]
DBLSPACE /ratio[=ratio] [d:] [/all]
DBLSPACE /size[=size] [/reserve=size] d:
DBLSPACE /uncompress d:
DBLSPACE /unmount [d:]

A program available with DOS 6.0 that allows you to compress information on a disk.
一个DOS6.xx下的命令,它允许你压缩磁盘。

DEBUG
(External)

DEBUG [pathname] [parameters]

An MS-DOS utility used to test and edit programs.
一个测试和编写程序的DOS工具。

DEFRAG
(External)

DEFRAG [d:] [/F][/S[:]order] [/B][/skiphigh [/LCD|/BW|/GO] [/H]
DEFRAG [d:] [/V][/B][/skiphigh] [/LCD]|/BW|/GO] [/H]

Optimizes disk performance by reorganizing the files on the disk.
通过重新组织磁盘上的文件来达到优化磁盘空间的工具,(就象windows下的磁盘整理工具)

DELOLDOS
(External)

DELOLDOS [/B]

Deletes all files from previous versions of DOS after a 5.0 or 6.0 installation.
在DOS5.0或6.0的安装后,删除以前版本的DOS的所有文件

DELTREE
(External)

DELTREE [/Y] [d:]path [d:]path[...]

Deletes (erases) a directory including all files and subdirectories that are in it.
删除一个目录(包括在这个目录中的所有文件和子目录)

DISKCOMP
(External)

DISKCOMP [d:] [d:][/1][/8]

Compares the contents of two diskettes.
比较两块磁盘(指软盘)的内容

DISKCOPY
(External)

DISKCOPY [d:] [d:][/1][/V][/M]

Makes an exact copy of a diskette.
制作磁盘(也是指软盘)的备份

DOSKEY
(External)

DOSKEY [reinstall] [/bufsize=size][/macros][/history][/insert|/overstrike] [macroname=[text]]

Loads the Doskey program into memory which can be used to recall DOS commands so that you can edit them.
装载这个程序到内存中能让你找到你敲入过的DOS命令,并可以编辑它。

DOSSHELL
(External)

DOSSHELL [/B] [/G:[resolution][n]]|[/T:[resolution][n]]

Initiates the graphic shell program using the specified screen resolution.
用指定的屏幕解析度(就是windows里说的分辨率)来初始化一个图形界面

EDIT
(External)

EDIT [d:][path]filename [/B][/G][/H][/NOHI]

Starts the MS-DOS editor, a text editor used to create and edit ASCII text files.
打开一个DOS编辑器,一个文本文件编辑器,用来创建和编辑ASCII文件(--KO的话:就是文件文件)

EMM386
(External)

EMM386 [on|off|auto] [w=on|off]

Enables or disables EMM386 expanded-memory support on a computer with an 80386 or higher processor.
允许或禁止EMM386扩展内存的支持(在一个有着80386或更高级的CPU的计算机上)


EXE2BIN
(External)

EXE2BIN [d:][path]filename [d:][path]filename

Converts .EXE (executable) files to binary format.
转换EXE文件(可执行文件)为二进制格式--KO的话:这个俺也不懂。照说EXE文件本身就是以二进制格式存放的呀。


EXIT
(Internal)

EXIT

Exits a secondary command processor.
离开command的副本提供的环境
注:这是个内部命令!!! (之所以这里收录它,是因为上面那个command外部命令里提到了它)

EXPAND
(External)

EXPAND [d:][path]filename [[d:][path]filename[ . . .]]

Expands a compressed file.
展开(解)压缩文件

FASTHELP
(External)

FASTHELP [command][command] /?

Displays a list of DOS commands with a brief explanation of each.
显示一个DOS命令和每条DOS命令的简单的说明的这样一个列表

FASTOPEN
(External)

FASTOPEN d:[=n][/X]

Keeps track of the locations of files for fast access.
保持当前文件的一些信息用以(在以后)快速地访问它


FC
(External)

FC [/A][/C][/L][/Lb n][/N][/T][/W][number] [d:][path]filename [d:][path]filename

or (for binary comparisons)
FC [/B][/number] [d:][path]filename [d:][path]filename

Displays the differences between two files or sets of files.
显示两个文件(或文件的设定)的不同之处。

FDISK
(External)

FDISK [/status]

Prepares a fixed disk to accept DOS files for storage.
为存储DOS文件而对硬盘进行预处理 (分区)

FIND
(External)

FIND [/V][/C][/I][/N] 襰tring? [d:][path]filename[...]

Finds and reports the location of a specific string of text characters in one or more files.
在一个或多个文件中寻找和报告指定的文本字符串的位置。

FORMAT
(External)

FORMAT d:[/1][/4][/8][/F:(size)] [/N:(sectors)] [/T:(tracks)][/B|/S][/C][/V:(label)] [/Q][/U][/V]

Formats a disk to accept DOS files.
格式化一个磁盘以存储DOS文件 (高级格式化)

GRAFTABL
(External)

GRAFTABL [(code page)]
GRAFTABL [status]

Loads a table of character data into memory (for use with a color/graphics adapter).
装载一个字符数据表到内存中(为了用彩色/图形显示卡)

GRAPHICS
(External)

GRAPHICS [printer type][profile] [/B][/R][/LCD][/PB:(id)] [/C][/F][/P(port)]

Provides a way to print contents of a graphics screen display.
提供一个在图形界面中显示内容的方法

HELP
(External)

HELP [command] [/B][/G][/H][/NOHI]

Displays information about a DOS command.
显示DOS命令的帮助信息。

INTERLINK
(External)

INTERLINK [client[:]=[server][:]]

Connects two computers via parallel or serial ports so that the computers can share disks and printer ports.
用并口或串口来连接两台电脑,这样电脑能共享磁盘和打印机端口。

INTERSVR
(External)

INTERSVR [d:][...][/X=d:][...] [/LPT:[n|address]] [/COM:[n|address]][/baud:rate] [/B][/V]
INTERSVR /RCOPY

Starts the Interlink server.
开始双机互联服务


JOIN
(External)

JOIN d: [d:path]
JOIN d: [/D]

Allows access to the directory structure and files of a drive through a directory on a different drive.
通过另一个磁盘上的目录来访问这个磁盘上的文件和目录结构。

KEYB
(External)

KEYB [xx][,][yyy][,][d:][path]filename [/E][/ID:(number)]

Loads a program that replaces the support program for U. S. keyboards.
设定键盘布局以代替U.S.键盘布局(美国键盘)

LABEL
(External)

LABEL [d:][volume label]

Creates or changes or deletes a volume label for a disk.
创建或改变或删除一个磁盘的卷标

MEM
(External)

MEM [/program|/debug|/classify|/free|/module(name)] [/page]

Displays amount of installed and available memory, including extended, expanded, and upper memory.
显示已用的和空闲的内存空间,包括扩展内存,扩充内存和上位内存。 --KO的话:扩展和扩充内存的概念最容易搞混,我现在也搞混了,
不知道到底是extended对应的是扩展还是扩充。下次看到了有关资料后再说吧。

MEMMAKER
(External)

MEMMAKER [/B][/batch][/session][/swap:d] [/T][/undo][/W:size1,size2]

Starts the MemMaker program, a program that lets you optimize your computer's memory.
一个能让你优化你的电脑内存的程序

MIRROR
(External)

MIRROR [d:]path [d:] path [...]
MIRROR [d1:][d2:][...] [/T(drive)(files)] [/partn][/U][/1]

Saves disk storage information that can be used to recover accidentally erased files.
镜像,保存磁盘的信息让你能覆盖意外删除的文件。

MODE
(External)

MODE n
MODE LPT#[:][n][,][m][,][P][retry]
MODE [n],m[,T]
MODE (displaytype,linetotal)
MODE COMn[:]baud[,][parity][,][databits][,][stopbits][,][retry]
MODE LPT#[:]=COMn [retry]
MODE CON[RATE=(number)][DELAY=(number)]
MODE (device) CODEPAGE PREPARE=(codepage) [d:][path]filename
MODE (device) CODEPAGE PREPARE=(codepage list) [d:][path]filename
MODE (device) CODEPAGE SELECT=(codepage)
MODE (device) CODEPAGE [/STATUS]
MODE (device) CODEPAGE REFRESH

Sets mode of operation for devices or communications.
设置设备的操作模式或通讯方式

MORE
(External)

MORE < (filename or command)
(name)|MORE

Sends output to console, one screen at a time.
每次一屏信息地显示方式
MSAV
(External)

MSAV [d:] [/S|/C][/R][/A][/L][/N][/P][/F][/video][/mouse]
MSAV /video

Scans your computer for known viruses.
扫描你的硬盘上(有没有)已知的病毒

MSBACKUP
(External)

MSBACKUP [setupfile] [/BW|/LCD|/MDA]

Used to backup or restore one or more files from one disk to another.
备份一个磁盘上的一个或多个文件到另一个磁盘中或从另一个磁盘中恢复这个磁盘上的文件


MSCDEX
(External)

MSCDEX /D:driver [/D:driver2. . .] [/E][/K][/S][/V][/L:letter] [/M:number]

Used to gain access to CD-ROM drives (new with DOS Version 6).
用以访问CD-ROM(DOS6.XX中的新命令)

MSD
(External)

MSD [/B][/I]
MSD [/I] [/F[d:][path]filename [/P[d:][path]filename [/S[d:][path]filename

Provides detailed technical information about your computer.
提供你的计算机的技术上的详细信息。--KO的话:就是检查你的电脑上的硬件和软件信息。就像windows下的system information系统信息一样)

NLSFUNC
(External)

NLSFUNC [d:][path]filename

Used to load a file with country-specific information.
用来装载一个包含特定国家的信息的文件  --KO的话:我也是头一次看到这条命令,不懂的说。

POWER
(External)

POWER [adv:max|reg|min]|std|off]

Used to turn power management on and off, report the status of power management, and set levels of power conservation.
用来打开或关闭电脑管理, 报告电脑管理的状态, 和设定电源保护的级别.  

PRINT
(External)

PRINT [/B:(buffersize)] [/D:(device)] [/M:(maxtick)] [/Q:(value] [/S:(timeslice)][/U:(busytick)] [/C][/P][/T] [d:][path][filename] [...]

Queues and prints data files.
管理和打印数据文件--KO的话:Queues的意思是“n.行列, 长队, 队列 vi.排队, 排队等待”


RECOVER
(External)

RECOVER [d:][path]filename
RECOVER d:

Resolves sector problems on a file or a disk. (Beginning with DOS Version 6, RECOVER is no longer available ).
解决一个文件或磁盘上的扇区问题 (从DOS6.xx版本开始,RECOVER不再可用).

REPLACE
(External)

REPLACE [d:][path]filename [d:][path] [/A][/P][/R][/S][/U][/W]

Replaces stored files with files of the same name from a different storage location.
用另一个存储位置里的文件覆盖此处的同名文件

RESTORE
(External)

RESTORE d: [d:][path]filename [/P][/S][/B:mm-dd-yy] [/A:mm-dd-yy][/E:hh:mm:ss] [/L:hh:mm:ss] [/M][/N][/D]

Restores to standard disk storage format files previously stored using the BACKUP command.
把先前用BACKUP命令做的备份文件恢复到这个磁盘上。

SCANDISK
(External)

SCANDISK [d: [d: . . .]|/all][/checkonly|/autofix[/nosave]|/custom][/surface][/mono][/nosummay]
SCANDISK volume-name[/checkonly|/autofix[/nosave]|/custom][/mono][/nosummary]
SCANDISK /fragment [d:][path]filename
SCANDISK /undo [undo-d:][/mono]

Starts the Microsoft ScanDisk program which is a disk analysis and repair tool used to check a drive for errors and correct any problems that it finds.
磁盘扫描工具,扫描并修复找到的错误。

SELECT
(External)

SELECT [d:] [d:][path] [country code][keyboard code]

Formats a disk and installs country-specific information and keyboard codes (starting with DOS Version 6, this command is no longer available).
格式化磁盘并安装特定的国家信息和键盘布局代号(从DOS6.xx开始,这条命令不再可用)


SETVER
(External)

SETVER [d:]:path][filename (number)][/delete][/quiet]

Displays the version table and sets the version of DOS that is reported to programs.
显示版本号并设置它报告的DOS版本号

SHARE
(External)

SHARE [/F:space] [/L:locks]

Installs support for file sharing and file locking.
安装文件共享和文件锁定的支持。

SORT
(External)

SORT [/R][/+n]  (filename2)

Sorts input and sends it to the screen or to a file.
把输入的信息排序并把它送到显示屏上(显示)或送到一个文件中。

SUBST
(External)

SUBST d: d:path
SUBST d: /D

Substitutes a virtual drive letter for a path designation.
为某个路径(目录)设定一个虚拟的盘符。 --KO的话:这样,就可以通过访问这个虚拟盘来访问这个特定的目录

SYS
(External)

SYS [source] d:

Transfers the operating system files to another disk.
传送系统文件到另一个磁盘 --KO的话:这样,可使另一个磁盘也变成系统盘。成为可启动的系统盘。

TREE
(External)

TREE [d:][path] [/A][/F]

Displays directory paths and (optionally) files in each subdirectory.
以树形方式显示某个磁盘的每一个目录和文件(可选)

UNDELETE
(External)

UNDELETE [d:][path][filename] [/DT|/DS|/DOS]
UNDELETE [/list|/all|/purge[d:]|/status|/load|/U|/S[d:]|/Td:[-entries]]

Restores files deleted with the DELETE command.
恢复用DELETE命令删除的文件

UNFORMAT
(External)

UNFORMAT d: [/J][/L][/test][/partn][/P][/U]

Used to undo the effects of formatting a disk.
用来消除format命令(格式化磁盘)的影响(作用)--KO的话:就是取消格式化的意思

VSAFE
(External)

VSAFE [/option[+|-]...] [/NE][/NX][Ax|/Cx] [/N][/D][/U]

VSAFE is a memory-resident program that continuously monitors your computer for viruses and displays a warning when it finds one.
VSAFE是一个驻留内存的程序,它不停地监视你的计算机,当发现病毒时显示警告信息。

XCOPY
(External)

XCOPY [d:][path]filename [d:][path][filename] [/A][/D:(date)] [/E][/M][/P][/S][/V][/W][Y\-Y]
Copies directories, subdirectories, and files.
复制目录,子目录和文件。--KO的话:增强的copy命令。可以复制整个目录,包括在目录中的所有文件和子目录

--------------------------------------------------------------------------------
KO的话:
好久没写了。。。
最近看到有网友要求继续执行这个教学计划,
又有了点动力。呵呵。。。

这上面列出的DOS外部命令应该比较全,我这次又是”拿来主义“,
上面这些东东是从 http://www.easydos.com/dosindex.html
复制来的,去掉了内部命令的部分,并对每条外部命令的英文解释作了粗糙的翻译。
这上面的命令都比较老,有些是DOS6.0以后不再支持的命令,在文中作了标记。
有些命令我也是头一次看到的。没用过,也不懂。呵呵。。。
有些我自己是懂的,但不知道怎么翻译或叙述能让大家更容易懂。。。

这篇帖子大家看看就算了。。。
不懂的话也没关系,反正很少用到这些命令。
其中有些常用的,到时再详细一点讲吧。反正第六课计划还是讲外部命令的。呵呵。。。

下面的英文也是来自
http://www.easydos.com/dosindex.html
英文好的可以看看。
中文翻译是用CXW_READ这个软件翻译的。这个软件翻译的质量,唉。
================
Syntax Notes
To be functional, each DOS command must be entered in a particular way: this command entry structure is known as the command's "syntax." The syntax "notation" is a way to reproduce the command syntax in print.

For example, you can determine the items that are optional, by looking for information that is printed inside square brackets. The notation [d:], for example, indicates an optional drive designation. The command syntax, on the other hand, is how YOU enter the command to make it work.


Command Syntax Elements
1. Command Name

The DOS command name is the name you enter to start the DOS program (a few of the DOS commands can be entered using shortcut names). The DOS command name is always entered first. In this book, the command is usually printed in uppercase letters, but you can enter command names as either lowercase or uppercase or a mix of both.

2. Space

Always leave a space after the command name.

3. Drive Designation

The drive designation (abbreviated in this book as "d:") is an option for many DOS commands. However, some commands are not related to disk drives and therefore do not require a drive designation. Whenever you enter a DOS command that deals with disk drives and you are already working in the drive in question, you do not have to enter the drive designator. For example, if you are working in drive A (when the DOS prompt A> is showing at the left side of the screen) and you want to use the DIR command to display a directory listing of that same drive, you do not have to enter the drive designation. If you do not enter a drive designation, DOS always assumes you are referring to the drive you are currently working in (sometimes called the "default" drive).

4. A Colon

When referring to a drive in a DOS command, you must always follow the drive designator with a colon (:) (this is how DOS recognizes it as a drive designation).

5. Pathname

A pathname (path) refers to the path you want DOS to follow in order to act on the DOS command. As described in Chapter 3, it indicates the path from the current directory or subdirectory to the files that are to be acted upon.

6. Filename

A filename is the name of a file stored on disk. As described in Chapter 1, a filename can be of eight or fewer letters or other legal characters.

7. Filename Extension

A filename extension can follow the filename to further identify it. The extension follows a period and can be of three or fewer characters. A filename extension is not required.

8. Switches

Characters shown in a command syntax that are represented by a letter or number and preceded by a forward slash (for example, "/P") are command options (sometimes known as "switches"). Use of these options activate special operations as part of a DOS command's functions.

9. Brackets

Items enclosed in square brackets are optional; in other words, the command will work in its basic form without entering the information contained inside the brackets.

10. Ellipses

Ellipses (...) indicate that an item in a command syntax can be repeated as many times as needed.

11. Vertical Bar

When items are separated by a vertical bar (|), it means that you enter one of the separated items. For example: ON | OFF means that you can enter either ON or OFF, but not both.

语法备忘录

到是功能的, 每个DOS 命令必须是进入在一特别的方向: 这命令输入结构是驰名的这命令"语法." 这语法"notation" 是一方向到再生这命令语法在列印.  

给举例, 你能决定这项目那是选项, 经由看给资讯那是已印出的里面方形brackets. 这notation [d:], 给举例, 指示一个选项磁盘designation. 这命令语法, 在于这其他手, 是如何你输入


命令语法元素
1. 命令名称

这DOS 命令名称是这名称你输入到开始这DOS 程式(一少数之这DOS 命令能是进入用捷径名称). 这DOS 命令名称是常常进入第一. 在这书, 这命令是通常已印出的在大写字, 但你c

2. 空间

常常留下一空间后迟于这命令名称.

3. 磁盘Designation

这磁盘designation (缩写成在这书如"d:") 是一个选项给许多DOS 命令. 无论如何, 有些命令是不叙述到磁盘驾驶和因此做不需要一磁盘designation. 每当你输入一DOS 命令那deals 与磁盘driv

4. 一句号

当referring 到一磁盘在一DOS 命令, 你必须常常接下来的这磁盘designator 与一句号(:) (这是如何DOS recognizes 它如一磁盘designation).

5. 路径名

一路径名(路径) refers 到这路径你要DOS 到接下来的为了动作在于这DOS 命令. 如描述在章3, 它指示这路径由这现用的目录或次目录到这文件那是到是acted 之上.

6. 文件名称

一文件名称是这名称之一文件储存在于磁盘. 如描述在章1, 一文件名称能是之八或fewer 字或其他合法的字元.  

7. 文件名称延伸

一文件名称延伸能接下来的这文件名称到另外的确认它. 这延伸下列的一一段时间和能是之三或fewer 字元. 一文件名称延伸是不需要.

8. 切换

字元展现在一命令语法那是represented 经由一字母或数字和先于经由一向前斜线(给举例, "/P") 是命令选择(有时驰名的"切换"). 用之这些选择活动特别的运算如部份之一DOS comm

9. Brackets

项目被括号在在方形brackets 是选项; 换句话说, 这命令会工作在它的基本的形式不含进入这资讯包含里面这brackets.

10. Ellipses

Ellipses (...) 指示那一个项目在一命令语法能是repeated 如许多次如需要.

11. 垂直棒

当项目是分开经由一垂直棒(|), 它意思那你输入一之这分开项目. 给举例: 在于| 离开意思那你能输入或在于或离开, 但不两者.

--------------------------------------------------------------------------------
All command information is from the downloadable book DOS the Easy Way
--------------------------------------------------------------------------------
=======================
KO的话:其实这样的翻译会害死人,谁爱看谁看吧。。。

第一段其实应该翻译成这样:
为了有效,每条DOS命令必须按这个特别的方式输入--这个命令输入的结构就是被称作为命令的“语法”。语法“注释”了在显示时重新组织这个命令语法的方式。

in print这里我翻译成了“在显示时”,因为一个历史原因,电脑上往屏幕(显示器)上显示文本时经常用"print"这个命令,所以我在这也翻译成“显示”。

上面的翻译还是不尽人意。我水平有限。大家就放过我吧。。。
其实这也是我为什么不愿自己去翻译,而只用XW_READ这个软件翻译的原因。
因为我也翻译不好。呵呵。。。

{呔!!!第六课时在此,所有强迫症统统交出银行你密码}

[ Last edited by zzz19760225 on 2017-10-31 at 16:11 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 80 楼』:  

[转帖]DOS浅析                                                          :nre              noame                 GOTOmsdos
http://www.cn-dos.net/forum/viewthread.php?tid=2812&fpage=1&highlight=&page=1

[转帖]DOS浅析

随着计算机的广泛应用,计算机的知识普及已成为应用和管理的重要组成部分。我国的个人电脑使用较为普遍的是DOS操作系统,当前席卷全球的计算机病毒所感染的也基本上是DOS操作系统的机器。因此对操作系统和磁盘使用有较全面的认识,将使计算机的应用和管理水平有所提高,同时为预防计算机病毒以及解毒提供了强有力的工具和途径。本文侧重概述DOS操作系统的引导过程、操作系统下磁盘的引导扇区、文件分配表(FAT)、目录表(FCB)、磁盘的格式化等。

一、操作系统的引导过程

当开机上电时,计算机的硬件系统就会产生一个复位脉冲,这个复位脉冲直接送到80X86芯片的管脚上,80X86芯片接到这个脉冲后,其硬件逻辑就会置CS寄存器为FFFFH,IP寄存器为0000H,也就是说,会自动地到FFFF:0000H去取第一条指令,转移到系统版上8KBROM--BIOS程序。该程序首先运行加电自检模块,若自检正常,则转入INT19H调用,进行系统引导,若自检有错,则显示错误信息进入死循环。

在进行系统引导时,引导程序还要对外挂ROM进行扫描,若扫描到硬盘控制器中的ROM(起始地址为C800:0000H,其中放的是2KB硬盘设备驱动程序),则进行软中断的重新分配,把原INT13H给硬盘,软盘中断改为INT40H,然后进行操作系统的引导。

首先,引导程序试图将软盘驱动器A:上0头、0道、1扇区(BOOT)引导记录读到起始地址为0000:7C00H的内存单元中,若成功,则执行软盘上引导程序,引导操作系统;若不成功,则将硬盘的0头、0道、1扇区的硬盘主引导记录读到起始地址0000:7C00H的内存单元中,并执行该硬盘主引导程序,其作用是将当前活动分区的分区引导程序也读到上述内存单元中,以完成该分区操作系统的引导。

从上面的叙述不难看出,硬盘与软盘引导系统的最大差别在于,硬盘要执行其物理第一扇区中的主引导程序之后才能转入相应分区逻辑第一扇区中与软盘类似的分区引导程序。

二、磁盘的引导扇区

磁盘的扇区分配由两个部分组成,第一部分只有一个扇区,这就是0道(柱)、0头、1扇区,也就是整个磁盘的第一扇区(物理上),这就是磁盘的主引导扇区。第二部分是供各个操作系统使用的扇区。

(一)、软盘的主引导扇区

主引导扇区内容由FORMAT创建,引导记录可分为四部分:

1、3字节转移指令(供系统盘用);

2、8字节含厂商标志、操作系统版本号;

3、BIOS参数块(共19字节,亦称BPB参数表);

4、引导代码,包含了自举程序的实际代码,引导代码仅对操作系统盘有效;

当该盘作系统盘时,执行转移指令,转到引导代码,执行自举程序,将DOS装入内存。

下面主要介绍BIOS参数块,通过该参数块可获得文件分配表、主目录及数据区起始扇区号。从主引导扇区第12个字节内容开始,具体的含义如下:

12-13字节:描述扇区大小(字节);

14字节:每簇所占扇区个数;

15-16字节:保留扇区数;

17字节:FAT(文件分配表)个数;

18-19字节:主目录(FCB)大小(文件个数);

20-21字节:磁盘总扇区数;

22字节:介质描述符(FD双面双密度360KB软盘,F9双面高密度1.2MB软盘,F8硬盘);

23-24字节:每个FAT表所占扇区数;

25-26字节:每道扇区数;

27-28字节:磁头个数;

29-32字节:隐含扇区数;

33-36字节:(只对硬盘有效)。当分区总数>FFFFH时,总扇区数填入此处,且20-21处值为0(此时分区容量>32M)。

注:

(1)以上凡占2个字节的,前一字节是低位,第二字节是高位;

(2)所表示的数均是16进制数(各字节内容);

对软盘来说,主引导扇区是物理第一扇区,也是逻辑O(第1个)扇区,可用DEBUG的L、W命令进行读、写操作。

(二)、硬盘的引导扇区

1、硬盘的主引导扇区(隐含扇区)

该扇区主要由两个部分组成:主引导程序和分区信息表。分配如下表:

地址偏移硬盘0道(柱)、0头、1扇区

0000H―――主引导记录及一些数字0

01BEH―――第一分区表(16字节)

01CEH―――第二分区表(16字节)

01DEH―――第三分区表(16字节)

0IEEH―――第四分区表(16字节)

01FEH―――55H

01FFH―――AAH

硬盘主引导扇区内容由FDISK.COM创建。整个硬盘空间最多划分为4个分区,可提供4个操作系统共享,每个操作系统占一个分区,如整个硬盘只提供一个操作系统使用,则其它三个分区的长度即所占扇区数为0。在IBM-PC、长城系列及其兼容机上,可通过FDISK.COM来指定各分区的大小和起止的柱面号、扇区号等;分区信息表就是用来保存这些分区信息的。分区信息表由4项组成,每项占16个字节。每一分区信息的各字节内容如下述:

第1字节:为引导标志。如该字节内容为0,表示系统加电或复位自检时,不从这个分区引导操作系统。如果该字节值为80H,则表示系统加电冷启动或热启动时,从这个分区中引导操作系统。在系统冷、热启动时,引导过程会检查分区信息表所有4项中的这个引导标志。DOS的FDISK.COM命令可以置某分区中这个字节值为80H,而置其余分区的这个字节值为0。

第2字节:为本分区起始磁头号。

第3字节:为本分区起始的扇区号。在这个字节中只有低6位是表示扇区号,而高2位则表示起始柱面号的最高2位。

第4字节:为本分区起始的柱面号。

第5字节:为本分区操作系统代码。DOS3.0以下版本,该字节值为01,3.0以上版本该字节值为04,5.0以上版本为06等,当该字节值为
02、03时,则表示该分区的操作系统为XENIX。该字节值为63,表示该分区的操作系统为NIX。该字节值为65,表示该分区的
操作系统为NetWare。

第6字节:本分区结束的磁头号。

第7字节:本分区结束扇区号。其中高2位表示结束柱面号的高2位。

第8字节:本分区结束柱面号。

第9-12字节:在本分区之前已经使用掉的扇区数。

第13-16字节:本分区所使用的扇区数。

硬盘的主引导程序在硬盘的第一扇区中,它是各操作系统的共同部分。它的作用就是查看分区信息表中的4个分区引导标志,当某一分区的引导标志为80H时,主引导程序就把这一分区的第一个扇区(逻辑0扇区)读到内存0000:7C00H处,并从那儿开始执行。主引导程序是属于隐含扇区的,只能用以下两种方法进行读写操作:

(1)、用中断13H实现,用下面的小程序段:

MOVDX,0080硬盘0磁头;

MOVCX,00010道第1扇区;

MOVBX,0200缓冲区地址200处作为起始;

MOVAX,0X01X=2表示读1个扇区,X=3表示写一个扇区;

INT13H磁盘I/O中断;

执行该段程序,就可对硬盘主引导扇区进行读、写操作。

(2)、系统启动后,通过修改内存中的硬盘驱动器参数表(BPB),将总扇区数改为原总扇区数加隐含扇区数,隐含扇区数改为0,则可用DEBUG.COM的L、W命令对主引导扇区进行读、写(事实上,经过上述改动后,主引导扇区已变为逻辑0扇区)操作。

2、分区引导扇区

DOS分区引导程序占据着该分区的第1扇区(逻辑0扇区),内容与软盘的主引导扇区基本相同,只不过BPB参数表的具体值不同。DOS分区引导程序不一定就在硬盘的物理第二扇区,需根据隐含扇区数定。这一扇区的逻辑号总是0。
分区引导程序由FORMAT创建。

三、FAT表、FCB和数据区起始扇区号计算方法及簇号和扇区号的关系

为以下叙述文件分配表(FAT)、目录表(FCB)的方便,将以下涉及的有关换算关系先在这里列出:

第一个FAT表总是从逻辑1扇区开始;

第二个FAT表起始扇区号=1+FAT表长;

主目录起始扇区号=1+2个FAT表长;

数据区起始扇区号=1+2个FAT表长+主目录长;

S=(C-2)*(扇区数/每簇)+数据区起始扇区号,其中:S表示数据(文件)所在的逻缉扇区号,C表示数据(文件)所在的簇号。以上关系式中,起始扇区号均表示逻辑扇区号。

四、DOS对文件的空间分配

DOS进行格式化时对磁盘空间按如下分配:

(1)引导部分;

(2)文件分配表的第一拷贝;

(3)文件分配表的第二拷贝;

(4)根目录;

(5)数据区;

注:以上分配对软盘而言是整个盘空间,对硬盘而言是DOS分区部分。

文件的空间分配(在数据区中)仅当需要时才进行(不是预先分配)。每次分配一簇的空间(分配单位),一簇总是一个或多个连续的扇区。文件分配中,文件所有的簇是链在一起的,对多磁头介质(磁盘),调整盘簇使头的移动减到最少。在转到下道上去时,要分配完本道(柱)的全部空间。这个过程是这样进行的,先使用编号最低的顺序扇区,然后移到下一个头的扇区,按此法进行下去直到道的所有头的扇区使用完。再往下,就是下一道的0头1扇区。

数据区域里的文件无需按序写到盘上。每次分配一个簇的数据空间,跳过已分配的簇,找到的第一块空闲的簇便是下一个要分配的簇,不考虑其在硬盘空间上的物理位置。这样可高效率利用盘空间,因为删除文件后可用的簇又能分配给新的文件。

五、文件分配表FAT

DOS使用文件分配表将文件的簇转化为逻辑扇区号,然后,驱动程序就负责找出盘上逻辑扇区。FAT有两个,当采用拷贝、删除、创建、修改文件等操作时(用DOS命令),两个FAT表同时更新,相对应扇区内容一样。但当用调试命令DEBUG.COM的W命令针对扇区操作时,则只写指出的扇区,对另一FAT表相扇区内容不作更新(当用INT13H的AH=3功能调用写盘也是如此)。FAT的内容是文件所占用的簇号及结束标志。DOS3.0以后的版本里,FAT的每一表项有16位和12位两种,12位长的表项最多可表达4096簇,16位长的表项最多可表达65536簇,在DOS下,每簇扇区数是由FDISK.COM和FORMAT.COM命令确定的,且以后不能改变,除非再次运行上述两条命令。在DOS3.0以后版本里,对硬盘使用FDISK.COM命令建立分区时,究竟是使用12位还是16位FAT表项来表示簇号,取决于DOS分区是否大于4096簇,大于时,则建立的FAT每一表项为16位,否则为12位。FAT对文件的分配总是从第2簇开始。它的内容含意如下:

0000H(000H):簇未用或可用;

FFF8-FFFFH(FF8-FFFH):文件结束标志;

FFF7H(FF7H):如果不是分配链部分则表示坏簇;

XXXXH(XXXH):非上述的任何十六进制数,表示文件HEXTCLUSTER的簇号。
文件里第一个簇号保存在文件目录项里,它的取值范围0002-FFEFH(002-FEFH)。

注:四位16进制数对应的是16位表项的FAT,三位16进制数对应的是12位表项的FAT(下同);一般地,FFF0-FFF6H(FF0-FF6H)是用来表示备用簇。

由目录表项里可查到文件的起始族号,由此就可找出文件使用的其它簇号,方法是:

1、将目录表项里文件的起始簇号*2(或1.5);

2、乘积的整数部分是相对FAT的位移量,指出了映射到刚使用的簇的项。这个项含有文件的下一个簇的簇号。

3、对于12位表项的FAT,如果最后一次所用的簇号是偶数,保留低12位,否则保留高12位。

4、如果作为结果的值是FFF8-FFFFH(FF8-FFFH),文件中就不再有簇可用,否则含有下一簇的簇号。

注:以上算法中要注意16进制与10进制的转换,1中乘以2针对16位表项FAT,乘以1.5针对12位表项FAT。

六、文件目录表(FCB)

FORMAT.COM为所有盘建立根目录,它的位置(逻辑扇区号)和项的最大数,可通过BIOS参数块算出。除根目录外的目录实际上是文件,对它们所包含的项是没有限制的,子目录可做为文件来读,使用带有适当的属性字节的扩展FCB来完成。在文件目录表中,一个扇区只有16个文件(目录)项。

1、每一文件(目录)项的各位表示状态0-7字节是文件名。首字节00H表示从未用过,E5H表示用过已删除,2EH表示是目录项,其它表示文件名的第一个字符。

8-10字节是文件扩展名。

11字节是文件属性。01表示只读文件;02表示隐含文件,04表示系统文 件;08表示该目录项包含盘称号的头11个字节,除此之外,不再有其它有用 信息,并且只存在于根目录里(即表示的是磁盘卷标号);10表示该项定义一 个子目录;20表示留档位,文件一但写入或关闭,该位就置位;30表示归档加 子目录;32表示归档加子目录加隐含等等(这里的数01、02...30、32是十六进 制数)。

12-21字节是备用。22-23字节记录文件建立最后一次修改的时间(位映图 如下):

(HH)(MM)(XX)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

这里:

HH:是小时的二进制记数(0-23),占5位;

MM:是分钟的二进制记数(0-59),占6位;

XX:是以二秒为增量的二进制记数,占5位;

24-25字节表示文件的最后一次修改日期,按位映图如下:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

Y Y Y Y Y Y Y M M M M D D D D D

这里:

9-15位是YY(表示年),值是0-119(1980-2099);

5-8位是MM(表示月).值是1-12;

0-4位是DD(表示日),值是1-31;

26-27字节是文件(目录项)的起始簇号。

28-31字节表示以字节计的文件大小。第一个字包含了大小的低位部分, 两个字的第一字节都是存贮其数字值的低位有效字节。

2、如何寻找子目录及其下的文件目录表

(1)在主目录中找出其子目录的起始簇号;

(2)由簇号与扇区号的转化公式求出逻辑扇区号;

(3)从该扇区开始可查找其子目录下各个文件的目录表项了;

如还想找该子目录下的子目录,再用上法依次进行下去。

注:查找文件的(数据)存贮扇区方法同上类似,但不要进行第3步,再由 起始簇号通过FAT查出所有的簇号,依次找出其存贮的逻辑扇区。

七、磁盘的格式化

磁盘的格式化分为低级格式化(初始化)和高级格式化(FORMAT)。

(一)、磁盘的低级格式化

磁盘的低级格式化是指对磁盘进行物理格式化。一般只在以下情况之 一出现时,才进行操作。

1、当磁盘的0道受到物理损坏(因移动机器前没有进行磁头复位的操作及硬盘磁头的读、写时断电,使磁头划伤磁盘等);

2、用户更换新的硬盘驱动器;

3、在硬盘上试图装入几种不同的操作系统。例如:原来硬盘上装有多用户操作系统XENIX和单用户操作系统DOS,这时还想装入另一种多用户操作系统;

4、在硬盘上出现无法在操作系统下恢复的错误。

对磁盘初始化可以通过以下三种办法进行:

1、借助ROMBIOS程序(针对硬盘)

在控制板上的硬盘ROMBIOS程序中提供了硬盘初始化程序。系统启动后,ROMBIOS为板上带ROM程序的适配器插件板提供了进入系统的方便条件。可由 下列两种形式实现:

(1)在DEBUG状态提示符下,用D命令显示地址C800:0000-000FH之间的内容,确认为ROM:

C800:000055AAXX......其中XX表示ROM长度;

然后,用U命令把0003-000F之间的目标代码反汇编(一般其中有2-3条JMP 指令),查出跳转到ROM中低级格式化程序段去的JMP指令所在存贮单元的首 地址偏移量XXXX,运行命令G。不同的硬盘机器,G命令起始地址的偏移量XXXX可能稍有不同,但一般来说,第二条JMP指令所在单元的首地址偏移量即为XXXX。(如PC/XT及东海0520机)

(2)用以下程序段实现:

MOVAX,07XXAH=07表示驱动器格式化(初始化),用XX扇区内容替代所有扇区;

MOVDX,0080硬盘0磁头;

MOVCX,00010道1扇区开始;

INT13H

INT3H

注:以上所述2种方法在PC/XT及其兼容机长城0520、东海0520上已实现;

2、运行系统盘上(若有)的LOWFORM.EXE低级格式化程序和带低级格式化功能的工具软件;

3、运行随机提供的诊断程序(硬软盘均行);

(二)、磁盘的高级格式化(FORMAT)

当对软盘FORMAT时,将创建主引导扇区,FAT表除前3个字节为FD、FF、FF(双面双密度360KB)外,其它字节置0;对目录表FCB,3.0以上版本将其所有字节全置0,3.0以下版本将第一字节置0,其它字节置F6,数据区所有字节都置F6。

当对硬盘FORMAT时,做以下几项工作:

1、根据建立DOS分区命令FDISK.COM记录在硬盘上的信息,对属于DOS分区部分数据区只进行检测,若有损坏扇区,在FAT表对应的串(簇号)置FFF7H(FF7H),其它的数据一律保留不动;

2、初始化DOS的文件分配表和文件根目录区,将FAT表内容置0,FCB表目录项的第一字节置0。初始化磁盘结构参数表。

3、创建DOS分区引导程序,记录在分区的第一扇区(逻辑0扇区);

若需在硬盘启动机器(加/S参数),则还要建立IBM-BIO.COM、IBMDOS.COM(长城系列机为GWBIO.COM、GWDOS.COM;MS-DOS为IO.SYS和MSDOS.SYS)、COMMAND.COM三个文件。

(三)、对磁盘的磁道进行格式化

对磁道进行格式化是由ROMBIOS提供的13号中断的5号功能完成的。其调用格式如下:

入口:AH=5DH=磁头号DL=盘号CH=磁道号

ES:BX缓冲区必须指向所需地址区段集合,每个区段包含四个字节(C、H、R、N),其中:C=磁道号,H=磁头号,R=扇区号,N=每扇区字节数,以0-3分 别表示每扇区128、256、512、1024字节。

根据以上入口参数,调用13号中断就可对磁盘某一道进行格式化。

例如:可对360KB软盘进行40道、41道的格式化,增加18KB容量,可由以下程序实现:

ES:0100MOVAX,0501AH=5,表示对磁道进行格式化;

ES:0103MOVBX,02X0X=0,3,6,9使得ES:BX

指向对应头、道的内存缓冲区扇区数据识别的地址;

ES:0106MOVDX,0X0XDH=00、01表示0磁头、1磁头,DL=00、01表示A盘、B盘;

ES:0109MOVCX,2X01X=8表示40道,X=9表示41道

ES:010CINT13H 扇区识别数据如下:

C H R

ES:0200 28 00 01 02 28 00 02 02 28 00 03 02 28 00 04 02

ES:0210 28 00 05 02 28 00 06 02 28 00 07 02 28 00 08 02

ES:0220 28 00 09 02 00 00 00 00 00 00 00 00 00 00 00 00

ES:0230 28 01 01 02 28 01 02 02 28 01 03 02 28 01 04 02

ES:0240 28 01 05 02 28 01 06 02 28 01 07 02 28 01 08 02

ES:0250 28 01 09 02 00 00 00 00 00 00 00 00 00 00 00 00

ES:0260 29 00 01 02 29 00 02 02 29 00 03 02 29 00 04 02

ES:0270 29 00 05 02 29 00 06 02 29 00 07 02 29 00 08 02

ES:0280 29 00 09 02 00 00 00 00 00 00 00 00 00 00 00 00

ES:0290 29 01 01 02 29 01 02 02 29 01 03 02 29 01 04 02

ES:02A0 29 01 05 02 29 01 06 02 29 01 07 02 29 01 08 02

ES:0280 29 01 09 02 00 00 00 00 00 00 00 00 00 00 00 00

此时驱动器的电参数表内容为:

0000:0522DF02250209......(该处地址,不同的机器可能有差别)

对于上述,取BX=0200,DX=0001,CX=2801,则对B盘0头(面),40道进行格式化(9扇区/每道),依次修改BX、DX、CX的取值,执行0100-010E之间的程序段就完成了对40道、41道的格式化。然后修改磁盘的BPB参数中软盘的总扇区数,将02D0H改为02F4H,则软盘的容量为387072字节(378KB比原来增加18KB),且DOS(3.0以上版本)可对40道、41道进行正常管理。

对以上分析可知,我们既可以增加软盘的容量,又可以将某些重要信息写入40道、41道中的扇区(用DEBUG的W命令),再将BPB参数表中总扇区数改为02DOH,达到特殊的加密效果,阻止它人读、写及复制。此时在360KB驱动器执行FORMAT也不会破坏40道、41道内容。同时只要对以上程序、驱动器电参数表(格式化参数)、扇区识别数据稍加修改还能格式化出每道多于或少于9个扇区的特殊化磁道(大多数游戏盘就是采取这种机理制作的)。如取电参数表中的N=00,扇区个数为20H,对其它的参数也略加修改,将扇区识别数据内容
相应改动为识别20H扇区、N=00,则可对某道实行每扇区128个字节、32个扇区的格式化,这样的磁道也阻止正常的DOS读、写及复制,在磁道的扇区保存一些重要信息(需要单独编制读、写程序),同样可以达到特殊的加密效果。

本文从操作系统的引导过程、引导扇区、DOS对文件的空间分配、文件和目录分配表的意义及起始扇区的计算方法、磁盘的格式化等方面对磁盘的使用作了浅析,愿广大计算机爱好者通过该文的介绍,能对磁盘的使用有一个较深的认识。

-----------------------------------------------------------------
noame

抱歉,也许使我要求太高了,看来也许是因为性格原因我在这似乎不太受欢迎,那我就不再打搅大家了,精通这方面谈不上,不过资料有一些,因是精华区我不敢乱贴,既然nre朋友要求我就放两篇上来,算是离别赠言吧,版主如果不喜欢就麻烦删一下吧!
1. 软盘数据的逻辑存储
软盘无须低级格式化和分区操作,只需用FORMAT命令做高级格式化即可。经过格式化操作之后,系统将在软磁盘上建立以下的数据结构:
(1) 引导记录(DBR):位于0面0头1扇区,说明磁盘结构信息。
(2) 文件分配表(FAT):用于记录磁盘空间的分配情况,指示硬盘数据信息存放的柱面及扇区的信息指针。
其表项可以是以下四种表示方式之一:
A.一个数字,代表指向另一个簇的指针。
B.数字0,表示一个未使用的簇
C.一个坏扇区标记
D.文件结束标记符EOF
(3) 文件根目录表FDT:一个指示以存入数据信息的索引。记录磁盘上存储文件的大小,位置,日期和时间等数据。
(4) 数据区:存放数据信息。
2. 硬盘中的数据组织
刚刚从厂商处购来的新硬盘既无任何数据,也不能写入任何数据,必须先进行低级格式化,FDISK分区,FORMAT高级格式化后方可使用。
对硬盘的这一系列初始化工作,称之为硬盘准备。过程如下:
低级格式化---------------FDISK分区-------------------FORMAT高级格式化
(1)低级格式化:对硬盘划分磁道和扇区,在扇区的地址域上标注地址信息,并剔出坏磁道。
(2)FDISK:允许整个物理硬盘在逻辑上划分成多个分区(最多4个),以实现多个操作系统共享硬盘空间。如果将整个物理盘全部划归DOS/WINDOWS管理,则FDISK分区的作用是将一个物理盘划分一个主分区和一个扩展分区,然后再将扩展分区划分成一个或多个逻辑盘。在硬盘上建立分区表的同时,FDISK把主引导记录MBR写到硬盘的主引导记录(柱面0,磁头0,扇区1),并激活一个用户指定的分区。
(3)FORMAT:在DOS分区空间划分逻辑扇区,生成DOS引导扇区(即逻辑0扇区)DBR,文件分配表FAT和根文件目录表FDT。硬盘在DOS/WINDOWS的管理下,数据信息由MBR,DBR,FAT,FDT和数据区5个部分组成。与软盘的数据结构相比较,硬盘多了一个数据区MBR(Master Boot Record)。
MBR称为硬盘主引导记录。它是由FDISK建立在硬盘(柱面0,磁头0,扇区1)的硬盘引导记录数据区,用于硬盘启动时将系统控制权转给用户指定的,并在分区表中登记了的某个操作系统区。
硬盘FAT文件系统的数据组织结构:
MBR  DBR  FAT1  FAT2  根目录  数据区  
MBR位于0柱,0头,1扇区 DBR从逻辑0扇区开始
FAT1从逻辑1扇区开始
硬盘FAT32文件系统的数据组织结构:
MBR  DBR  DBR副本  保留扇区  FAT1  FAT2  根目录FDT  数据区  
MBR位于0柱,0头,1扇区 DBR从逻辑0扇区开始
DBR副本从逻辑6扇区开始 FAT1从逻辑32扇区开始
  硬盘的数据区结构与软盘相比较有两点主要区别:
(1) 多了一个独立于操作系统的MBR
(2) 硬盘的FAT1,FAT2和根目录FDT的大小及起止扇区并不固定,它于逻辑盘的容量有关。
虽然硬盘的FAT1,FAT2和根目录FDT表的大小与起始扇区号和逻辑盘的容量有关。但是,根目录FDT的大小总为32个扇区。;
二、硬盘主引导记录(MBR)及其结构
硬盘的0柱面,0磁头,1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的,并在分区表中登记了某个操作系统分区。
主引导记录记录磁盘最重要的结构信息。主引导记录是硬磁盘作分区时建立的(Fdisk)。主引导记录包括一小段执行代码(主引导代码)、磁盘特征和硬盘分区表。主引导记录(以及后面介绍的引导扇区)结束的两个字节必须是引导自举标记0x55AA。
软盘无主引导记录。软盘的第一个扇区是引导扇区。虽然每个硬盘包含一个主引导记录, 只有其拥有活动主分区时才用主引导代码。
主引导代码实现下列功能:
* 扫描分区表查找活动分区;
* 寻找活动分区的起始扇区;
* 将活动分区的引导扇区读到内存;
* 执行引导扇区的运行代码。
* 如果主引导代码未完成这些功能, 系统显示下列错误信息:
* Invalid partition table
* Error loading operating system
* Missing operating system
1. MBR的读取
硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。
2. MBR的组成
一个扇区的硬盘主引导记录MBR由4个部分组成:
(1)主引导程序(偏移地址0000H~0088H),它负责从活动分区中装载并运行系统引导程序。
(2)出错信息数据区偏移地址(0089~00E1为出错信息,10E2H~10BD全为0字节)
(3)分区表(DPT,Disk Partition Table).含4个分区项偏移地址01BEH~01FDH,每个
分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4).其中,加下划线的16个字节数据就是分区项1(即主分区)的参数.
(4)结束标志偏移地址(01EFH~01FFH的两个字节值为结束标志55AA,如果该标志错误系统就不能启动).
3. MBR中的分区信息结构
占用512个字节的MBR中,偏移地址01BEH~01FDH的64个字节,为4个分区项内容(分区信息表)。它是由磁盘介质类型及用户在使用FDISK定义分区时确定的。每个分区表的项目是16个字节。
4. 主要功能及其工作流程
启动PC机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H。然后读系统磁盘0柱面,0磁头,1扇区的主引导记录MBR内容到内存指定单元0:7C00首址开始的区域,并执行MBR程序段。
硬盘的引导记录是不属于任何一个操作系统的,它先于所有的操作系统而被调入内存并发挥作用,然后才将控制权交给主分区内的操作系统,并让主分区信息表来管理硬盘。
MBR程序段的主要功能如下:
(1) 检查硬盘分区表是否完好
(2) 在分区表中寻找可引导的活动分区
(3) 将活动分区的第一逻辑扇区内容装入内存。在DOS/WINDOWS分区中,此扇区内容称为DOS引导记录。

三、引导记录及其结构
磁盘的逻辑0扇区都称为DOS引导扇区,又称为BOOT区。我们可以用DEBUG中的L命令读出DBR扇区的内容。在DEBUG中,L命令的格式是:
-L 内存缓冲区地址,盘号, 起始扇区号, 要读取的扇区数 回车其中,磁盘A,B,C,D,E…..的盘号分别为0,1,2,3,4…….
例如,进入DEBUG后,将D盘DBR扇区的读入内存CS:100的命令为:-L 100,3,0,1 回车
1. DBR扇区的结构
经由FORMAT高级格式化写到该扇区的内容成为DOS引导记录DBR,其主要功能是完成DOS/WINDOWS系统的自举。
以FAT16的硬盘DBR为例,它由以下5个部分组成:
(1) 跳转指令,占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本变化。
(2) 厂商标识和DOS版本号。该部分总共占用8个字节,其内容随DOS版本而不同。
(3) BPB(BIOS Paramenter Block, BIOS参数块)。BPB从第12字节起占用19或25个字节(高版本DOS,包括Win95下DOS7.0)
(4) DOS引导程序。DOS引导程序占用480字节的BOOT代码,负责完成DOS的3个系统文件的装入工作。这部分内容随DOS版本不同而变化。
(5) 结束标志字,结束标志占用2个字节,其值为AA55。
以上5个部分共占用512个字节也正好是一个扇区,因此,称它DOS引导扇区或BOOT区。在该区间的内容中,除了第5部分结束标志字是固定不变之外,其余4个部分都是不确定的,第1,2,4部分都因DOS版本的不同而不同,第三部分的内容也将随DOS版本及硬盘的逻辑盘参数的变化而变化。
DOS引导记录中的BPB参数块从第12(0BH)字节起,这是磁盘的重要参数区。
保留扇区:由操作系统指定的被保留用作引导区的扇区数。(即BOOT扇区)
介质描述:向操作系统提供的所用磁盘的性质。不同的介质具有不同的介质描述值,硬盘的介质描述符为"F8"。
隐含扇区数:一般用于硬盘分区,所以在软盘中该值为0,在硬盘分区中,它表示从磁盘起始扇区至当前分区之前的总扇区数。
硬盘的每一个分区都是一个独立的"逻辑驱动器",DOS将每个分区都视为一个从0开始的连续扇区块。每个分区的隐含扇区取决于该分区以前的扇区总数。即0柱面0磁头1扇区至0柱面1磁头1扇区之间的扇区数(以上指对硬盘而言),这些扇区不能为DOS所访问,故为隐含扇区。
DBR的主要功能:
DOS/windows系统在引导的时候,DBR是第一个(除硬盘的MBR之外)需装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要任务是装载DOS的系统隐藏文件IO.SYS。
DBR程序段所完成的主要任务如下:
(1) 重新设置引导驱动器
(2) 将根目录的第一个扇区(即根目录FDT中的前16个文件项)装载到内存;
(3) 检查FDT中的前两个文件是否DOS的两个系统隐藏文件。(IO.SYS和MSDOS.SYS)
(4) 将其中一个系统隐藏文件IO.SYS装载到内存。
(5) 将控制权交给该系统隐藏文件IO.SYS。
四,文件分配表FAT
  文件分配表FAT(File Allocation Tabel)是文件管理系统用来给每个文件分配磁盘物理空间的表格,它告诉操作系统,文件存放在磁盘什么地方。
  文件分配表型文件系统是微软操作系统最传统和应用最广的文件系统。标准的 FAT 使用 16 位寻址方式, Windows 95 OSR2中引入 FAT32 方案。FAT16 簇数的上限是 2 的 16 次即 65536 个, 每簇扇区数的上限是 64 个, 因此其分区空间的上限为 2G(Windows NT/2000 每簇扇区数可为 128, FAT16 空间扩充到 4G); FAT32 簇使用 32 位寻址方式, 其中高 4 位保留, 实际簇数最多为 2 的 28 次, 同时受当前磁盘物理结构和工业标准的限制,一个磁盘或磁盘阵列中扇区最大个数为 2 的 32 次, 空间为 2 的 41 次即2TB。Windows 2000 将 FAT32 卷的大小限制为 32GB。
  文件系统的全部目的是跟踪文件, 具体描述即需要说明整个磁盘分区中每个存储单元(簇)的使用情况、文件数据的簇存储情况(连续或碎片)以及树型目录结构的描述。FAT 实际上是一个卷中所有簇使用情况的映射表, 每个文件/目录都同表中的若干项对应联系, 并在目录中进行索引。FAT32 是 FAT 的扩展, 支持 32位寻址, 保留了簇映射和目录索引的基本结构。
文件分配表(FAT)由表标识和簇映射(旧称表目)的集合组成。一个完全相同的镜像副本连续存储在主 FAT 表后。
表标识符包括磁盘介质描述符( 1 字节)和填充字节, 总计占两个簇的簇映射区域(这大概也就是 FAT 文件系统簇号由 2 开始的原因 ?), 填充字节一般为 FF。FAT32 的填充字节中还包含"脏位", 即系统启动时执行磁盘检查(FAT-ChkDsk/NTFS-AutoChk)。
FAT 实际上由 FAT12 和 FAT16 构成, 其簇映射值分别为 12 和 16 位, 其他的全部存储逻辑均相同, 当总簇数大于 4080(FF0h)时为标准的 16 位 FAT。FAT 簇映射中, 0000 表示空簇, FFFF 表示簇链结束, FFF7 表示坏簇, 其余值表示其后续簇的簇号。FAT12 和 FAT32 的存储策略同 FAT16 类似, 例如 FAT12的结束簇为 FFF, FAT32 的坏簇为 0FFFFFF7 等(注意 FAT32 的高 4 位保留)。
  FAT 具有紧凑和高速的优点。通过对磁盘的数字化描述, FAT 记录了每个文件的位置和区域。自然这些优点的得到是有代价的, FAT 的代价是寻址空间的局限(2GB)和簇内空间的浪费, FAT32 的 FAT 表则占据了过多的磁盘空间, 如果操作系统操作一个相对大的分区依然试图将整个 FAT 表放进内存, 其占据的空间和时间资源将相当可观, 同时会导致系统的脆弱, 特别是磁盘碎片很多时, 甚至可能造成系统的崩溃, 至少将影响正常系统的健壮。
引导扇区 BIOS 参数表`
  磁盘 BIOS 参数表(BPB)描述磁盘的逻辑结构, 是 DOS 文件系统在磁盘上存取文件的依据, 文件存取中的簇与逻辑扇区之间的相互映射以及逻辑扇区与物理扇区之间的相互映射都需要借助于该表。 磁盘 BIOS 参数表存放于每个格式化磁盘的起始即磁盘引导扇区, 对于软盘为第一扇区, 对于硬盘为分区第一扇区, 从第 12 字节开始。
下表为典型的 FAT32 引导扇区 BIOS 参数表(FAT16 包括 FAT12):
偏移  长  典型数值  适用  名称  描述  
0X0B  2  0002     每扇区字节数  硬件扇区的大小。有效值为512、1024、2048和4096,一般为512  
0X0D  1  08     每簇扇区数  数据区每个簇的扇区数。操作系统只能访问有限的簇数,通过对每簇扇区数的修改访问容量叫大的卷。每卷簇扇区数取决于卷容量,其有效值在1至128间(2的整幂数。Windows2000限制FAT32分区最大限度为32GB,但可访问其他操作系统如Windows95OSR2建立的更大分区。  
0XOE  2  2000     保留扇区数  包括引导扇区内的从卷开始到第一个FAT的扇区数。典型的FAT32保留扇区数为32,FAT为1。  
OX10  1  02     FAT数目  卷的FAT拷贝数目,为2  
OX11  2  0000  FAT16  根目录入口数  根目录存储的32字节文件和目录名入口个数。硬盘一般为512,其中的一个为卷标。FAT32中此值为0  
OX13  2  0000  FAT16  (小)扇区数  卷扇区数为16(<65536时)。否则为0,扇区数在FAT32中此值为0  
OX15  1  F8     介质描述符  硬盘为OXF8,高密度3.5英寸软盘为OXF0。Windows2000已不用。  
OX16  2  0000  FAT16  每个FAT扇区数  每个FAT扇区数,卷中每个FAT占据的扇区数。操作系统使用隐含扇区数,保留扇区数和本参数。计算根目录起始地址,并根据根目录入口地址数计算数据区起始地址。FAT32为0。  
OX18  2  3F00     每磁道扇区数  磁盘每道物理扇区数。INT13H访问磁盘用的参数,在多磁头和柱面卷中折算到磁道中。  
OX1A  2  FF00     磁头数  磁盘每道磁头数。例如3.5英寸1.44MB软盘的磁头数为2  
OX1C  4  EE39D700     隐含扇区数  卷引导扇区前的扇区数。用于在引导过程中计算根目录和数据区的绝对地址,此值一般仅相关于INT13H可访问的介质,在非分区介质中必须为0。  
OX20  4  7F324E00     (大)扇区数  如果(小)扇区数为0,在此表明卷扇区总数。如果(小)扇区数非0,则此参数为0。  
OX24  8  83130000  FAT32  每个FAT扇区数  FAT32卷中每个FAT占据的扇区数。操作系统使用隐含扇区数,保留扇区数和本参数,计算根目录起始地址,并根据根目录入口数计算数据区起始地址  
OX28  2  0000  FAT32  扩展标志  两字节结构包括:0..3位:活动FAT数目(从0开始,不是1),仅在无镜像有效4..6位:保留7位:0代表FAT在任何时刻镜像至所有的FAT,1代表仅有一个活动的FAT(关联于0..3位)8..15位:保留  
0X2A  2  0000  FAT32  文件系统版本  高字节为主版本号,低字节为辅版本号。用于将来FAT32升级时区分版本,如果此值非0,低版本Windows不妨问卷  
OX2C  4  02000000  FAT32  根目录簇号  根目录的首簇号,一般为2,但有可能不是  
0X30  2  0100  FAT32  文件系统信息扇区号  在FAT32保留扇区中存放文件系统信息结构的扇区号。典型的值为1。引导扇区的文件系统信息结构备份于该扇区,但不保持刷新  
0X34  2  0600  FAT32  引导扇区备份  非0值表示引导扇区备份在隐含扇区的位置,典型值为6,不推崇其他值  
OX40  1  80     物理驱动器号  描述BIOS物理磁盘编号。软盘为0X00,硬盘为80,一般BIOS INT13H调用磁盘时用。此值只对可启动设备有效。  
OX41  1  00     保留  此值为0  
0X42  1  29     扩展标志  扩展引导标志必须为0X28或OX29  
0X43  4  A88B3652     卷序列号  格式化磁盘时随机随机生成的序列号,用于帮助分区磁盘  
0X47  11  NO NAME     卷标  曾经使用,卷标现以特殊入口方式存于根目录  
OX52  8  FAT32     文件系统类型  FAT16或FAT32文字域  

原始的磁盘基数表(现操作系统已放弃)
磁盘基数表存放磁盘进行 I/O 操作时用于控制硬件的基本参数, 位于引导扇区的 21h 字节。表中每项对应一个字节。
偏移  含义  
21  高 4 位为步进速率, 低 4 位磁头卸载时间  
22  马达等待时间(延迟关闭)  
23  每扇区字节数(0-128,1-256,2-512,3-1024 等)  
24  每道扇区数  
25  扇区间间隔字节数  
26  每扇区字节数(当24为0时)  
27  格式化操作对扇区间隔的填充字节  
28  格式化操作对扇区数据区的填充字节  
29  寻道后磁头稳定时间  
2A  执行命令的最长等待时间  
2B   
1. FAT表的大小及位置
  FAT在磁盘上是安排在紧接DOS引导扇区DBR之后的,在FAT16中,它总是从磁盘的逻辑1扇区开始。
  在磁盘上共有FAT表的两个拷贝(一个是基本FAT表FAT1,另一个是FAT表的备份FAT2),两者在磁盘上前后紧排在一起,其大小根据分区的大小不同而变化。FAT表之后紧接着是根目录,根目录之后是数据区。在硬盘中,FAT16的文件分配表仍然是存放在逻辑1扇区开始的若干个扇区内,一个文件分配表占用多少个扇区根据硬盘分区和逻辑盘的容量大小情况的不同而不同。
2. 文件的簇号链
  磁盘格式划后,用户文件是以簇为单位存放在数据区中的,一个文件至少占用一个簇,当一个文件占用多个簇时,这些簇的簇号是不一定连续的,但这些簇号之间有由存储该文件时确定了的顺序,即每个文件都有其特定的簇号链。
  在磁盘上的每一个可用的簇在FAT中就只有一个登记项,通过在对应簇号的登记项内填入表项值来表明数据区中的该簇是以占用,空闲或是已损坏的。损坏的簇是在格式化的过程中,通过FORMAT命令发现的,在一个簇中,只要有一个扇区有问题,该簇就不能使用了。磁盘上的簇在FAT中的表项占12,16或32位。在FAT16文件系统中,每簇在FAT中所取表项值是占12位还是16位与所用磁盘的容量有关,12位表项值可表示4096个簇,若磁盘的簇数大于4096,则必须用16位表项值。一般来说,软盘和小于20740个扇区的硬盘DOS分区用12位映射一个簇,如多于20740个扇区的硬盘分区,则采用16位的FAT。

--------------------------------------------

GOTOmsdos

拜读大作! 不胜感激! 听君两席言,胜读十卷书! 解开我很多疑点! 尤其是启动全过程.
不过,我想斗胆补充一下芝麻漏洞,望晾.
  第一篇,文件目录表不是fcb (file control block,文件控制块),是fdt(file directory table)
第二篇,硬盘数据结构跟软盘的区别:应加上,硬盘分区表(DPT, disk partition table)软盘没有.

[ Last edited by zzz19760225 on 2017-10-31 at 16:50 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 81 楼』:  

DOS程序员参考手册                                :henrya2


http://www.cn-dos.net/forum/viewthread.php?tid=19267   
http://www.cn-dos.net/forum/attachment.php?aid=978&checkid=9580b&download=1      下载

第一部分DOS概述
第二部分    输入输出设备
第三部分    磁盘、目录和文件
第三部分    磁盘、目录和文件
第五部分参考手册

第1章DOS简介
第2章DOS系统结构
第3章动态的DOS
第4章DOS和BIOS接口
第5章输出设备
第6章输入设备
第7章串行设备
第8章磁盘
第9章目录和文件
第10章程序和内存管理
第11章中断处理程序
第12章设备驱动程序
第13章其它杂项功能
第14章参考手册概述
第15章BIOS参考手册
第16章DOS参考手册
第17章鼠标参考手册
第18章EMS参考手册
第19章XMS参考手册
第20章DPMI参考手册
第21章任务切换参考手册
第22章DoubleSpace参考手册

        本书是介绍MS-DOS编程的技术书籍,是一本多年来的权威性畅销著作。内容非常全面,覆盖了DOS的各个方面。
           ·包括了MS-DOS  6.xx的全部内容,并覆盖了DOS的各个版本(1.0-6.22)。书中包括全部的DOS功能调用及数据结构,包括一些未公开的功能和保留的功能。
           ·介绍了PC编程时所需的BIOS、鼠标、EMS、XMS、DPMI、任务切换等的功能调用。
           .分专题介绍了DOS编程的各个方面:输入/输出设备;内存、文件、目录、设备管理;TSR及设备驱动程序;DOS出错处理等等。
           ·介绍了如何在汇编语言、BASIC C/C++及Pascal中使用DOS及BIOS的技术。
           ·丰富而实用的大量实例源代码。
        本书的读者对象为对PC编程有兴趣的专业技术人员、大专院校学生及计算机爱好者。

                                                 目      录
译者序……………………………………………………………………………………………………… 1
引言…………………………………………………………………………………………………   2

                                            第一部分DOS概述

第1章DOS简介………………………………………………………………………………………3
      1.1什么是DOS………………………………………………………………………………………3
      1.2DOS的历史………………………………………………………………………………………4
              1.2.1  1.0版…………………………………………………·………………………………6
              1.2.2  1.1版……………………………………………………………………………………6
              1.2.3  1.25版…………………………………………………………………………………6
              1.2.4  2.0版……………………………………………………………………………………6
              1.2.5  2.1版…………………………………………………………………………………7
              1.2.6   3.0版……………………………………………………………………………………7
              1.2.7   3.1版……………………………………………………………………………………7
              1.2.8   3.2版……………………………………………………………………………………7
              1.2.9   3.3版……………………………………………………………………………………8
              1.2.10  4.0版…………………………………………………………………………………8
              1.2.11  5.0版…………………………………………………………………………………8
              1.2.12  6.0版…………………………………………………………………………………8
              1.2.13未来展望……………………………………………………………………………9
        1.3DOS的结构……………………………………………………………………………………9
        1.4 DOS的程序员接口……………………………………………………………………………10
        1.5小结………………………………………………………………………………………………11

第2章     DOS系统结构………………………………………………………………………………12
        2.1“虚机”概念………………………………………………………………………………………12
        2.2物理机器…………………………………………………………………………………………13
        2.3处理器……………………………………………………………………………………………13
              2.3.1  8086内存寻址…………………………………………………………………………14
              2.3.2  8086寄存器集…………………………………………………………………………16
              2.3.3  80286及其更高档的处理器…………………………………………………………19
              2.3.4  CPU芯片的识别…………………………………………………………………… 20
              2.3.5  数学协处理器…………………………………………………………………………22
              2.3.6  数学协处理器的识别…………………………………………………………………22
      2.4内存………………………………………………………………………………………………24
      2.5 I/O通道……………………………………………………………………………………… 25
          2.5.1键盘……………………………………………………………………………………25
          2.5.2显示器屏幕……………………………………………………………………………26
          2.5.3打印机…………………………………………………………………………………28
          2.5.4串行口…………………………………………………………………………………28
          2.5.5鼠标………………………………-……………………………………………… 29
      2.6存储设备…………………………………………………………………………………………29
          2.6.1物理磁盘结构…………………………………………………………………………29
          2.6.2逻辑磁盘结构…………………………………………………………………………30
      2.7软件………………………………………………………………………………………………31
          2.7.1 BIOS……………………………………………………………………………………31
          2.7.2 DOS核心………………………………………………………………………………32
          2.7.3命令处理器………………………………………………………………………… 32
          2.7.4设备驱动程序…………………………………………………………………………33
      2.8小 结………………………………………………………………………………………………34

第3章动态的DOS…………………………………………………………………………………35
      3.1 DOS启动顺序…………………………………………………………………………………35
      3.2命令处理…………………………………………………………………………………………38
      3.3 DOS下的程序…………………………………………………………………………………39
          3.3.1 CoM程序………………………………………………………………………………39
          3.3.2 EXE程序………………………………………………………………………………41
      3.4一些高级语言的例子……………………………………………………………………………45
          3.4.1一个Turbo Pascal程序………………………………………………………………45
          3.4.2一个编译的C程序…………………………………………………………………46
          3.4.3比较不同版本的程序…………………………………………………………………46
      3.5中断………………………………………………………………………………………………48
          3.5.1内部中断………………………………………………………………………………49
          3.5.24非屏蔽中断……………………………………………………………………………49
          3.5.3硬件(可屏蔽)中断……………………………………………………………………50
          3.5.4软件中断………………………………………………………………………………50
      3.6内存分配与管理…………………………………………………………………………………52
      3.7小结………………………………………………………………………………………………55

第4章DOS和BIOS接口 ………………………………………………………………………56
      4.1从程序中访问DOS和BIOS…………………………………………………………………56
            4.1.1一个对Dos的简单调用………………………………………………………………57
            4.1.2传递字符串地址给DOS………………………………………………………………58
      4.2高级语言资源……………………………………………………………………………………59
            4.2.1C语言………………………………………………………………………………60
            4.2.2 Turbo Pascal…………………………………………………………………………68
            4.2.3 Quick BASIC…………………………………………………………………………72
      4.3小结………………………………………………………………………………………………76

                                             第二部分    输入输出设备

第5章输出设备………………………………………………………………………………………79
      5.1基本的字符设备…………………………………………………………………………………79
      5.2看看显示系统的工作方式…………………………………………………………………… 80
          5.2.1存储和显示视频数据…………………………………………………………………81
          5.2.2视频显示格式…………………………………………………………………………83
          5.2.3识别视频显示适配卡…………………………………………………………………87
      5.3视频功能…………………………………………………………………………………………99
          5.3.1利用DOS和BIOS视频功能编程……………………………………………………99
          5.3.2使用多个显示页………………………………………………………………………104
      5.4打印机功能……………………………………………………………………………………106
      5.5小结……………………………………………………………………………………………108

第6章输入设备……………………………………………………………………………………109
      6.1键盘……………………………………………………………………………………………109
        6.1.1了解键盘的工作方式…………………………………………………………………109
        6.1.2用BASIC读键盘……………………………………………………………………113
        6.1.3使用Int 16h来访问键盘……………………………………………………………114
        6.1.4使用Int 21h来访问键盘……………………………………………………………118
        6.1.5识别键盘支持的水平…………………………………………………………………124
    6.2鼠标……………………………………………………………………………………………125
        6.2.1了解鼠标的工作方式…………………………………………………………………125
        6.2.2初始化鼠标驱动程序…………………………………………………………………125
        6.2.3鼠标位于何处…………………………………………………………………………126
    6.3小 结……………………………………………………………………………………………130

第7章串行设备……………………………………………………………………………………131
    7.1串行接口………………………………………………………………………………………132
    7.2 串行转换:UART……………………-…………………………………………………… 134
        7.2.1发送保持寄存器(THR)………………………………………………………………135
        7.2.2接收数据寄存器(RDR)………………………………………………………………135
        7.2.3波特率除数(BRD)……………………………………………………………………135
        7.2.4中断允许寄存器(IER)………………………………………………………………136
            7.2.5中断识别寄存器(IIR)………………………………………………………………136
            7.2.6FIFO控制寄存器(FCR)……………………………………………………………137
            7.2.7线控制寄存器(LCR)…………………………………………………………………137
            7.2.8调制解调器控制寄存器(MCR)……………………………………………………138
            7.2.9线状态寄存器(LSR)…………………………………………………………………138
            7.2.10调制解调器状态寄存器(MSR)…………………………………………………139
      7.3将通信端口初始化……………………………………………………………………………140
      7.4调制解调器……………………………………………………………………………………142
      7.5编写一个终端程序……………………………………………………………………………143
            7.5.1双工考虑………………………………………………………………………………143
            7.5.2控制程序Term.c……………………………………………………………………144
            7.5.3支持函数………………………………………………………………………………144
      7.6使用term.c……………………………………………………………………………………151
      7.7直接访问UART………………………………………………………………………………151
            7.7.1汇编语言………………………………………………………………………………152
            7.7.2C语言…………………………………………………………………………………152
            7.7.3BASIC语言……………………………………………………………………………152
            7.7.4Pascal语言……………………………………………………………………………152
      7.8修改Term.c…………………………………………………………………………………152
      7.9回送检测…………………………………………………………………………………… 154
      7.10评价串行I/O设备……………………………………………………………………………155
      7.11小结……………………………………………………………………………………………155

                                          第三部分    磁盘、目录和文件

第8章磁盘…………………………………………………………………………………………159
    8.1磁盘的内部结构…………………………………………………………………………… 159
          8.1.1分区表………………………………………………………………………………160
          8.1.2引导记录………………………………………………………………………………163
          8.1.3文件分配表(FAT)……………………………………………………………………166
      8.2利用磁盘功能…………………………………………………………………………………172
          8.2.1驱动器信息……………………………………………………………………………172
          8.2.2格式化磁盘……………………………………………………………………………177
      8.3小结……………………………………………………………………………………………183

第9章目录和文件…………………………………………………………………………………184
      9.1磁盘目录……………………………………………………………………………………184
          9.1.1根目录……………………………………………………………………………… 185
          9.1.2目录项…………………………………………………………………………………186
          9.1.3子目录…………………………………………………………………………………190
          9.1.4卷标………………………………………………………………………………… 190
    9.2什么是文件……………………………………………………………………………………191
    9.3 DOS处理文件的方式…………………………………………………………………………191
          9.3.1标准文件控制块………………………………………………………………………192
          9.3.2扩展的文件控制………………………………………………………………………192
          9.3.3基本的FCB文件处理……………………………………………………………193
          9.3.4什么时候使用FCB功能…………………………-………………………………193
          9.3.5句柄功能………………………………………………………………………………194
          9.3.6基本的句柄文件处理技术……………………………………………………………194
          9.3.7何时使用句柄功能……………………………………………………………………195
          9.3.8练习:目录搜索………………………………………………………………………195
    9.4小结……………………………………………………………………………………………199

                                          第四部分内存管理及其它

第10章程序和内存管理…………………………………………………………………………203
    10.1内存的工作方式………………………………………………………………………………204
    10.2内存管理………………………………………………………………………………………207
        10.2.1压缩程序内存………………………………………………………………………209
        10.2.2获得更多的内存……………………………………………………………………210
    10.3扩充内存………………………………………………………………………………………211
        10.3.1确定扩充内存的有效性………………………………………………………… 211
        10.3.2使用扩充内存………………………………………………………………………213
    10.4扩展内存…………………………………………………………………………………… 217
        10.4.1确定扩展内存的有效性……………………………………………………………217
        10.4.2使用扩展内存………………………………………………………………………218
    10.5程序执行………………………………………………………………………………………245
        10.5.1 EXEC功能…………………………………………………………………………245
        10.5.2程序退出…………………………………………………………………………··-249
        10.5.3潜在的EXEC问题…………………………………………………………………249
        10.5.4往DOS中输入命令………………………………………………………………250
        10.5.5替换DOS的内部命令……………………………………………………………251
        10.5.6为什么有些EXE文件不能被转换成COM文件………………………………252
        10.5.7程序段前缀(PSP)…………………………………………………………………252
    10.6内存常驻软件的编程…………………………………………………………………………254
    10.7小结……………………………………………………………………………………………256

第11章中断处理程序……………………………………………………………………………257
    11.1什么是中断……………………………………………………………………………………257
    11.2中断的工作方式………………………………………………………………………………259
    11.3 Intel 8086系列的中断类型…………………………………………………………………259
         11.3.1内部硬件中断…………………………………………………………………… 260
           11.3.2外部硬件中断……………………………………………………………………260
             11.3.3软件中断……………………………………………………………………………261
        11.4中断向量……………………………………………………………………………………262
        11.5获取和设置中断向量…………………………………………………………………………262
        11.6 什么时候必须写一个中断处理程序?………………………………………………………263
        11.7编写Ctrl-C处理程序………………………………………………………………………264
        11.8编写一个关键出错处理程序…………………………………………………………………270
        11.9 TSR综述……………………………………………………………………………………294
        11.10TSR的中断基础……………………………………………………………………………296
              11.10.1键盘中断…………………………………………………………………………296
              11.10.2 InDOS标志、DOSOK中断和定时器中断………………………………………296
        11.11小结…………………………………………………………………………………………302

第12章设备驱动程序………………………………………………………………………… 304
        12.1驱动程序的类型………………………………………………………………………………305
              12.1.1字符设备驱动程序…………………………………………………………………305
              12.1.2块设备驱动程序……………………………………………………………………305
        12.2设备驱动程序的工作方式……………………………………………………………………306
        12.3设备驱动程序的结构…………………………………………………………………………308
              12.3.1设备头………………………………………………………………………………309
              12.3.2策略例程………………………………………………………………………… 312
              12.3.3中断例程……………………………………………………………………………314
        12.4完整的驱动程序………………………………………………………………………………328
              12.4.1汇编驱动程序………………………………………………………………………331
              12.4.2安装驱动程序………………………………………………………………………332
              12.4.3调试驱动程序………………………………………………………………………332
        12.5编一个实用的驱动程序………………………………………………………………………333
        12.6使用设备驱动程序……………………………………………………………………………334
        12.7小结……………………………………………………………………………………………334

第13章其它杂项功能……………………………………………………………………………336
        13.1DOS版本信息………………………………………………………………………………336
        13.2设备信息………………………………………………………………………………………339
        13.3日期和时间功能………………………………………………………………………………341
        13.4扩展的出错处理………………………………………………………………………………345
        13.5未公开的功能…………………………………………………………………………………349
        13.6小结…………………………………………………………………………………………350

                                              第五部分参考手册

第14章参考手册概述……………………………………………………………………………353
        14.1怎样介绍各个服务……………………………………………………………………………353
              14.1.1中断号…………………………………………………………………………… 353
              14.1.2功能号………………………………………………………………………………354
              14.1.3子功能号……………………………………………………………………………354
              14.1.4版本的有效性………………………………………………………………………355
              14.1.5用途……………………………………………………………………………… 355
              14.1.6描述…………………………………………………………………………………355
              14.1.7调用寄存器…………………………………………………………………………355
              14.1.8返回寄存器…………………………………………………………………………355
              14.1.9注释…………………………………………………………………………………355
        14.2详细的功能总结………………………………………………………………………………355

第15章BIOS参考手册……………………………………………………………………………371

第16章DOS参考手册……………………………………………………………………………470
        16.1怎样调用DOS服务…………………………………………………………………………470
        16.2可重入性………………………………………………………………………………………470
        16.3保留的功能……………………………………………………………………………………471
        16.4未公开的功能…………………………………………………………………………………472
        16.5 DOS服务……………………………………………………………………………………472

第17章鼠标参考手册……………………………………………………………………………649
        17.1鼠标的功能…………………………………………………………………………………649
        17.2鼠标驱动程序的EGA寄存器接口…………………………………………………………677

第18章EMS参考手册……………………………………………………………………………682

第19章XMS参考手册……………………………………………………………………………721

第20章DPMI参考手册…………………………………………………………………………731

第21章任务切换参考手册………………………………………………………………………780
        21.1数据结构………………………………………………………………………………………780
        21.2通报功能………………………………………………………………………………………784
        21.3服务功能………………………………………………………………………………………789

第22章DoubleSpace参考手册…………………………………………………………………794
        22.1CVF结构……………………………………………………………………………………794
        22.2API功能………………………………………………………………………………………795


    附录A ASCII字符集………………………………………………………………………………799
附录B 选中的内存位置……………………………………………………………………………806
      B.1中断表…………………………………………………………………………………………806
      B.2 BIOS数据区……………………………………………………………………………………808
附录C 一种标准的TSR标识技术………………………………………………………………811
      C.1用户参数块………………………………………………………………………………… 812
      C.2功能00h(检查安装)…………………………………………………………………………813
      C.3功能01h(返回用户参数指针)………………………………………………………………814
      C.4其它TesseRact功能…………………………………………………………………………815
附录D 保留的DOS功能…………………………………………………………………………816
      D.1未公开的DOS功能的种类……………………………………………………………………816
      D.2覆盖范围……………………………………………………………………………………817
      D.3使用功能52h—表中表……………………………………………………………………818
      D.4小结……………………………………………………………………………………………855
附录E 支持资源清单………………………………………………………………………………856
      E.1硬件……………………………………………………………………………………………856
      E.2 MS-DOS和BIOS编程………………………………………………………………………856
      E.3编程语言…………………………………………………………………………………… 857
      E.4一般编程技术……………………………………………………………………………… 858

[ Last edited by zzz19760225 on 2017-11-11 at 14:28 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 82 楼』:  

1

[ Last edited by zzz19760225 on 2017-11-13 at 18:56 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 83 楼』:  

1



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 84 楼』:  

DOS命令使用20种 [转帖]                                             :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=3653&fpage=1&highlight=%2Bko20010214
转贴] DOS命令使用20种 自飞叶网  

DOS命令总共大约有一百个(包括文本编辑、查杀病毒、配置文件、批处理等),我们这里详细介绍二十个常用的DOS命令。
先介绍一下通配符的概念。

通配符*和?

*表示一个字符串

?只代表一个字符

注意通配符只能通配文件名或扩展名,不能全都表示。例如我们要查找以字母y开头的所有文件,可以输入以下命令:dir y*.*;如果要查找所有扩展名为exe的文件,可以用dir .exe。?只代表一个字符,例如我要查找第二个字母为s的所有文件,可以输入:DIR ?s*.*。

1. dir

dir是英文单词directory(目录)的缩写,主要用来显示一个目录下的文件和子目录。

[功能] 显示指定磁盘、目录中的文件和子目录信息,包括文件及子目录所在磁盘的卷标、文件与子目录的名称、每个文件的大小、文件及目录建立的日期时间,以及文件子目录的个数、所占用总字节数以及磁盘上的剩余总空间等信息。

[格式] dir [C:][path][filename][.ext][/o][/s][/p][/w][/a]

[说明] dir是DOS命令中最常用的一个。斜杠表示后面的内容是参数。DOS参数最常用的是以下四个:

参 数
意 义

/p
显示信息满一屏时,暂停显示,按任意键后显示下一屏

/o
排序显示。o后面可以接不同意义的字母

/w
只显示文件名目录名,每行五个文件名。即宽行显示

/s
将目录及子目录的全部目录文件都显示
/a
显示隐藏文件


[举例] 显示C:\WINDOWS\Desktop文件夹里面的信息


2. md

md是英文make directory(创建目录)的缩写

[功能] 创建一个子目录

[格式] md [C:]path

[举例] 用md 建立一个叫做purple的目录

3. cd

cd是英文change directory(改变目录)的缩写

[功能] 改变或显示当前目录

[格式] cd [C:][path]

[说明] 路径可以使用绝对路径和相对路径两种。如果只有cd而没有参数,则只显示当前路径。注意:子目录中一定有两个“特殊目录”,即“.”“..”,其中一点表示当前目录,两点表示上一层目录。从简单实用的角度来看,我们只要学会逐层进入(cd 下一层某目录名),和逐层退出(cd..)就可以解决所有问题。当然也可以用绝对路径的办法。

[举例] 进入我们刚才建立的purple目录

4. rd

remove directory--删除目录

[功能] 删除空子目录

[格式] rd [d:]path

[说明] rd是专门删除空子目录的命令。注意两条:一是不能删除非空目录;二是不能删除当前目录。

[举例] 用rd删除purple这个目录

下面我们来运用md, cd, rd这三个命令。


5. copy

copy在英文中是复制的意思

[功能] 复制一个或一组文件到指定的磁盘或目录中

[格式] copy [C:][path][filename.ext] [C:][path]filename.ext

[说明] 复制文件命令基本用法是:“复制 源文件名 目标文件名”。如果只写目标路径而不写目标文件名,表示同名复制;否则称为换名复制。注意换名复制一般不要更改文件扩展名。

[举例] 将C:\purple目录的所有文件复制到软盘,可以打如下命令,请注意当前盘与当前路径不同:

C:\>copy purple A:\

如果目标盘上已有同名文件,会出现如下提示,“Overwrite xxxx(Yes/No/All)”此时回答Y则覆盖当前文件,N则保留,A则覆盖此后的所有文件而不再提问。

6. del

del是英文delete(删除)的缩写

[功能] 删除指定磁盘、目录中的一个或一组文件

[格式] del [C:][path]filename.ext

[说明] 这个命令应小心使用。一旦被删除,将不易恢复。同样可以采用通配符为删除一类文件。当利用*.*时,为了安全将给出警告,确定方进行删除工作。删除过程如没有信息提示,表示已正确删除。

注意这个命令不能删除具有只读、隐含、系统属性的文件;如果指定文件不存在,则出现“File not found”的提示;DOS对误删除的文件可以用UNDELETE外部命令恢复;它只能删文件,不能删目录。

7. ren

ren是英文rename(重新命名)的简写

[功能] 对指定磁盘、目录中的一个文件或一组文件更改名称

[格式] ren [C:][path]filename1[.ext] filename2[.ext]

[说明] 改名操作只限于某个文件某组文件的名称,它不会更改文件所在的目录。如果使用了通配符,则对一批文件进行更名。


8. type

[功能] 在屏幕上显示文本文件内容命令

[格式] type [C:][path]filename.ext

[说明] type命令用来在屏幕上快速、简便地显示文本文件的内容,扩展名为TXT的文件是文本文件。如果用这个命令显示扩展名为EXE或COM等其它文件,输出的结果往往是一些乱七八糟的符号并伴有无规则的响铃声,有时甚至会出现死机现象。

9. format

[功能] 磁盘格式化

[格式] [C:][path]format drive:[/S]

[说明] 厂家制造的各种磁盘可用来存储各种操作系统下的文件。不同操作系统的磁盘格式一般是不相同的,是不通用的。format命令就是使一个新的磁盘可以被DOS操作系统识别,即可存储DOS文件。

这个命令对磁盘的格式化过程,实际上是用DOS规定的信息存储格式对磁盘进行规划的过程。格式化磁盘时,要清除磁盘上已经存在的所有数据,在磁盘上写上引导记录,划分出文件分配表和根目录,同时,它还要找出磁盘上的所有坏扇区并作上不可使用的标记。命令参数我们这里只列出了一个:/S。当使用了这个参数后,磁盘格式化并装入操作系统文件,使之变成引导盘。相当于format后再进行下一命令:SYS。

10. discopy

diskcopy,翻译成中文就是磁盘复制

[功能] 复制出一个和原来磁盘内容一模一样的磁盘

[格式] diskcopy 源驱动器名 目的驱动器名

[说明] 它的主要用途就是用来备份。比如我们的电脑在刚买来时,会随机附带一些设备驱动程序磁盘,这些驱动程序在以后都有可能用到,为防止这些磁盘的损坏,一定要将它们都备份一套,这时,使用diskcopy命令是比较快捷和方便的。

11. deltree

[功能] 删除目录树

[格式] [C:][path]DELTREE [C1:][path1] [[C2:][path2] […]]

[说明] 这个命令将整个指定目录树全部消灭,而不管它是否是只读、隐藏与否。使用应特别小心。它是一个危险命令。

12. mem

mem是memory的缩写

[功能] 该命令用来查看你的计算机内存有多少,以及内存的使用情况。

[格式] 直接键入mem命令

13. chkdsk

chkdsk是check disk的缩写。

[功能] 用来检查你的磁盘的使用情况。

[格式] chkdsk 磁盘名

[说明] 例如要检查A盘使用情况,就输入chkdsk A: ,检查c盘使用情况,就输入chkdsk C: ,如果直接输入chkdsk,就检查当前磁盘的使用情况。

14. sys

[功能] 传递系统文件命令。将DOS的两个隐含的系统IO.SYS和MSDOS.SYS传送到目标磁盘的特定位置上,并将COMMAND.COM文件复制过去。完成后,目标盘成为DOS的启动盘。

[格式] [C:][path]SYS [C1:][path] d2:

[说明] 由于这几个文件需要复制到特定位置上,所以用COPY命令完成的复制未必能够启动机器。能过SYS命令,DOS可以将目标盘已占据特定位置的文件移动,并将系统文件复制到相应位置上。参数C1ath用来指明系统文件所在目录。如不指明,则缺省为当前盘的当前目录。所以这个命令一般要在源盘的根目录进行。


15. path   --KO的话:谢谢tanglu_sd指出。原文中为pass.是原文写错了!

[功能] 设定DOS寻找.COM、.EXE、.BAT文件的所在目录

[格式] path=[[drive:]path[;…]]或path

16. edit

[功能] edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件。

17. cls

[功能] 清除显示器屏幕上的内容,使DOS提示符到屏幕左上角。

[格式] cls

18. time

[功能] 显示和设置DOS的系统时间

[格式] time [hh[:mm[:ss[.cc]]]

19. date

[功能] 显示和设置DOS的系统日期

[格式] date [MM-DD-YY]

20. ver

[功能] 显示正在运行的DOS系统版本号

[格式] ver


命令: 功能:
attrib…………设置文件属性
ctty …………改变控制设备
defrag…………磁盘碎片整理
doskey…………调用和建立DOS宏命令
debug …………程序调试命令
emm386…………扩展内存管理
fc  …………文件比较
fdisk …………硬盘分区
lh/loadhigh …将程序装入高端内存
move …………移动文件,改目录名
more …………分屏显示
prompt…………设置提示符
set  …………设置环境变量
smartdrv………设置磁盘加速器
setver…………设置版本
subst …………路径替换
vol  …………显示指定的磁盘卷标号
xcopy …………拷贝目录和文件

================
KO的话:
在别的地方居然也看到了DOS文章,感动中。。。转贴到这里。呵呵。。。



MS-DOS 6.22部分命令详解                                      : ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=3121&fpage=1&highlight=%2Bko20010214

MS-DOS 6.22部分命令详解

发信人: liuxf (飞天御剑流), 信区: DOS
标  题: MS-DOS 6.22部分命令详解
发信站: BBS 水木清华站 (Sun Apr 22 21:53:53 2001)

                    MS-DOS 6.22部分命令详解
显示或改变文件的属性。
ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[drive:][path]filename] [/S]
  +   设置一种属性.
  -   取消一种属性.
  R   只读属性.
  A   文档属性.
  S   系统文件.
  H   隐含属性.
  /S  对指定目录下所有的文件操作.

设置或清除 CTRL+C 校验.
BREAK [ON | OFF]
键入不带参数的BREAK显示BREAK的状态.

在批处理文件中调用批处理文件.
CALL [drive:][path]filename [batch-parameters]
batch-parameters   指定批处理文件必需的命令行参数.

显示或改变当前目录.
CHDIR [drive:][path]
CHDIR[..]
CD [drive:][path]
CD[..]
..   表示当前目录改变成父目录.
键入CD [驱动器:], 可显示指定驱动器的当前目录.
键入不带参数的CD可显示当前驱动器和当前目录.

显示或设置代码页.
CHCP [nnn]
  nnn   确定一个代码页编号
键入不带参数的 CHCP 显示现在的代码页编号.

检查磁盘并报告检查情况.
CHKDSK [drive:][[path]filename] [/F] [/V]
  [drive:][path]  指定要检查的磁盘和路径.
  filename        指定要检查的文件.
  /F              修复磁盘的错误.
  /V              显示磁盘所有文件的全路径.
键入不带参数 CHKDSK 将检查当前磁盘.
除了使用 CHKDSK, 还可以使用 SCANDISK. SCANDISK 能够检查和修复更广泛的错误.
在提示行敲入 HELP SCANDISK 将得到更多信息

清屏.
CLS

启动一个新的命令解释器.
COMMAND [[drive:]path] [device] [/E:nnnnn] [/P [/MSG]]
        [/Y [/C command | /K command]]
  [drive:]path    指定包含COMMAND.COM文件的目录.
  device          指定命令的输入和输出设备.
  /E:nnnnn        设置环境变量空间的初值为nnnnn个字节.
  /P              指定新的命令解释程序为长驻型(不能退出).
  /MSG            将所有错误信息存储在内存中(需/P选项).
  /Y              执行批处理文件.
  /C command      执行command指定的命令并返回.
  /K command      执行command指定的命令并继续运行.
/P 和 /MSG 开关只能用于在CONFIG.SYS文件中SHELL命令启动COMMAND命令时使用.

文件拷贝.
COPY [/A | /B] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination
  [/A | /B]] [/V] [/Y | /-Y]
  source       指定被拷贝的文件.
  /A           表示ASCII正文文件.
  /B           表示二进制文件.
  destination  指定新文件的目录和文件名.
  /V           校验新文件是否正确.
  /Y           在覆盖同名的目标文件之前,不进行确认.
  /-Y          在覆盖同名的目标文件之前,进行确认.
开关项/Y可由环境变量COPYCMD预设.
要合并多个文件时, 可指定单个目标文件,但指定多个
源文件(使用通配符或file1+file2+file3格式).
校验文件可读性:copy *.* nul
删除copy nul a.txt
显示copy *.bat con

改变终端设备.
CTTY device

显示或设置日期.
DATE [mm-dd-yy]
月-日-年    设置指定的日期.
键入不带参数的DATE可显示当前日期并提示您输入新的日期.

显示文件和子目录清单.
DIR [drive:][path][filename] [/P] [/W] [/A[[:]attribs]] [/O[[:]sortord]]
    [/S] [/B] [/L] [/C[H]]
[drive:][path][filename]   指定列出的驱动器, 目录或文件.
  /P      显示一屏信息后暂停.
  /W      使用宽幅列表格式.
  /A      显示指定属性的文件.
  attribs   D  目录       R  只读文件          H  隐藏文件
            S  系统文件   A  准备存档的文件    -  前缀,表示"非"
  /O      排序后列出文件.
  sortord   N  按文件名(字母顺序)    S  按大小(小文件在前)
            E  按扩展名(字母顺序)    D  按日期和时间(先建立的文件在前)
            G  先列出子目录          -  前缀,表示反序
            C  按压缩比例(比例小的文件在前)
  /S      显示指定目录下的所有文件和子目录.
  /B      使用简化格式(无标题信息和统计数字).
  /L      使用小写字母.
  /C[H]   显示文件的压缩比例./CH使用主机的分配单位尺寸.
开关可以用 DIRCMD 环境变量预置.
用连字符(-)可更换预置的开关,例如/-W.

拷贝一张盘到另一张.
DISKCOPY [drive1: [drive2:]] [/1] [/V] [/M]
  /1   仅拷贝磁盘的第一面.
  /V   校验拷贝信息是否正确.
  /M   强制DISKCOPY只使用内存保存中间信息.
两张磁盘必须为同一类型.
可以指定源盘和目标盘在同一驱动器.

删除文件.
DEL [drive:][path]filename [/P]
ERASE [drive:][path]filename [/P]
  [drive:][path]filename  指定被删除的文件,用通配符指定多个文件.
  /P                      删除每个文件之前显示确认信息.

退出COMMAND.COM命令解释程序.
EXIT

对一系列文件中的每个文件执行指定的命令.
FOR %variable IN (set) DO command [command-parameters]
  %variable  指定可替换型参数.
  (set)      指定包含一个或多个文件的文件集,可使用通配符.
  command    指定为每个文件执行的命令.
  command-parameters    指定命令的参数或开关.
在批处理文件中使用FOR命令时,用%%varible替换.

格式化MS-DOS格式磁盘。
FORMAT drive: [/V[:label]] [/Q] [/U] [/F:size] [/B | /S] [/C]
FORMAT drive: [/V[:label]] [/Q] [/U] [/T:tracks /N:sectors] [/B | /S] [/C]
FORMAT drive: [/V[:label]] [/Q] [/U] [/1] [/4] [/B | /S] [/C]
FORMAT drive: [/Q] [/U] [/1] [/4] [/8] [/B | /S] [/C]
  /V[:label]  指定卷标名;
  /Q          执行快速格式化;
  /U          执行无条件格式化(不能用UNFORMAT恢复);
  /F:size     指定软盘格式化的容量(如 160,180
              , 320, 360, 720, 1.2, 1.44, 2.88).
  /B          分配空间给系统文件.
  /S          拷贝系统文件到磁盘.
  /T:tracks   指定磁盘每面的磁道.
  /N:sectors  指定每个磁道的扇区数.
  /1          格式化单面软盘.

Directs MS-DOS to a labelled line in a batch program.
GOTO label
     label   指定在批处理文件中用作标号的正文字符串.
标号独占一行, 以冒号打头.

批文件的条件语句.
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
  NOT               指示MS-DOS在条件不成立时才执行命令.
  ERRORLEVEL number 如果上次程序返回的退出码大于或等于指定的数值,则条件成立.
  command           指定条件满足时应执行的命令.
  string1==string2  如果正文字符串匹配,则条件成立.
  EXIST filename    如果指定的文件存在,则条件成立.

将程序装载在第一个 64K 内存以上, 并运行程序.
LOADFIX [drive:][path]filename
运行程序碰到 "Packed file corrupt"时, 用 LOADFIX 装载程序.
将程序装入上端内存区.
LOADHIGH [drive:][path]filename [parameters]
LOADHIGH [/L:region1[,minsize1][;region2[,minsize2]...] [/S]]
         [drive:][path]filename [parameters]
/L:region1[,minsize1][;region2[,minsize2]]...
            指定装裁程序的内存区域,   Region1指定第一个内存区号.
            minsize1指定region1的最小尺寸(若有).
            Region2和minsize2指定第二个内存块号和最小尺寸(若有).
            内存区域的个数不限.
/S          装入程序时,将UMB收缩到最小尺寸.
                  /S通常只用于MemMake.
[drive:][path]filename      指定程序的名字和位置.
parameters  指定程序必需的命令行参数

显示内存使用情况.
MEM [/CLASSIFY | /DEBUG | /FREE | /MODULE modulename] [/PAGE]
/CLASSIFY 或 /C  按内存使用情况分类程序,列出已使用的空间和最大可用空间.
  /DEBUG 或 /D     显示内存各个模块和驱动设备的情况及其他信息.
  /FREE 或 /F      显示上位内存和常规内存的空闲空间
  /MODULE 或 /M    内存模块使用详细列表
  /PAGE 或 /P      滚屏暂停

用MOVE改变目录的名字,或把文件移到另一个目录.
move \txt \txt1

暂停执行批处理文件并显示"按任意键继续..."
PAUSE

后台打印命令
PRINT [/D:device] [/B:size] [/U:ticks1] [/M:ticks2] [/S:ticks3]
      [/Q:qsize] [/T] [[drive:][path]filename[ ...]] [/C] [/P]
  /D:device   指定打印设备.
  /B:size     设定内部缓冲区大小(字节).
  /U:ticks1   设定打印等待最大时间片
  /M:ticks2   设定打印一个字符最大时间片
  /S:ticks3   保留等待.
  /Q:qsize    设定打印序列中文件最大数.
  /T          取消打印序列的打印.
  /C          取消打印当前文件和后序文件.
  /P          在打印序列中增加文件.
键入未带参数 PRINT 显示打印序列的内容.

改变MS-DOS提示符.
PROMPT [text]
  text    指定新的命令提示符.
提示符由通常的字符和下列特殊代码构成:
  $Q   = (等号)
  $$   $ (美元符号)
  $T   当前时间
  $D    当前日期
  $P   当前驱动器和路径
  $V    MS-DOS版本号
  $N   当前驱动器
  $G   > (大于号)
  $L   < (小于号)
  $B   | (管道)
  $H   退格(擦除前一个字符)
  $E   Escape码(ASCII码27)
  $-   回车换行
直接键入 PROMPT 可将提示符改回默认设置.

删除目录.
RMDIR [drive:]path
RD [drive:]path

在批处理文件或CONFIG.SYS中记载注释.
REM [comment]

改变文件名.
RENAME [drive:][path]文件1 文件2
REN [drive:][path] 文件1 文件2
注意,不能为目标文件指定新的驱动器或路径.

恢复用 BACKYP 命令备份的文件.
RESTORE drive1: drive2:[path[filename]] [/S] [/P] [/B:date] [/A:date] [/E:time]
  [/L:time] [/M] [/N] [/D]
  drive1:  指定包含备份文件的驱动器.
  drive2:[path[filename]]     指定要恢复的文件.
  /S       恢复包括子目录在内的所有文件.
  /P       在恢复上次备份后已修改的只读或文件(正常属性)之前提示.
  /B       恢复在指定日期之前修改过的文件.
  /A       恢复在指定日期之后修改过的文件.
  /E       恢复在指定时间之前修改过的文件.
  /L       恢复在指定时间之后修改过的文件.
  /M       恢复自上次备份修改过的文件.
  /N       恢复目标盘中没有的文件.

安装文件共享和在磁盘及网络设备上锁定文件的功能。
SHARE [/F:space] [/L:locks]
  /F:space   设置保存文件共享信息的存储区空间(以字节计)。
  /L:locks   设置能同时锁定的文件数。

在批处理文件中改变可替换型参数的位置.
SHIFT

将输入排序然后将结果输出至屏幕,文件,或别的设备.
SORT [/R] [/+n]  [drive2:][path2]filename2]
[command |] SORT [/R] [/+n] [> [drive2:][path2]filename2]
  /R                         反向排序; 就是按从 Z 到A,从 9 到 0 的顺序排序.
  /+n                        按第 n 列字母顺序排列文件顺序.
  [drive1:][path1]filename1  指定被排序的文件.
  [drive2:][path2]filename2  指定一个文件储存排序的结果.
  command                    指定一个命令,排序其输出结果.

将一个路径替换成虚拟驱动器.
SUBST [drive1: [drive2:]path]
SUBST drive1: /D
  drive1:        指定一个虚拟的驱动器盘符.
  [drive2:]path  指定所替换成驱动器的完整路径
  /D             删除虚拟驱动器
键入不带参数 SUBST 显示当前虚拟驱动器列表.

拷贝 MS-DOS 系统.
SYS [drive1:][path] drive2:
  [drive1:][path] 源系统路径
  drive2:         待拷贝的目标盘

显示或设置时间.
TIME [time]
键入不带参数的TIME可显示当前时间,
并提示您输入新的时间, 按ENTER保留原来的时间.

显示文本文件内容.
TYPE [con>][nul>][drive:][path]filename[>drive2:][path][filename]
  con     建立名为filename的文件
  nul     建立长度为零的文件
  drive2  拷贝文件

通知MS-DOS在文件写入磁盘时是否校验其正确性
VERIFY [ON | OFF]
键入不带参数的VERIFY可显示VERIFY的当前设置.

拷贝文件(隐含及系统文件除外)和目录树。
XCOPY source [destination] [/A | /M] [/D:date] [/P] [/S] [/E] [/V] [/W]
  source       指定被拷贝的文件.
  destination  指定新文件的名称和位置.
  /A           拷贝具有文档属性的文件且不改变属性.
  /M           拷贝具有文档属性的文件,并关闭其属性.
  /D:date      拷贝修改的和给定日期之后的文件.
  /P           在拷贝每个文件之前提示.
  /S           拷贝目录及子目录(不含空目录).
  /E           拷贝所有子目录(包括空目录).
  /V           校验每个新文件.
  /W           拷贝之前提示你按一键.
  /Y           在覆盖同名的目标文件之前,进行确认.
  /-Y          在覆盖同名的目标文件之前,不进行确认.
开关项/Y可由环境变量COPYCMD预设.
在命令行中设定 /Y 可以更改预设项

--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.169.163]

[ Last edited by zzz19760225 on 2017-10-31 at 16:19 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 85 楼』:  

Debug命令详解                                                     :ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=3123&fpage=1&highlight=%2Bko20010214
Debug命令详解

发信人: liuxf (飞天御剑流), 信区: DOS
标  题: Debug命令详解
发信站: BBS 水木清华站 (Mon Apr 23 16:16:59 2001)

Debug命令详解

     精华区没有,就贴上来了。

命令行参数形式:
    格式:DEBUG [[驱动器号:][路径]文件名 [调试参数]]
    用途:debug将所指定文件装入内存,显示提示符“-”等待进一
步命令。若装入文件为.exe文件,按照重定位原则装入为可执行状态
。.com文件类似。若为其它类型文件则直接进行内存映射,由偏移量
100H原封不动读入内存。
    debug将在缓冲区为被调试程序建立适当的PSP(程序段前缀,
Program Segment Prefix)。在PSP中的偏移量80H为命令行的末尾。
而且在偏移量5CH和6CH由包含参数后面的可选参数构成缺省的FCB(
文件控制块,File Control Block)。
    进入时各寄存器初使情况:
    寄存器  .com程序             .exe程序
     AX     指定驱动器错误码     指定驱动器错误码
     BX     程序空间的高地址     程序空间的高地址
     CX     程序空间的低地址     程序空间的低地址
     DX           0                    0
     SI           0                    0
     DI           0                    0
     BP           0                    0
     SP     0FFFFH或可利用的     不定
            内存空间上限减2
     IP     100H                 目标程序的的代码
                                 入口偏移量
     CS           PSP            目标程序代码段址
     DS           PSP                  PSP
     CS           PSP                  PSP
     SS           PSP            目标程序堆栈段底

命令:
A:  编写汇编代码(Assemble)
    格式:A[地址]
    用途:程序允许在指定位置(若无缺省为IP指针位置)进行汇编
          程序书写。
    细节:
        *所有数值皆为十六进制整数,数值后不带“H”
        *不支持文件管理用的目录表、宏标记、条件汇编
        *跳转指令后要直接书写十六进制地址不支持标号
        *数据类型若非默认类型,要以PTR加以指定
        *字符串操作要指定类型为B或W(如lodsb和lodsw等)及长度
        *用DB和DW接受数据定义,直按进行汇编
        *对内存地址加[]以与立即数区分

C: 内存内容比较(Compare)
   格式:C 地址范围  地址
         地址范围:做比较的第一个内存域始未地址或始地址和长度
         地址:    做比较的第二个内存域的始地址
   用途:*对内存中两个域的内容加以比较,以字节为单位。对发现有
         差别的内容及其地址用如下形式显示出:
             地址1  始位置  未位置  地址2
         *若地址范围或地址不含段地址,默认为DS的值。

D: 显示内存内容(Dump)
   格式:D[地址范围]
         地址范围:给定显示区的始未范围或始地址和长度。
   用途:*内存内容显示指令,以十六进制和ASCII码形式显示指定范
         围内的内存内容。
         *若不指定范围,第一次按目标程序的CS:IP的位址开始显示。
         以后使用上次显示的未地址的下一地址为开始进行显示。
         *若不指定长度,则显示128byte的内容。计8行。

E: 数据的输入
   格式:E 地址 数值列表
         地址:    数据输入的内存始地址
         数值列表:从始地址输入的连续数据
   用途:*向内存区域输入数据。数据以十六进制形式,或以ASCII码形式
         均可。覆盖掉原有数据。
         *十六进制时要用空格、逗号或制表符加以分隔。字符串则要用单
         引号或双引号括起且区分大小写。
         *若不指写段址,则默认为DS中值。每写完一数据地址自动增加。
         *如省略数值列表,对应每一字节请求输入。点号前为该字节原
         始值,点号后请求输入。这时若按空格,跳过这一字节;按回车,
         结束输入;按减号或连字符,显示前一字节内容。
     *出错时内存内容有可能已被改变。提示后终止。
         *字符串只能以数值列表的形式输入,不能按地址提式输入。

F: 内存填充(Fill)
   格式:F 地址范围 数值列表
    地址范围:数据输入的内存始本地址或首地址和长度
         数值列表:从始地址输入的连续数据
  用途:*将列表中数据写入内存。输入数据以十六进制或ASCII码形式。
     覆盖原有信息;若出错,显示出错信息,原有信息保留。
     *若未指写段址,默认为DS寄存器值。
     *列表中可有十六进制或字符串两种形式,各内容用空格、逗号、
     制表符隔开。字符串必须以单引号或双引号括起,区分大小写。
     *若要填充区域大于数据数目,列表可重复使用;相反,若列表
     比要填充区域大时,则自动截断后面的数据。

G: 程序执行(Go)
   格式:G[=地址][断点0][……断点]
         地址:          Debug开始执行的地址。
         断点0……断点9:指定的0—10个临时中断点。
   用途:*将CPU控制权由Debug转移给被调试中的程序。不设断点时,则程
         序的执行或是中途失败或是正常结束。结束时,提示有“Program
         termminated nomally”,即程序结束正常,控制权再返回到
         Debug。
         *此时因数据有可能重写,若需再次执行,因重新装入。
         *地址中,如未指定段址,则使用目标程序的CS寄存器中的值。当
         地址省略时,则Debug使用目标程序的CS:IP寄存器的值开始执行。
         且为与断点区分,地址参数前必须加等号,否则将其认为是第零
         个断点。
         *断点参数可指定10个临时断点。当程序执行到指定的断点地址时
         则发生中止。与断点表内的次序无关,断点可按任意次序输入。
         *中止时,将会显示寄存器的内容、标志位状态及CS:IP指出的指
         令(也就是下一条将要执行的指令),然后是提示符“-”。
         *若没有装入可执行程序或程序内容未知,有可能进入死状态。
         *若目标程序的栈不起作用或太小,则可能引起系统“破碎”。

H: 执行十六进制算术运算(Hexadecimal)
   格式:H 值1  值2
         值1、2为0—FFFFH范围内的任意十六进制数。
   用途:*用来求两个十六进制数的和、差,对结果显示为值1+值2及值1-
         值2。如果值2 > 值1则显示其补码。
         *虽然很少用,但事实还是很有用的,熟练掌握。

I: 端口的输入(Input)
   格式:I 端口地址
         端口地址:0—FFFF范围内的I/O端口地址。
   用途:用来读取指定I/O端口地址,并以2位十六进制数加以显示。
   警告:I指令将直接访问计算机硬件,不是所以错误检查都能进行,所以
         使用是必须小心。对某个外设控制器分配端口的输入操作,可能
         干涉系统固有的操作。对没有分配指定I/O端口的设备,或该端口
         为写入专用端口等情况,I命令都不能保证可显示。

L: 装入命令(Load)
   格式:L 地址
         或
         L 地址 驱动器 开始扇区 扇区数
         地址:    存放从盘中读出数据的内存地址。
         驱动器:  A=0, B=1, C=2, 以此类推。
         开始扇区:以十六进制数表示要最先装入的逻辑扇区号。
         扇区数:  以十六进制数表示要装入连续扇区个数。
   用途:*若输入了一个不完全的L命令时,则对下述磁盘文件进行装入:
            1在Debug命令行中指定过的文件;
            2由命令末尾参数N指定的文件。
         *在地址中若未指定段址,则使用CS中的值。若为可执行文件按重
         定位原则装入为可执行状态。
         *装入后文件长度,或.exe文件程序的实际长度放入目标程序的BX
         和CX两个寄存器中。高十六位放在BX中。
         *若在命令行中给出所有参数,则不必用MS-DOS的文件系统访问磁
         盘。

M: 数据传送(Move)
   格式:M 地址范围 地址
         地址范围:被复制域的始末地址,或始地址和长度。
         地址:    数据复制目的域的起始地址。
   用途:*对内存中数据进行复制。目的域被覆盖。
         *若地址范围中无段址,则使用DS内容;若地址中无段址,使用地
         址范围中的值。


N: 文件名或命令末尾的参数(Name)
   格式:N 参数 [参数……]
         参数:插入到仿真的PSP中去一个以上的文件名或者是开关项。
   用途:*对磁盘读写操作L、W指定目标文件。


O: 端口的输出(Output)
   格式:O 端口  字节
         端口:I/O端口地址。
         字节:写入I/O端口的0—FFFF范围的值。
   用途:向I/O端口地址写入一字节。
   警告:错误的操作将导致系统崩溃。

P: 循环或子程序处理(Procedure)
   格式:P[=地址] [命令数]
         地址:  执行的起始地址。
         指令数:执行的指令条数。
   用途:*循环或子程序处理。将循环、串指令、软件中断或子程序调用
         视为单语句。执行中了,显示目标程序寄存器内容、标志位状态
         和下一条要执行的指令。
         *若地址参数中无段址,则使用CS中的值。完全忽略地址时,则从
         程序中的CS:IP指定位置开始执行。

Q: 结束Debug操作(Quit)
   格式:Q
   用途:程序结束返回。对未保存的结果丢失。

R: 寄存器显示与更改(Register)
   格式:R [寄存器]
         寄存器:AX BX CX DX SP BP SI DI
                 DS ES CS IP PC
                 F
   用途:*若R不带参数,则显示所有寄存器的内容和状态标志、下一指令。
         *若指定新值,在显示内容后,给出冒句提示输入新值。回车结束。
         *对状态字F,在连字符“-”后以空格间隔输入新值,次序不计。
         *若直接回车,则跳过修改,寄存器内容不变。

S: 内存检索(Search)
   格式:S 地址范围  列表
         地址范围:想来你该明白是什么样了吧:)
         列表:    欲检索的一个以上的字节值或字符串。
   用途:*在指定的内存范围内检索列表的值。对每一个匹配的地址进行
         显示。
         *若起地址中无段址,默认为DS的值。
         *检索范围不得大于FFFFH
         *列表必须以分隔符(空格,逗号,制表符等)分隔;字符串要加
         单引号或双引号括起,区分大小写。

T: 程序执行跟踪(Trace)
   格式:T[=地址][指令数]
         地址:  执行的第一条指令的地址。
         指定数:执行的机器指令的条数。
   用途:*执行单条指令,显示寄存器及下一条指令。
         *在地址参数中若无段址,则默认为CS寄存器的值。
         *若全部省略,则由CS:IP寄存器指出的地址开始执行。
         *以后则顺序执行。
         *对ROM内的跟踪应使用T命令。
   警告:对Intel 8259 中断屏幕的内容(IBM PC及兼容机端口20H和21H)
         的更改,或者系统功能调用(INT 21H),不能使用T指令,对上述
         情况要使用P指令。

U: 反汇编(Unassemble)
   格式:U [地址范围]
   用途:*将机器指定解码为汇编语言的助记符。
         *地址范围中无段址时,默认使用CS值。
         *当始地址与实际边界不一致时,结果将不可信。
         *若不含末地址或长度,则自给定始地址起反汇编32个字节。
         *以后由前次U最后一指令的下一指令做32字节的反汇编。
         *若从没用过U,则于CS:IP开始进行反汇编。
         *只能对8086指令解码,对其它以DB来显示。

W: 写入文件或扇区(Write)
   格式:W [地址]
       或
         W 地址 驱动器 开始扇区 扇区数
         地址:  待写入盘的数据在内存中的起始位置。
         驱动器:写入数据的盘的驱动器号(A=0,B=1,C=2,以下类推)。
         始扇区:写入数据的最前的逻辑扇区号(0—FFFFH)。
         扇区数:写入数据的连续扇区个数(0—FFFFH)。
   用途:*将内存中的文件或一个个扇区传送到磁盘上。
         *W若不带参数,或只有地址参数,则按BX:CX寄存器指出的字节,从内
         存向磁盘写入数据。此时的文件名是此命令前最后一个使用过的文件名
         ,或者是N命令中指定的文件,如果没有使用过N命令,则使用Debug命
        令行中指定的文件。
         *Debug的W命令,不能向扩展名为.EXE或.HEX的文件中写入数据。
         *这可用改扩展名的方法得到应用,让其能对.exe文件写入。
         *若无地址项,则认为是目标程序的CS:0100H。
         *该命令可不通过MS-DOS的文件系统直接访问磁盘的逻辑扇区。但必须
         以十六进制形式给在命令行中给定各参数。
         *W命令不能对用于网络上的驱动器进行逻辑扇区写入处理。
   警告:若参数有误,则可能破坏盘文件结构。
         请务必先搞清再作试践,特别是对硬盘的操作。

--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.169.163]

---------------------------------------------------------------------------------------------------------


转DEBUG常用命令与实例                                        :wenqs27
http://www.cn-dos.net/forum/viewthread.php?tid=48211&fpage=0&highlight=&page=1     帖子里信息量很大哦!

Debug常用命令集

名称 解释 格式
a (Assemble) 逐行汇编  a [address]
c (Compare) 比较两内存块  c range address
d (Dump) 内存16进制显示  d [address]或 d [range]
e (Enter) 修改内存字节  e address
f (fin) 预置一段内存  f range list
g (Go) 执行程序  g [=address][address...]
h (Hexavithmetic) 制算术运算  h value value
i (Input) 从指定端口地址输入  i pataddress
l (Load) 读盘  l [address [driver seetor>
m (Move) 内存块传送  m range address
n (Name) 置文件名  n filespec [filespec...]
o (Output) 从指定端口地址输出  o portadress byte
q (Quit) 结束  q
r (Register) 显示和修改寄存器  r [register name]
s (Search) 查找字节串  s range list
t (Trace) 跟踪执行  t [=address] [value]
u (Unassemble) 反汇编  u [address] 或 range
w (Write) 存盘  w [address[driver sector secnum]]

debug小汇编a命令

debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。
编一些小程序比汇编要来得方便,快洁。
在Debug中,中断是非常有用的,首先,让我们先了解一下中断。
所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场),再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。这是个很通俗的讲法。
计算机在运行时,也会出现这种情况,我们叫之中断。
下面是他的一些常用中断向量的入口值详解:(记住哦,很用的...呵呵)

[ Last edited by zzz19760225 on 2017-11-13 at 18:56 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 86 楼』:  

1



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 87 楼』:  

贴一下TR的帮助文件,这些东西都快在网上失踪了           :ko20010214       lianjiang2004  
http://www.cn-dos.net/forum/viewthread.php?tid=43890&fpage=1&highlight=%2Bko20010214

欢迎使用解释型跟踪调试软件----TR

  如果你用过DEBUG,SYMDEB,TD(TURBO DEBUG),CV(CODE VIEW )或 SOFT-ICE, 你应该试试TR。
  TR(将)具有以上调试软件的一切功能,支持它们的所有命令。而且,最重要的是,TR提出了九大新的思想:
  一、解释跟踪
  TR对程序是解释执行的。TR就象是一个CPU, 能读懂每一句程序代码并正确解释执行,不需要使用INT1,INT3,不需要使用386调试寄存器DR0-DR7,不需要进入保护模式(是不会)。理论上,TR永远不会被应用程序发现,永远不会有跟踪不下去的程序。因为所有的程序都要交给CPU去解释执行,只要CPU认识的指令,TR也要认识,TR会想象CPU 处在这种状态会怎么作,那我也那么去作。如果你发现TR作错了,那是TR还尚待完善。
  传统的跟踪方式有太多的弊病:
  (1)那些使用单步中断INT1的调试软件,因为它们独占INT1和TF,所以那些需要INT1的应用程序便无法跟踪,应用程序也可以通过检测TF来发现自己是否正在被跟踪。
  (2)那些使用断点中断INT3的调试软件, 需要在应用程序中插入代码INT3(0CCH),如果应用程序破坏INT3的中断向量,或检测自身代码便无法跟踪。
  (3)SOFT-ICE不使用以上两种方法,而是用386硬件中断, 效果要好多了。跟踪那些对386一无所知的程序不成问题。但许多要求EMM386、DPMI、DOS4GW 等的软件的运行受到了极大的限制,甚至根本不能在SOFT-ICE 下执行。 更重要的是,SOFT-ICE很容易被发现。


  总之,现有跟踪调试软件都是利用INTEL的CPU手册上提供的规范的调试方法进行工作,它们只适合调试那些规规矩矩的、愿意被跟踪调试的程序。如果应用程序不予合作,便不能跟踪。TR则不同,TR要跟踪所有CPU能处理的程序,甚至TR 能嵌套跟踪另一个TR。
  另一方面,传统的跟踪方法是设置好一些断点(不管是何种断点),然后GO到应用程序中去执行,并期望程序运行到适当地方,CPU能产生一个中断, 返回主程序。至于能否返回,或返回前程序干了些什么,只有天知道。用解释的方法跟踪,控制权永远牢牢掌握在TR的手中,监控着所有程序流程,并由此才能设置一些高度复杂的断点。
  解释跟踪是TR与其它调试软件的最本质的区别。也是TR高性能的根本所在。
  二、批处理
  尽管批处理的概念很早就有,在各种软件中应用极为广泛,却无人把它作到调试软件中。在TR中,可以把要执行的命令序列放到一个文本文件中,用DO命令执行。当然还有自动批处理AUTORUN.TR。
  三、G OFFSET
  对G 100命令,大家都知道是执行到100停下,其它的调试软件认为是到当前段的100停下,TR却不管段址如何,只要IP是100 便停下。 这样一般的COM外壳只要一条G 100便解决。这个功能看起来简单,却极为有用。有了这条命令,再也不用去记复杂的跟踪路径,只要把当前跟踪到的IP记下,下一次一G便到。


  四、汇编指令作为命令
   搞汇编语言的人满脑子都是汇编,复杂的调试命令可能不愿去记。能用汇编指
令作为命令当然是个好主意。用R AX  1234当然不错,用MOV AX,1234岂不更有意
思?其它CLI\MOV [WORD 1234],4567\IN AL,21都是不错的命令。
    五、允许对调试程序作注解
    六、自动跳转
    七、历史记录
    TR可以把执行过的每一个CS:IP记录下来,以便静态分析。如果程序出错, 可
以查历史记录向前回溯,找到问题所在。更有功能强大的LOGPRO,可以把程序的关
键指令整理出来。被跟踪程序再无任何秘密可言。
    参见命令LOG、LOGS、VLOG、LOGPRO。
    八、把内存代码写成EXE文件
    九、复杂的断点,一次性断点。
    (1)BP CONDITIONS
    条件断点。如:    BP IP>4000   ;代码较长,只跟踪后半部
                      BP AH=2 DL=80 CH>30
    (2)BPINT intnum [CONDITIONS]中断断点
    (3)BPXB BYTES [CONDITIONS]
    遇到指定指令就停下。如:MOV AX,????的机器码为B8????,可用
        BPXB b8
    其它:  
        BPXB cd                ;所有中断
        BPXB 33 C0        ;XOR AX,AX
    (4)BPREG REG|SEG [CONDITIONS]
    如果指定的寄存器改变,则暂停。BPREG CS可以找到所有的段跳。
                      BPREG CS AX=0 ES=#    ;#指当前PSP
可以找到带外壳程序的真正开始。
    (5)BPM [SEG:]OFFSET
    如果访问指定地址则暂停。如BPM 20将使MOV AX,[20]停下。
    (6)BPW SEG:OFFSET
    如果指定地址改变,则暂停。有些操作(如INT)对内存的改变只有一次次
检查是否改变才能找到。
    (7)BPIO port [conditions]
    (8)BPKNL [count]
    如果发现新的程序内核,则暂停。
    特别重要的是,如果一个断点只用一次,把设断点命令前面的'BP'改为'GO'
或'GS'便可直接执行。有了这个一次性断点,一般根本不需要专门设置断点。
                作者:  刘 涛 涛
                地址:  河南安阳彩玻公司资料室
                邮编:  455000
                电话:  0372-3932916-2273
                EMAIL: ayliutt@hotmail.com
                       ayliutt@nease.net
                主页:  http://www.nease.net/~ayliutt
                ICQ UIN: 3434573
                                                97.10.21
----------------------------------------------------------------------
                              须  知
    一、TR支持Turber Debuger调拭信息。如果调试一个带调试信息的C语言程序,
可以用g _main快速进入现场。
    二、支持32位指令(见命令r32)
    三、从TR中退出后,用户程序修改过的所有中断都将被自动恢复,占有的内存
自动释放。
    四、如果系统有XMS,TR自动使用,可以节省一些内存空间。
    五、所有数字输入均采用十六进制。
    运行TR需要386以上的CPU,在DOS下运行,也可以在WINDOWS和WINDOWS95的DOS
窗口中运行,不过速度会更慢。与HIMEM或EMM386或任何其它的XMS/EMS内存管理软
件兼容。可以很好地在SOFT-ICE下运行。TR只会跟踪实模式下的DOS程序,对保护
模式和WINDOWS程序一无所知。
    一、寄存器区
    屏幕的最上端是寄存器区。缺省为16位方式显示,可以用R32命令改为32 位方
式。
    用R命令置寄存器值,如:
         R AX 1234
         R ebx 12321456
         R ch 87
         R dl ah
         R ip ip+1
         R fl z
    对标志寄存器用ODISZAPCT,最近改变过的寄存器以不同颜色表示。
    二、内存区。
    用WD num改变内存区的行数。
    内存区有两种显示方式,一种是普通的段不变偏移连续变化的方式,另一种是
段以10H变化,偏移为0的方式。普通方式下,用E命令使光标到内存区, 如果当前
OFFSET小于0F按向上箭头,变为第二种显示方式。用D命令恢复。
    三、代码区
    屏幕中央是代码区,显示程序的汇编代码。支持386指令, 可以显示标号和注
解,对常用中断进行解释。
    四、命令区
    用于输入命令。可以按F5键放大,按左、右、上、下、上下翻页、HOME、 END
等键移动光标,用DEL和BACKSPACE修改。
    如果要多次执行一条命令,把光标放到那条命令上按ENTER。
    五、状态行
    显示命令是否正常执行。
    六、以上是TR的主要窗口,另处还有F4显示用户屏幕,VIEW命令列文件内容,
    STACK命令显示STACK窗,VLOG显示历史窗等等。
----------------------------------------------------------------------
                          常用按键
  <F8>        执行一句汇编指令,等同于命令T。
  <F10> 执行一个过程,等同于命令P。
  <F4>  显示用户屏幕,等同于命令RS。
  <F6>  命令窗<-->代码窗。
  <F7>  如果光标在代码窗,执行到光标位置(HERE)。
  <F5>  最大当前窗口。当前窗口可以是命令窗、代码窗、内存窗。
  <F9>  如果光标在代码窗,设置(或清除)光标所在位置为断点。
  Ctrl+D 暂停程序的运行,返回TR。注意,TR只会停留在被跟踪程序的代码中,
        而不会停留在系统代码中,所以按热键Ctrl+D后有时不会马上返回。
----------------------------------------------------------------------
                          常用符号
  <$>:
    在TR的命令中,可以用美元符'$'代表当前的CS:IP。命令
        D CS:IP
    与命令
        D $
    是等效的。命令U $可以用命令.来代替。
  <*>:
    在TR的命令中,星号'*'代表当前指令的操作地址。如果当前的CS:IP为
        ****:****        mov        ax,[di]                ;1234:5678=****
    并且此时DS=1234,DI=5678,则命令  D *
    与命令  D DS:DI
    或  D 1234:5678  等效。
  <@>:
    取地址的指针。比如,如果
        1234:5678 11 22 33 44
    则@1234:5678表示4433:2211。
    可以用@0:21*4表示中断21的地址。
    如果刚刚进入一个CALL FAR或INT,可以用@ss:sp返回。
  <#>:
    在TR的命令中,井号'#'代表当前程序的PSP值。
    例:        D #:0
  <;>:
    分号';'代表注解,命令中分号后面的部分将不被解释。
  AUTORUN.TR:
    每次TR运行,都会自动执行当前目录下文件AUTORUN.TR中的命令。把你总是要
    执行的命令加入AUTORUN.TR。如R32,AUTOINT1 ON等。
---------------------TR定制命令--------------------
COLOR [01 02 03 04 05 06 07 08 09 10]
    如果不带参数,显示当前TR的颜色设置。如果带参数,必须是9个值,分别
    表示
                1:寄存器区 寄存器名
                2:寄存器区 寄存器值
                3:寄存器区 改变过的寄存器值
                4:代码区   一般代码
                5:代码区   当前CS:IP
                6:代码区   标号或注解
                7:代码区   断点
                8:命令区   一般命令
                9:命令区   注解
                a:状态栏
    如:color 7 b e 7 e 2 4 17 36 76
MSG [x y]
    显示信息窗。主要用在DO命令文件中作演示用。以后的命令都作为要显示的
    信息,空回车返回。X,Y为信息框的位置,-1为自动右上角,-2为居中。例:
        msg 20 5
        this is first line message
        THIS IS SECOND LINE
        And third
                                ;空回车

VER
    显示版本信息。

R32
    16位寄存器/32位寄存器切换。如果是16位状态,寄存器窗口显示为
AX=1234  BX=1234  CX=1234  DX=1234  SP=1234  BP=1234  SI=1234  DI=1234
DS=1234  ES=1234  SS=1234  CS=1234  IP=1234  o d i s z a p c t
    32位状态的显示为:
EAX=12345678  EBX=12345678  ECX=12345678  EDX=12345678  SP=1234
EBP=12345678  ESI=12345678  EDI=12345678  FS=1234  GS=1234     
DS=1234  ES=1234  SS=1234  CS=1234  IP=1234  o d i s z a p c t
    无论何种状态,都不影响系统运行。缺省为16位,如果你喜欢32位状态,
    把R32加入文件AUTORUN.TR。

REDRAW
    屏幕重画。

WD [lines]
    设定内存窗口的行数。

---------------------输入/输出 命令--------------------
A [address]
    汇编。虽然代码窗能够识别32位代码,A命令暂时不能处理32位代码。
    将在以后的版本改进。可以直接用'BEGIN:'的方法定义标号。
        A cs:0
                start:                ;define label
                mov ax,bx        ;any asm code
                                ;return to command mode
D [address|range] [>filename]]
    以十六进制和ASCII码方式显示内存,加‘>’号把结果输出到文件,
    如:        D cs:ip
                D *
                D 1234:5678>myfile.txt
                D cs:0lffff>file
                D >file
    如果指定文件不存在,则自动生成;如果已经存在,则追加。
    缺省长度40H。
E [[ptr] bytes]
    内存修改。如果不带参数,光标移到数据区,这时可以按左、右、上、下、
    上下翻页、HOME、END等键移动光标,按字母数字键修改内存,按TAB键十六
    进制ASCII码转换。例:
                E cs:0 12 23 45 'abc'
                E b800:200 36 24
                E 234 'def',0d,0a,'$'
    缺省段为DS。
F range bytes
    填充。把内存区域用给定字串填充,如
                F cs:0,ffff 12 23 45 'abc'
                F b800:0L200 36 24
                F 234 'def',0d,0a,'$'
    如果未指定长度,给定字串至少填充一次,相当于E命令。
    缺省段为DS。
L [[SEG]:OFFSET] [FILENAME]
    读文件到内存。注意与RELOAD的区别,L仅仅是把文件读到指定内存区,而
    RELOAD是找到一块空闲内存调入,建立PSP,设置寄存器,准备执行。
    缺省段为DS,缺省地址DS:100。
    例:        N c:\autoexec.bat
                L 100
                N c:\command.com
                L 200
                L DS:300 MYFILE.BIN
L [SEG]:OFFSET DRIVE STARTSECTER SECTERS
    从指定物理驱动器读取指定物理扇区。
    例:        L 100 0 0 1        ;读A盘BOOT区
                L 100 2 0 1        ;读C盘BOOT区
N [filename]
    如果不带参数,显示当前文件名。如果带参数,置文件名。如:
        N MYFILE.EXT
    参见:W,L,RELOAD

RELOAD [filename]
    重新调入文件。如果文件名已被N命令修改,则调入新文件。
    重置所有中断向量、内存区、寄存器。
    有时程序上一次申请的内存不能完全释放,导致调入失败。可以
退出TR再进,EXE2,RELOAD,仍然可以MKEXE。
U [address|range] [>filename]]
    反汇编,加‘>’号把反汇编结果输出到文件,如:
                u cs:ip
                u $
                u 1234:5678>myfile
                u cs:0lffff>file
                u >file
    如果不给出反汇编长度,缺省20H。
    如果指定文件不存在,则自动生成;如果已经存在,则追加。
W
W [SEG]:OFFSET
W [SEG]:OFFSET filename
W [SEG]:OFFSET length filename
    写内存到文件。文件长度为BX:CX或length。
    缺省段为DS,缺省地址DS:100。
    例:        N test.com
                W 200
                W es:300 myfile.com
                W cs:ip dx test.com
W [SEG]:OFFSET DRIVE STARTSECTER SECTERS
    向指定物理驱动器写指定物理扇区。
    例:        W 100 0 0 1        ;写A盘BOOT区
WREG filename
    把当前寄存器区内容写入文件。如文件存在则追加。
WMEM filename
    把当前内存窗口内容写入文件。如文件存在则追加。
WCOD filename
    把当前代码窗口内容写入文件。如文件存在则追加。
WCMD filename
    把当前命令窗口内容写入文件。如文件存在则追加。
---------------------RUNTIME 命  令--------------------
DELAY [time]
    用于DO命令文件中,起延时作用。如果命令文件中改变了DELAY状态,切
    记在文件尾用DELAY 0恢复。
    注意设定延时为16进制。
DO filename                        *新概念*
    执行批处理。指定一个文本文件,里面可以包含所有合法的TR命令(甚至
    另一个DO),让TR自动执行。每次TR运行,都会自动执行当前目录下文件
    AUTORUN.TR中的命令,相当于每次TR启动,都会自动执行一个
                DO AUTORUN.TR
    在批处理文件中,如果一个命令行以空格开始,TR直接处理该命令而不在
    命令窗口显示(第一个空格被去掉)。
    特别用法:把一个汇编程序前面加个A〈回车〉,让TR去汇编。   
    参见:DELAY,KEY
KEY num
    用于DO批处理文件中,模拟按键。给定的值为MOV AX,0\INT 16返回的值,
    如:                  KEY 1C0D    ;回车
---------------------其  它  命  令--------------------
所有汇编指令
    TR支持几乎所有汇编指令作为命令。虽然我们不一定非要这么做,但有时候
    确实很方便,试试下面命令:
        mov ah,4c
        jmp 200
        cli
定义标号或过程名:
    命令行中,输入一个字串加冒号,定义当前的CS:IP为给定标号。
    在A命令后的汇编状态中,定义的是当前正在汇编的地址。
    例,如当前IP=100,输入‘START:’,则CS:100为START,所有JMP 100都将
    译为JMP START。
    在命令行中,这是‘LABEL CS:IP labelname’的简写。
    参见:LABEL,CMT
.
    在代码窗显示当前CS:IP。
    相当于U CS:IP或U $。
? [expresion]
    帮助。如果不带参数,TR自动ZOOM命令窗口,简要显示每一条命令的语法和
    功能。可以用Up/Down/PageUp/PageDown上下滚动窗口,F5恢复。
    如果带参数,TR对参数计算后显示结果,如:
        ? ax        显示AX内容
        ? cx+dx        显示CX+DX的结果
        ? #        显示当前PSP
        ? @0:21*4
        ? $+5        显示CS:IP+5
CMT [SEG:]OFFSET COMMENT_STRING                *新概念*
    对程序进行注解。
    地址如果不提供段址,默认当前CS。如果地址小于PSP:0或大于PSP+2000:0,
    认为是相对地址,否则认为是绝对地址。
    注解串可以是任意长度的字串,但命令总长度不能超过79。如果包含空格或
    保留小写,请用单引号‘’括住。
    对程序所作注解全部存入文件‘当前文件名.cmt’,这是一个文本文件,可
    以直接编辑。下次TR调入程序时自动装入。
    如果定义当前CS:IP名,可直接用‘标号名:’。
    例:
        cmt cs:200 'This is my comment string'
        PROC1:
    参见:LABEL,SYMBOLS
LABEL [SEG:]OFFSET LABEL_NAME      *新概念*
    定义标号或过程名。
    如果定义了标号或过程名,代码窗中将在该地址前留一行显示其名子,并把
    所有JMP和CALL到该过程的语句翻译为‘CALL 过程名’而不是通常那样
    ‘CALL ????’。
    程序标号全部存入文件‘当前文件名.cmt’,这是一个文本文件,可以直接
    编辑。下次TR调入程序时自动装入。
    例:
        LABEL cs:200 file_open
    参见:cmt,SYMBOLS
LOG [ON|OFF]                    *新概念*
    是否记录历史。如果LOG ON,则TR将把以后执行的每条指令地址记录下来,
    可以用VLOG命令查看。本命令只记录最后25条地址,如果要所有记录,请
    用LOGS命令。
    利用TR的LOG功能可以使用一种新的分析程序的方法,那就是“走后门”。
    比如一个程序错误退出,如果用通常的办法从程序开始进行跟踪,要走很
    长的路才能找到问题所在。而用TR的LOG功能,就可以在程序异常退出后分
    析程序最后执行的什么过程,快速找到关键。
LOGS [ON|OFF]                   *新概念*
    是否记录历史。如果LOGS ON,则TR将在当前目录下建一文件LOG.DAT,
    并把以后执行的每条指令地址以十六进制存入该文件。方便以后分析程序
    流程。视程序复杂度,该文件可能会很长。请使用专门的十六进制浏览器
    浏览该文件,或用TR的VIEW命令。
    当LOGS ON时,因为执行每一条指令都会有一次存盘,速度较慢,一般情况
    下,用LOG ON就足够了。LOGS ON时,LOG自动为ON。
LOGPRO [0|1|2|f]                   *新概念*
    功能:把程序执行过的关键代码记录下来,便于分析。特别适合于正确
    流程和错误流程的比较。
    如果不带参数,则显示当前选项。各选项的意义:
        0:        不LOG
        1:        只LOG以下几条指令call,ret
        2:        只LOG以下几条指令call,ret,condition jmp,jmp far
                注意:对CONDITION JMP只有条件为真时才LOG
        f:        LOG所有指令
    LOGPRO把LOG的指令存到文件LOGPRO.DAT,每条记录长16字节,格式:
      位置     大小    意义
        0        DW        IP
        2        DW        CS
        4        DW        SP
        6        DB        ?
        7        DB        ?
        8        8 byte        指令码
    在DOS提示符下执行LOGPRO.EXE,读取LOGPRO.DAT,生成LOGPRO.TXT。
    这就是程序的关键代码。
    特别感谢LX首先提出这个思想。
M RANGE [SEG]:OFFSET
    内存复制。如:
                M $L200 8000:100        ;复制CS:IP开始长度200到8000:100
                M DS:0,800 ES:200       ;复制DS:0,800到ES:200
Q
    退出TR。也可以按ALT+X。
    用户程序修改过的所有中断都将被自动恢复,占有的内存自动释放。
R REG [num]
    改寄存器值。可以是8位16位32位通用寄存器、标志寄存器FL或段寄存器。
    对标志寄存器的操作可以是ODISZAPCT。
    例:        R ax 1234
                R ebx 12321456
                R ch 87
                R dl ah
                R fl z
RS
    显示用户屏幕(Restore Screen),热键F4。按任意键返回。
S range bytes
    在内存中查找指定内容,如:
                s cs:0,ffff 12 34 45        ;在CS:0到ffff中寻找12 34 45
                s ds:200l100 23                ;在DS:200长度100中寻找23
SYM [ON|OFF]
    是否调入EXE文件的调试信息。缺省为ON。如果不想调入文件的调试信息,
    先不带参数执行TR,然后:
                      SYM OFF
                      N myfilename
                      RELOAD
    因为有些错误的调试信息会使TR发疯。
SYMBOLS
    如果程序带有调试信息或用label,cmt命令自定义了符号,则显示所有符号名。
    参见:CMT,LABEL
VLOG
    显示LOG ON或LOGS ON命令记录的历史信息。
VIEW filename.ext
    浏览文件。可以以十六进制和ASCII方式查看文件内容。
STACK                        *新概念*
    显示当前子程序嵌套状况。
    比如,可以用GOIO 378找到关键指令,用STACK看当前CS:IP是经过几次
    CALL过来的,迅速找到关键子程序。
    参见:PRET
---------------------------------------------------------------------
                        跟踪执行命令
G
G [seg:]offset
G conditions                        *新概念*
    执行程序,也可以用命令GO。如果条件满足,则暂停。
    注意:在程序中加入INT3并不能使G命令的运行中止。
    特别推荐:G OFFSET。只要程序执行中IP等于设定的OFFSET,就会停下。你
    不用担心段址在哪儿,代码是否动态生成。只要知道它会经过那儿,就会停
    下。例:        
                G 100
                G CS:100
                G BX
                G AH=4C
                G AX=0 BX=0 CX=0
                G IP>400
    参见:GS
GO???                        *新概念*
    任何设置断点的命令BP???都可以用GO???来使用,用为一次性断点。
    例:        GOREG CS
                GOINT 21 AH=30
                GOW ES:DI
                GOXB CD 13 AH=2
    参见:GS???        
GS
    G命令在执行前会恢复用户屏幕,执行结束后再保存用户屏幕。有些程序破
    坏了BIOS,这样保存的屏幕信息无法正常恢复,对此问题TR还找不到好的解
    决方法,于是增加了一个GS命令。GS命令相当于G命令,只是不恢复屏幕。
    等价于执行多个T。
GS???
    同GO???命令,只是不恢复屏幕。参见:GS GO???
T
    执行一句汇编指令,相当于按F8。
    注意,TR的T命令与其它调试器不太一样。TR并不会真的去执行这条指令,
    而是完成每条指令的功能而已。如果遇到了TR无法识别的指令,只有用TT
    命令了。
    如果遇到INT指令,T命令不会进入系统的中断例程,因为我认为我们一般感
    兴趣的是被跟踪程序,而不是系统。如果程序修改了INT地址,T命令会进入
    被改后的地址。如果真是需要进入中断,可以用GG,如
                GG @0:21*4        ;进入INT21
GG [[SEG:]OFFSET]
    无条件执行,TR不对执行过程作任何控制。
    缺省段为CS。如果指定地址,那么TR在指定地址插入CALL FAR指令,然后JMP
    到应用程序中去,希望它能执行到这个CALL FAR由TR重新控制。之所以不用
    INT3是为了防止应用程序修改INT3中断向量。
    因为这时程序的执行已不是TR的解释执行,所以运行速度正常。
    仍然可以希望CTRL+D能回到TR的控制。
P
    执行一个过程(F10)。如果当前指令是一条CALL或CALL FAR,则执行整个过
    程直到返回。如果是其它指令,同T。
    如果确实想执行到下一步为止,比如遇到一个LOOP,请用命令PP。
PP
    执行直到下一条指令。相当于G IP+本指令长度。
PRET
    执行程序直到RET、RETF或IRET指令。用于快速退出子程序。
    参见:STACK
TT
    使用单步中断执行一条指令。
    不推荐使用。
    参见:int1
AUTOINT1 [ON|OFF]
    这是一个标志,可以设为ON或OFF。缺省为OFF。
    当为ON时,如果TR遇到一条不可识别指令,则自动用INT1单步中断去执行。
    参见:TT,INT1
INT1 [ON|OFF]
    这是一个标志,可以设为ON或OFF。缺省为OFF。
    当为ON时,TR不再解释每一条指令,而是用INT1单步中断去执行。
    不推荐使用ON的状态。如果你确认TR对某条指令的解释有误,可用状态ON
    继续执行。如果只在此状态下执行一条指令,用命令TT。
    影响命令:T,G,P等
    参见:TT,AUTOINT1
AUTOJMP [ON|OFF]                        *新概念*
    设置是否自动跳转。如果为ON,在执行过程中TR将不显示JMP指令,而把JMP
后的指令直接放在JMP指令原来的位置,并在该指令前加“—〉”符号以示区别。
这样在一些JMP过多的场合能使你容易保持清醒。如果你不习惯,让它OFF。
    缺省为ON。
---------------------------------------------------------------------
                        断点命令
    **** 如果断点只使用一次,把BP????改为GO????或GS???? ****
BL
    列出所有断点。最多可设8个断点。
    实际上是9个断点,断点0被GO系列命令占用。
BC [NUM]
    清除所有断点或指定断点。
BD [NUM]
    DISABLE所有或指定断点。
BE [NUM]
    允许所有或指定断点。
BPW segment:offset                        *新概念*
    监视内存变化,如果指定位置的字(WORD)发生改变,则暂停。
    如果设定此类断点,TR每执行一条语句都会进行一次比较。
BP [seg:]offset                        *新概念*
    如果执行到CS:IP=SEG:OFFSET或IP=OFFSET,则暂停。
    用BP seg:offset时,TR不会象通常的调试程序那样,插入一个INT3,TR从
    来不那样做,所以不用担心应用程序会发现或破坏INT3地址而不能返回。
    用BP offset是个好主意,这样就不用关心它的段址是如何变化,在此之前
    有多少代码的扭曲,断点区是否动态生成,都不用去管它。只要程序执行
    过程中IP=offset,就会停下来。
    这个断点实际上是下面BP conditions的一种特殊情况,也可以写作
        BP ip=?? cs=??
    TR把它们作为一种情况进行处理。
    惯用法:对COM文件脱壳,用BP 100或直接G 100。
    例:        bp cs:200
                bp $+20
                bp dx
                BP ip>200
BP conditions                        *新概念*
    如果指定条件满足,则暂停,如
        bp ax=1234                ;当ax等于1234H时停
        bp ax=0 bx=0 cx=0        ;当AX,BX,CX同时为0时停
        bp ah=3 dx=80
    可同时设定3个条件,只有同时满足时,才有效。
    条件判断可用=,!=,>,<,>=,<=。第一个参量用寄存器,可以用任何8位16位
    寄存器或段寄存器,第二个参量用立即数(如果用寄存器,则取值)。
BPREG REG|SEG [conditions]
    如果指定寄存器改变,并且条件满足,则暂停。
    可以指定任意16bit通用寄存器或段寄存器。
    特别推荐使用bpreg cs AX=0 DX=0 ES=#,一般可用来快速查找加外壳程序
    真正的开始。
    条件设置参见BP。
BPXB bytes [conditions]
    如果执行到批定的机器码,则暂停。如,因NOP的机器码是90H,所以
        BPXB 90
    在运行过程中遇到NOP会停下。又如,MOV AX,????的机器码为B8????,可用
        BPXB b8
    其它:  
        BPXB cd                ;所有中断
        BPXB 33 C0        ;XOR AX,AX
    指定机器码长度不要超过8个字节。还可以加条件,如
        BPXB cd 13 ah=3
    条件设置参见BP。
BPINT intnum [conditions]
    中断断点。如果执行指定中断,则暂停。如:
        BPINT 21 AH=30
        BPINT 13 AX=201 CH>30 DX=1
BPKNL [count]                        *新概念*
    如果AX=BX=SI=DI=BP=0,DS=ES=<PSP>,IP=0或IP=100或CS刚发生变化
    (意味着刚有过一次JMP FAR或RET FAR),则暂停。一般用于寻找有外
    壳的程序内核。注意有些加壳软件并不严格符合这个条件,用此方法可
    能会漏掉。如果你有比此更好的主意,请告诉我。
    万能的办法常常不是最好的办法。
---------------------------------------------------------------------
                其它命令
EXE1
EXE2
WEXE1
WEXE2
GETKNL [count]
    参见下面《如何输出EXE文件》
   
---------------------------------------------------------------------
                如何输出EXE文件

    有时我们跟踪一个外壳型程序,我们不仅希望能跟踪到文件的真正开始,
还希望能够恢复源文件。为此,TR提供了生成EXE文件的功能。因为COM文件
比较简单,只要用W写内存到文件即可。下面重点介绍生成EXE文件的过程。
    一、手工完成
    首先,要把内存中的代码写成文件,应该知道文件的大小。为了达到这
个目的,先用命令EXE1把内存清掉,再用RELOAD重新调入,这样写盘时被使
用过的内存区域就是要存文件。
    然后,用各种跟踪命令跟踪程序,对一般的外壳,用
        goreg cs ax=0 bx=0
或        goknl
几次都能找到真正的文件头,用WEXE1存盘,生成文件MEM1.DAT。
    为了处理EXE文件的重定位,需要把程序换个内存地址调入以进行比较。
使用命令EXE2,把内存挤掉一点并清除,RELOAD。
    仍然用上面的跟踪步骤跟踪到文件头,用WEXE2存盘,生成文件MEM2.DAT。
    用Q命令退出TR,执行文件MKEXE,自动读取MEM1.DAT和MEM2.DAT中的信息,
生成EXE文件MEM.EXE,你可以试着执行了!
    二、让TR自动完成
    用TR把程序调入,用命令
        GETKNL [count]
    其中count为脱几层外壳,缺省为1。TR会自动运行:
        exe1
        reload
        goknl count
        wexe1
        exe2
        reload
        goknl count
        wexe2
        q
    TR生成两个文件mem1.dat和mem2.dat并退出。在DOS提示符下运行
        mkexe [orgfile.exe]
    会生成文件mem.exe,这就是脱壳后的文件!
    之所以把MKEXE单独作为一个文件而不是把它做到TR中去,是为了给大家
扩充的机会。如果你对MKEXE感兴趣,可以索取MKEXE的源程序(C++)。
    MEM1.DAT和MEM2.DAT包含一个0x20长的文件头:
        偏移  大小  内容
        00    word  0xac,0xbc标志
        02    word  PSP+0x10,是程序代码在内存中的开始段址
                    MEM1.DAT和MEM2.DAT应该不同以便确定重定位
        04    word  CS-PSP-0x10,代码段偏移,两文件应相等。
        06    word  IP值,两文件应相等。
        08    word  SS-PSP-0x10,堆栈段偏移,两文件应相等。
        0a    word  SP值,两文件应相等。
        0c    word  程序内存块长度,以节(10H)为单位
              dw 09h dup(0)  其余为0
后面接内存中代码。
    不要希望MKEXE生成的EXE文件与源文件一模一样,那是不可能的。它们在
功能上是一样的。如果你选择生成EXE的时机不太好,不正好是程序原来的开始,
你还需要加一段代码恢复各寄存器值。
    如果原文件带有OVERLAY,或在执行过程中检查自身,新的EXE文件可能不能
直接执行。可以让MKEXE在EXE前加一段代码,修改环境块,使程序认为是那个未
脱壳的程序在运行。用法:MKEXE ORGFILE.EXE,文件名不要带路径。执行时,把
脱壳前文件与脱壳后文件放一个目录中执行。
    特别用法:你可以打开一个COM文件,
        tr mycom.com
                exe1
                reload
                wexe1
                exe2
                reload
                wexe2
                q
        mkexe
        ren mem.exe myexe.exe
这就是COM2EXE,把一个COM文件变为EXE文件!

[ Last edited by zzz19760225 on 2017-10-31 at 15:16 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 88 楼』:  

1



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 89 楼』:  

[原创]DOS命令行下常见的错误信息                                                 :Dark-Destroy
http://www.cn-dos.net/forum/viewthread.php?tid=2161&fpage=1
[原创]DOS命令行下常见的错误信息

大家在使用DOS的过程中,经常在命令行方式下遇到一些错误信息提示,由于往往是英文的,导致一些人看到后不知是怎么回事,更不知该如何解决了。下面,我就将常见的DOS命令行方式下的错误信息向大家介绍一下。

[英文] Bad command or file name
[译文] 错误的命令或文件名

错误原因和解决:

这大概是大家最常见到的错误提示了,它的意思是输入的命令无效。当输入的命令既不是DOS内部命令,而且系统在查找路径或指定路径中找不到相应的可执行文件的话,就会出现此错误信息。您可以检查输入的命令是否正确,如是否打错了字母等。

[英文] Access Denied
[译文] 拒绝存取

错误原因和解决:

这也是一个常见的错误,出现的情况很多,如在用DEL命令删除具有只读属性的文件,或者在多任务环境下有多个进程同时存取同一文件,以及试图在设有只读权限的网络文件夹中写入文件的时候。解决的方法也很简单,只需去掉文件的只读、隐含等属性,或保证同一时候只有一个进程在读写文件,及去掉网络文件夹的只读权限即可。

[英文] Drive not ready
[译文] 驱动器未准备好

错误原因和解决:

相信大家都遇到过这个错误信息吧!尤其是在存取可移动磁盘(包括软盘和光盘)的时候更是常见到。解决方法是将磁盘插好后重试即可。

[英文] Write protect error
[译文] 写保护错误

错误原因和解决:

当试图向写了保护的磁盘(通常是软盘)写入信息的时候就会出现该错误。将磁盘的写保护去掉即可。

[英文] General error
[译文] 常规错误

错误原因和解决:

此错误通常出现在DOS无法识别指定的磁盘的格式的情况下,如软盘未格式化。用FORMAT等命令格式化磁盘或转换成DOS能识别的格式即可。

[英文] Abort,Retry,Ignore,Fail?
[译文] 中止,重试,忽略,失败?

错误原因和解决:

此错误信息的出现频率非常高,比如在磁盘未准备好的时候。输入A则取消操作,然后返回DOS提示符下,输入R则表示再试一次,输入I则表示忽略此错误并继续,最好不要使用,输入F则表示跳过此错误,经常选择此项。

[英文] File not found
[译文] 文件未找到

错误原因和解决:

在使用很多命令的时候若找不到指定的文件就会出现该提示。例如使用DIR命令的时候,若指定的文件不存在,该错误信息就会出现。解决方法是将文件名输入正确。

[英文] Incorrect DOS version
[译文] 错误的DOS版本

错误原因和解决:

当要执行的命令发现当前的DOS版本与这个命令所期待的DOS版本不相同的时候就会出现此错误信息。具体情况和解决方法请见本站的“DOS文章”栏目中的文章。

[英文] Invalid directory
[译文] 非法目录

错误原因和解决:

如果输入了不存在或无效的目录的时候就会出现该提示。可检查是否输入有误。

[英文] Invalid Drive Specification
[译文] 指定的驱动器非法

错误原因和解决:

当输入的驱动器不存在的时候就会出现该提示。请检查是否存在该驱动器。有些驱动器(如NTFS卷,光驱,网络驱动器等)则需要加载相应的驱动程序才能被识别。

[英文] Syntax error
[译文] 语法错误

错误原因和解决:

此命令在使用一些批处理命令(如IF,FOR等)时比较常见,可检查是否输入了无效的语法。以FOR命令为例,它的语法是FOR %F IN (文件名) DO 命令,不能将此语法格式弄错了(如输反了或漏了等),必须输入正确的命令才能得到相就的结果。

[英文] Required parameter missing
[译文] 缺少必要的参数

错误原因和解决:

如果在执行命令(如DEL)漏掉了它要正常完成功能所需的参数时,就会出现该提示。

[英文] Invalid parameter
[译文] 非法参数

错误原因和解决:

出现在执行命令时输入了无效的参数。可以检查输入的参数是否正确,有没有拼写错误等。如果您不知道有哪些参数的话,通常可以使用此命令的/?选项来看参数列表。

[英文] Not enough memory 或 Insufficient memory
[译文] 内存不足

错误原因和解决:

如果在执行程序时程序发现所需的内存大于可以使用的内存(通常是指常规内存)时就会出现此信息。造成内存不足的情况如执行了过多过大的内存驻留程序,或系统内存未经过很好的配置等。大家可以看本栏目中的“DOS下内存的配置”。

[英文] Divide overflow 或 Divide by zero
[译文] 除数为零

错误原因和解决:

如果在系统不稳定,与其它程序有冲突,或程序本身有问题的情况下运行程序的话就会出现此错误。可以重新启动系统后再运行此程序试试。

[英文] Runtime error xxx
[译文] 运行时间错误xxx

错误原因和解决:

和以上的“除数为零”错误类似。如果xxx的值为200的话,可以见“DOS文章”栏目。

[英文] Error in EXE file
[译文] EXE文件有错误

错误原因和解决:

通常是这个可执行文件已经损坏,已不能够再使用。使用一个好的就可以了。

    以上是常见的DOS命令行方式下的错误信息,大家可以利用上文将故障排除。

文章取自"新DOS時代" http://newdos.yginfo.net/

-----------------------------------------------------------------------------------

MS-DOS命令中提示信息大全                                                    :  sanxue

http://www.cn-dos.net/forum/viewthread.php?tid=43345&fpage=1
MS-DOS提示信息!!
          大家在学习DOS肯定遇到很多困难,找不到原因,在这里贴出来大部分的提示信息,希望对大家有所帮助!
          转帖! 信息较多 请按 CTRL+F 查找!
          相当有用!

      Abort edit (Y/N)? (是否退出编辑)?
      原因:当用户在EDLIN中选择Q(Quit)命令时,DOS显示这条信息。按Y键结束编辑,按N继续进行。
      
      Access denied (拒绝存取)
      原因:用户试图操作一个写保护、只读或锁定的文件,或执行某条命令时,违反文件、子目录或设备应遵从的存取方式。
      
      Active code page xxx (活动代码页xxx)
      原因:这是当前DOS正在使用的码页。所有附属设备不允许使用相同的代码页,这是CHCP的提示信息。
      
      Active code page not available form CON device (CON设备发出的代码失效)
      原因:系统当前使用的码页不支持现有的控制台。
      
      A dapter error (适配器错)
      原因:系统启动期间遇到故障,某些驱动程序未安装。

      Add file name? (Y/N) (增加文件)?
      (是/不) 原因:在使用REPLACE命令时出现提示性信息。如想增加文件则按下Y键,否则按N键。
      
      Adding filename (正在追加文件)
      原因:在上述操作中选择Y后出现的提示性信息,表示已开始追加所需的文件。
      
      All available space in the extended DOD partition is assigned to
      logical drives. (扩展的DOS分区中的所有空间都已分配给逻辑驱动器)
      原因:在使用FDISK命令进行硬盘分区时,在未删除旧的分区前企图对扩展的DOS分区重新进行逻辑驱动器的定义。
      
      All files canceled by operator (操作员已把所有文件删除)
      原因:当用户在PRINT命令中指定了/T参数后,该命令将取消排队打印的所有文件,DOS显示出这条信息。
      
      All files in directory will be deleted! (目录中的所有文件将被删除)
      Are you sure(Y/N) (你确认真要删除吗?)
      原因:用户试图用通配符(*.*)来删除当前目录(指定路径)中的所有文件,DOS将显示这样的信息。如果确定要不是删除则回答Y,否则按下N。
      
      All logical drives deleted in the extended DOS partition (扩展的DOS分区中的所有逻辑驱动器已删除)
      
      原因:在使用FDISK对硬盘进行分区时必须预先删除已存在的分区,第一步就是删除逻辑驱动器分区。这是DOS提示性的信息,证明逻辑驱动分区已删除,进而可以删除其它的分区。
      
      Allocation error,size adjusted (文件分配错,请调整尺寸)
      原因:目录中记录的文件尺寸与实际分配的数据不一致。
      
      All specified file(s) are configuous (所有指定的文件位置是相邻的)
      原因:为证实用户指定的文件是否已按次序写在磁盘相邻的扇区上,可用CHKDSK命令进行检查。这是检查时发出的提示性信息。
      
      An error occuredwhile installing DOS.
      Press Enter to continue,or Esc to exit setup (安装DOS时出现错误。按Enter键继续,按Esc键退出安装)
      
      原因:这是安装DOS时出现的提示,原因复杂,用户可根据具体情况作出相应的回答。
      
      ANSI.SYS must be installed to perform requested function (ANSI.SYS必须安装要求执行的功能)
      
      原因:所有设备管理都必须通过设备驱动程序,后者必须由MODE命令设定并与ANSI.SYS配置文件结合使用。本提示出现,多数由于MODE命令引起。可以把DEVICE=ANSI.SYS加到CONFIG.SYS文件中,然后重新启动DOS。
      
      APPEND already installed (APPEND命令已安装)
      原因:用户多次调用APPEND的外部版本。一旦该命令驻留内存,用户仅能使用其内部版本。如果已调用一次,又试图再用APPEND命令的/x开关或/E参数,则不能被接受。此时如果想改变参数设置,可重新启动系统,重新装入APPEND命令并重新选择参数。
      
      APPEND/ASSEGN coflict (APPEND和ASSIGN冲突)
      原因:用户在装入APPEND命令之前装入了ASSIGN命令,因为在已分配的驱动器上不允许使用APPEND命令。
      
      Attempt to remove current directory (企图撤消当前目录)
      原因:当一个目录是当前工作的目录时用户不能撤消它。必须先把其中的全部文件删除,退出此目录,最后方可删除此目录。
      
      Amount read less than size in header (读出总数小于文件头指出的大小)
      原因:EXE2BIN文件的程序量小于文件头中所指出的量。应该重新编译或汇编,然后再连接。
      
      Array element size mismatch (数组元素大小不匹配)
      原因:连接公用数组中存在两种或多种类型的数组元素说明,因而必须排除数组说明中的错误,重建目录模块。
      
      Attempt to access data outside of segment bounds (试图存取段边界外的数据)
      
      原因:连接目录文件无效。必须检查。ASM文件或汇编清单,看是否存在超越段界的错误或错误的指令。
      
       Attempted write protedt violation (非法的写保护磁盘操作)
      原因:在存在写保护的盘上进行格式化的操作

      /B invalid with a black and white printer (在黑白打印机中选用/B参数是无效的)
      原因:在黑白打印机中不能打印背影色彩,因而不能使用/B参数。
      
      * * *Backing up files to drive X: * * *
      Diskette Number:n (正在往驱动器X里备份文件:* * *,磁盘号:n)
      原因:用户使用BACKUP命令向指定的驱动器备份文件时将显示此信息。这是提示性信息。
      
      Bad command or file name (命令或文件名错)
      原因:DOS未能找到用户请求执行的命令或程序文件。用户必须检查输入的命令是否正确,或检查驱动器中是否存在指定的文件名,或文件所在的路径是否正确。
      
      Bad internal reloe table (内部重新定位表错)
      原因:连接程序有错,换掉LINK盘,重新连接。
      
      Bad or missing d:path smartdrv.sys (SMARTDRV.SYS的驱动器或路径错或丢失)
      原因:在驱动器或目录里没有SMARTDRV.SYS系统文件,但SMARTDRV.SYS文件在出现在SMARTDRIVE命令行里。请用户重新编辑CONFIG.SYS系统文件,并且在SMARTDRV.SYS文件相应行里键入正确的驱动器和路径名。
      
      Bad or missing command interpreter (命令解释程序错或丢失)
      原因:DOS在磁盘中找不到COMMAND.COM文件,要么是在根目录里没有COMMAND.COM文件,要么是COMMAND.COM文件有缺损。如果COMMAND.COM文件被从原目录中移走,那么在启动DOS时,系统也显示这条信息。解决这个错误的办法是:用一个包含COMMAND.SYS文件的系统新启动系统;或者把原始的DOS系统盘中的COMMAND.SYS文件拷贝到用户用来启动系统的磁盘中。
      
      Bad or missing<filename> (<文件名>错或丢失)
      原因:用户在CONFIG.SYS系统文件中指定了一个错误的设备名。检查CONFIG.SYS文件中DEVICE命令的正确性。
      
      Bad or missing keyboard definition file (键盘定义文件错或丢失)
      原因:DOS找不到用户用KEYB命令指定的KEYBXX文件。检查一下所指定的文件在磁盘中是否存在,所指定的路径是否包括此文件所在目录然后重新键入命令。如果还显示这条信息,可能是KEYBORAD.SYS或KEYB.COM文件已被破坏。
      
      Bad partition table (分区表错)
      原因:这条信息意味着在硬盘中没有DOS分区。用户必须运行FDISK程序在要格式化的硬盘中建立DOS分区。
      
      Bad unit error reading drive X: (驱动器X部件错)
      原因:对设备驱动程序传送了无效的设备号。
      
      Batch file missing (批处理文件丢失)
      原因:系统没有找到被引用的批文件。
      
      Baud rate required (需指定波特率)
      原因:为了MODE命令初始化COM通信口,MODE COMX命令至少得指定一个波特率。
      
      Break is off(or on) (中断控制处于开或“关”)
      原因:这条信息告诉用户当前breakr的状态。当用户在DOS提示符下键入Break回车后,DOS系统将在屏幕上显示出这条信息,即:Break is on或Break is off。这是一条提示性信息。

      Cannot chair to path-tree past this point not processed (不能校验当前指定的树路径)
      原因:CHKDSK校验目录的结构,它不能返回指定的目录校验,隶属于该目录的所有子子目录也不能校验。为了自动修正这个错误,指定CHKDSK/f参数。
      
      Cannot chdir to root (不能改变当前目录为根目录)
      原因:CHKDSK校验目录的树型结构,不能返回根目录。CHKDSK不能继续对剩余子目录进行校验。可重新启动DOS。如果仍然出现这个错误,那这磁盘就不能用了。
      
      Cannot chkdsk a network drive (不能检验网络驱动器)
      原因:不能校验已被替代或者已分配的驱动器。
      
      Cannot chkdsk a SUBSTed or ASSIGNed drive (不能对已替换或已分派的驱动器执行CHKDSK命令)
      
      原因:不能校验已替代或者已分配的驱动器,因为SUBST命令隐藏了校验所需要的磁盘信息。
      
      Cannot create a zero size partition (不能建立0空间的分区)
      原因:用户试图用0个柱面的空间建立分区。对建立的任一分区,必须至少分配1个柱面的空间。
      
      Cannot create extended DOS partition without primary DOS partition
      on disk1 (在硬盘上没有建立初始分区前不能建立扩展的DOS分区)
      原因:用户试图建立一个扩展DOS分区,但用户的第一个硬盘上没有初始的DOS分区。首先应在第一个硬盘上建立一个初始的DOS分区,如果在硬盘上有足够的空间,或者有第二个硬盘,就可以建立一个扩展DOS分区。
      
      Cannot createlogical DOS drive without an extended DOS partition
      on the current drive (在没有建立扩展的DOS分区前,在硬盘上不能建立逻辑驱动器)
      原因:在建立任一逻辑驱动器之前,必须先建立一个扩展的DOS分区。
      
      Cannot delete extended DOS partition while
      logical drives exist (在逻辑驱动器还存在时,不能删除扩展的DOS分区)
      原因: 对硬盘已经分配了一个或多个逻辑驱动器,要想删除扩展的DOS分区,应先删除逻辑驱动器。用fdisk先删除所有的逻辑驱动器,然后再删除扩展的DOS分区。
      
      Cannot diskcomp to or from an assigned or
      substed drive (不能对已分配的或已替换的磁盘进行比较)
      原因:用户指定的其中一个驱动器是用ASSIGN或SUBST命令建立的驱动器。
      
      Cannot DISKCOMP to or from a network drive
      (不能和网络上使用的驱动器进行硬盘比较操作)
      原因:用户不能在网络使用的磁盘上进行磁盘的比较。
      
      Cannot diskcopy to or from an ASSIGNED or
      SUBSTED drive (不能对用ASSIGEND或SUBSTED命令建立的驱动器使用DISKCOPY命令)
      原因:在使用DISKCOPY命令时,用户指定的驱动器中有一个驱动器是用ASSIGN或SUBST命令建立的驱动器。
      
      Cannot DISKCOMP to or from a network drive
      (不能和网络上使用的驱动器进行磁盘比较操作)
      原因:用户不能在网络使用的磁盘上进行磁盘的比较。
      
      Cannot diskcopy to or from an ASSIGNED or
      SUBSTED drive (不能对用ASSIGEND或SUBSTED命令建立的驱动器使用DISKCOPY命令)
      原因:在使用DISKCOPY命令时,用户指定的驱动器中有一个驱动器是用ASSIGN或SUBST命令建立的。
      
      Cannot diskcopy to or from a network drive
      (不能对网络驱动器执行DISKCOPY命令)
      原因:用户不能对更换为网络使用的驱动器进行DISKCOPY操作。
      
      Cannot do binary reads from a device (不能以二进制方式从设备上读出数据)
      原因:从一个设备拷贝信息时,不能以二进制方式进行拷贝,而用户复制时使用了设备名和参数/B。解决这个问题的方法是:或者在拷贝时不指定/B参数,或者用/A参数指定用ASCII码方式进行拷贝。
      
      Cannot EDIT.BAK file-rename file (不能编辑以BAK扩展名命名的文件,必须对文件改名)
      原因:EDLIN行编辑器不 能编辑以BAK为扩展名的备份文件。如欲编辑此文件,必须先对它改名为非BAK后缀的文件。
      
      Cannot find system files (找不到系统文件)
      原因:FORMAT.COM命令未找到隐含的DOS系统文件。应切换到含有系统文件的驱动器,再次运行。
      
      Cannot format a network drive (不能格式化一个网络驱动器)
      原因:在网络环境下不能格式化盘。
      
      Cannot FDISK a network drive (不能对网络驱动器执行FDISK命令)
      原因:在网络环境下不能再对硬盘分区。
      
      Cannot find FORMAT.COM (未找到FORMAT.COM文件)
      原因:在当前目录中或在指定的路径上找不到FORMAT.COM文件。
      
      Cannot find GRAPHICS profile (未找到GRAPHICS.PRO文件)
      原因:可能GRAPHICS.PRO文件不在当前目录中。用户可以用指定路径和指定目录方法再次访问。
      
      Cannot format an ASSIGNed or SUBSTed drive
      (不能对已经用ASSIGN和SUBST命令分配指定的驱动器进行格式化)
      原因:用户指定要格式化的驱动器实际上已经由ASSIGN和SUBST命令指定为另一驱动器了。如果进行格式化可再一次运行ASSIGN或SUBST命令,清除所有已分配的驱动器。
      
      Cannot format nonremovable drive X: (不能对固定的驱动器X进行格式化)
      原因:用户在对磁盘进行BACKUP时使用了/F参数,而指定的驱动器却是一个硬盘或网络驱动器。如果确要将文件备份到一个硬盘,必须使用已格式化过的硬盘。
      
      Cannot JOIN a Network drive (不能连接已更改为网络使用的驱动器)
      原因:在网络环境下企图改变已存在的卷标。
      
      Cannot LABEL a SUBSTed or ASSIGNed drive (不能对已经用SUB命令替代过或用ASSIGN命令分配过的驱动器建立卷标)
      原因:在试图对运行过SUBST或ASSIGN命令之后的驱动器指定卷标。
      
      Cannot Load COMMADN system halted (不能装入命令处理程序,系统停止)
      原因:在试图装入命令处理程序期间,发生了下列情况之一:DOS常驻区已被破坏;DOS在环境参数说明的路径上未找到;没有足够的内存装入命令处理程序。
      
      Cannot perform a cyclic copy (不能执行循环拷贝)
      原因:当用户在XCOPY中使用/S参数时,拷贝目标不能是拷贝源的子目录。
      
      Cannot read file allocation table (不能读文件分配表)
      原因:磁盘上的文件分配表已被破坏。
      
      Cannot RECOVER a network drive (不能恢复网络驱动器)
      原因:用户企图在网络使用的驱动器上恢复文件,这是允许的。
      
      Cannot setup expended memory (不能设置扩展内存)
      原因:本提示表明,系统中的扩展内存板(EMS)工作不正常。
      
      Cannot specify default drive (不能指定缺省驱动器)
      原因:用户如果没在磁盘上为SYS命令保留足够的空间来安装系统文件,或是没有在驱动器的根目录里为SYS命令保留两个闲置的入口,就想传送操作系统文件,那么SYS命令不能指定用户想传送系统文件的驱动器。
      
      Cannot start command,exiting (不能启动命令,退出)
      原因:可能需要增加config.sys文件中的files值,然后再重新启动DOS。或者是因为寻找命令处理程序的路径设置有错误,也可能是没有足够的内存空间来装入命令处理程序(command processor)。
      
      Cannot SUBST a network drive (不能替代网络驱动器)
      原因:用户不能替代已被网络使用的驱动器。
      
      Cannot SYS to a network drive (不用对网络驱动器执行SYS命令)
      原因:已经改为网络使用的驱动器,用户不能再向其传送系统文件。
      
      Cannot use FASTOPEN for drive X: (不能对驱动器X:使用FASTOPEN命令)
      原因:FASTOPEN只能用在近程的硬盘上,并且一次最多使用4个,但用户试图在网络上或在软盘上,或同时在4个以上硬盘上使用FASTOPEN,这是不可能的。
      
      Cannot use PRINT-use NET PRINT (不能用PRINT命令,应该使用NET
      PRINT命令)
      原因:在一个网络系统中不能使用PINT命令打印文件。
      
      Cannot xcopy to a reserved device (不能保留的设备使用XCOPY命令)
      原因:指定的目标是一个字符设备,如打印机或一个异步通信口,或者是NUL。
      
      CHDIR failed,trying alternate Method (改变目录失败,试用另一方法)
      原因:CHKDSK在往一个目录树中读写发现一个不可屏蔽的错误,CHKDSK不能返回父目录。可重新启动DOS,然后再执行CHKDSK命令。
      
      CHKDSK not available on drive X: (不能在X:驱动器上执行CHKDSK命令)
      原因:用户试图去校验一个找不到的备用文件系统。这是一条提示性信息。
      
      xxxx code page driver cannot be initialized
      (xxxx 码页驱动程序不能初始化)
      原因:DOS不能启动PRINTER.SYS或DISPLAY.SYS程序。在CONFIG.SYS的DRIVE语句中输入了一个非法的参数。
      
      Code page not prepared (码页未准备好)
      原因:用户选择了还未给系统准备的码页,或者是支持当前显示模式的码页没在正确的字体。为了给系统准备码页,可用模式准备命令(Mode prepare
      command)。如果用户已建立能安装设备驱动程序的DISPLAY.SYS系统文件,则在CONFIG.SYS系统文件中,应该有用于补充其它字体的device命令行。
      
      Code page xxx not prepared for all devices
      (没有为所有的设备准备好码页)
      原因:用户所选择的设备不能支持码页转换。应该用MODE命令为码页转换准备好设备。然后再试CHCP命令。
      
      Code page xxx not preparedfor system (没有为系统准备好码页)
      原因:CHCP命令不能为系统选择码页。首先,确认NLSFUNC已安装。如果用户在CONFIG.SYS系统文件中尚未使用device命令安装设备驱动程序,那么,现在可重试一次CHCP命令;如果用户的系统正在使用可安装的设备驱动程序,那么,必须用模式准备命令为每个设备准备具体的码页,然后,再键入CHCP命令。
      
      Code page operation not supported on this
      device (本设备不支持码页操作)
      原因:用户在MODE命令中指定了一个DOS不能有效识别的设备和码页组合。检查一下用户指定的设备是否存在,以及列出有效码页,同时也检查一下设备是否支持该码页。
      
      Code page requested xxx is not valid for given
      keyboard code (xxx要求的页码对给定的键代码无效)
      原因:键盘代码和指定的码页不一致。重新键入KEYB命令,使用合适的KEYBOARD码和码页。
      
      Code page specified has not been designated
      (指定的码页未标明)
      原因:用户键入了系统不能识别的KEYB命令选择项。必须先为控制台的屏幕设备准备一个相关的码页。用MODE命令为控制台准备相关的码页,然后,再键入KEYB命令。
      
      Code page specified has not been prepared
      (专用的码页未准备好)
      原因:用户键入了系统不能识别的KEYB命令项。用户必须先为控制台的屏幕设备准备一个相关的码页。用MODE命令为控制台准备相关的码页,然后,再键入KEYB命令。
      
      Code page specified is inconsistent with invoked
      code page (指定的码页和祈求的码页不一致)
      原因:这条警告信息使用户知道,所选择的KEYB选项与控制台屏幕设备(CON)的码页不一致。如果用户想改变控制台的码页,可用模式选择命令(mode
      select command)。
      
      Code page xxx (码页为xxx)
      原因:对某一设备,用户要么指定了一个重复的码页,要么试图准备超出该设备所能支持的码页数。检查一下config.sys系统文件中的device命令行,看允许为该设备准备多少码页。再使用检查一下config.sys系统文件中的device命令行,看允许为该设备准备多少码页。再使用MODE命令的/status选项,看看已经为该设备准备了的码页数。
      
      Compar eerror at OFFSET xxx (在偏移地址xxx处比较出错)
      原因:这条错误信息指出,进行文件比较时,在显示的文件相对位置xxx(十六进制)处,有不同的十六进制值。
      
      Compare error on disk sides xx,track xx(在xx面xx磁道上比较出现错误)
      原因:DISKCOMP发现在指定的驱动器中磁盘上的xx面xx道上有差异。
      
      Compare ok(比较结束)
      原因:如果磁盘比较的结果相同,DISKCOMP显示这条信息。
      
      Compare process ended (比较终止)
      原因:在进行磁盘比较期间,如果发生了一个致命的错误,DISKCOMP显示这条信息,并结束比较操作。
      
      Comparing t tracks n sectors per track,s side
      (s) (正在比较t磁道,n扇区,s面)
      原因:这条信息使用户能够确定正在进行比较的磁盘格式。
      
      COM port does not exist (COM端口不存在)
      原因:用户指定了无效的COM端口。
      
      X:contains N non contiguous blocks (X盘中有N个不连续块)
      原因:磁盘碎裂,含不连续的文件。如果用户想拷贝这种磁盘中的信息,最好用COPY或XCOPY命令,不要用DISKCOPY命令,COPY或XCOPY命令拷贝的文件,在新的磁盘上形成连接的文件。
      
      Content of destination lost before copy (拷贝前文件内容已丢失)
      原因:用户在COPY命令中指定的源文件,在COPY处理完成之前被修改过。请看copy命令的正确语法。
      
      Convert directory to file (Y/N)? (是否将目录转换为文件)
      原因:由于目录中含有过多的无效信息,因而不能继续使用了。如果用户想将其转变成一个文件后用DEBUG加以清理时,键入Y,否则键入N。
      
      Convert lost chains to files (Y/N)? (恢复丢失的链码?)
      原因:如果CHKDSK命令在磁盘文件分配表(FAT)中发现了不合适的分配信息时,显示这个信息。如键入Y,CHKDSK就恢复它检查磁盘时所发现的丢失区,然后对每一个丢失链(带有FILENNNN.CHK形成的文件名)建立一个正确的目录项和文件。如果键入N,CHKDSK就释放丢放区,以便将它们重新分配,但不恢复这些丢失区内的任何数据。
      
      Copy another diskette (y/n)? (拷贝其他的盘吗?)
      原因:这是一条提示信息,在DISKCOPY命令执行完后显示。如果想拷贝另外一张磁盘,则可键入Y,否则键入N。
      
      Copying t tracks n sectors/track,s side (正在拷贝t磁道,n扇区,s面)
      原因:在复制过程中,DISKCOPY显示这条信息。
      
      Copy process ended (拷贝过程终止)
      原因:DISKCOPY不能整盘复制。用COPY或XCOPY复制磁盘上指定的文件。
      
      Corrections will not be written to disk (正确信息不能写入磁盘)
      原因:磁盘上有错误,但CHKDSK不能修正它,因为没有指定/t开关参数。必须指定CHKDSK/t开关参数,以修正磁盘中的错误。
      
      Current code page settings (当前码页设置)
      原因:这条信息是显示为指定设备和系统所准备的码页及当前码页。
      
      Current date is mm-dd-yy (当前日期是mm-dd-yy)
      原因:DATE命令显示出这条信息。用户如欲设置新日期,键入正确的日期并按回车键即可。
      
      Current drive is no longer valid (当前驱动器已不再有效)
      原因:这个消息是当用户在当前网络驱动器上做删除操作时出现,表明该驱动器已失效。必须将该驱动器改为有效的驱动器。如果用的是软盘驱动器,应确认其内有一个软盘且已关好驱动器门。
      
      Current keyboard code:xx,code page:yyy,current
      CON code page:ZZ (当前的键盘代码:xx,码页:yyy,当前CON码页:ZZ)
      原因:这条信息显示当前键盘代码、相关码页以及目前控制台屏幕设备(CON)使用的码页。
      
      Current keyboard does not support this code
      page (当前键盘不支持这个码页)
      原因:用户选择的码页与当前键盘代码不一致。检查一下用户所选择的码页。如果正确,可用KEYB命令改变键盘的代码。
      
      Current time is hh:mm:ss:cc (当前时间为hh:mm:ss:cc)
      原因:系统启动后,TIME命令显示这条信息。如果用户想修改,则键入正确的时间并回车,否则直接按回车键表示认可系统的设置。
      
      
      Data error reading drive X: (磁盘X:读数据错误)
      原因:DOS不能正确地从磁盘X上读数据,这通常是由于磁盘有毛病。可键入R(再试)几次,或选A(异常停止)结束程序(此时最好对该盘作一次备份,因为要是磁盘有毛病,就可能丢失数据)。
      
      Delete(Y/N)? (删除,是/否)
      原因:指定删除某个(些)文件时提示确认是否删除。键入Y则删除文件,或键入N则保留这个文件。
      
      Delete current Volume lable(Y/N)? (删除当前卷标吗?)
      原因:如果已存在一个卷标,现在要为这个磁盘输入一个新的卷标,LABLE就显示这信息。如果要删除卷标,键入Y,否则键入N。
      
      Device error during status (设备状态错)
      原因:在检查设备状态时,DOS在指定的设备中发现一个错误。问题的出现可能是由于设备没有所支持的码页,没有为设备正确地准备码页开关,设备不支持比已准备好的码页更多的码页;或者,该设备里有坏的或有缺陷的文本文件。检查一下CONFIG.SYS系统文件中DEVICE命令行,以确保该命令的语法和对字体的限制以及追加的码页都是正确的,同时也查看一下用户的设备所支持的码页开关,如果还是没有搞清楚,那就请硬件的厂商来解决。
      
      Device error during prepare (准备码页时出现设备错)
      原因:在为设备准备码页开关时节,DOS在指定的设备中发现一个错误。问题的出现可能是由于设备没有所支持的码页;没有为设备正确地准备码页开关;设备不支持比已准备好的码页更多的码页;或者,该设备里有坏的或有缺陷的字体文件。检查一下CONFIG.SYS系统文件中DEVICE命令行,以确保该命令的语法和对字体的限制以及追加的码页都是正确的,同时也查看一下用户的设备所支持的码页开关,如果还是没有搞清楚,那就请硬件的厂商来解决。
      
      Device drror during select (选择时设备错)
      原因:在指定设备时,DOS发现一个错误。问题的出现可能是由于设备没有所支持的码页;没有为设备正确地准备码页开关;设备不支持比已准备好的码页更多的码页;或者,该设备里有坏的或有缺陷的字体文件。检查一下CONFIG.SYS系统文件中DEVICE命令行,以确保该命令的语法和对字体的限制以及追加的码页都是正确的,同时也查看一下用户的设备所支持的码页开关,如果还是没有搞清楚,那就请厂商来解决。
      
      Device error during write of font file to
      device (向设备写字文件时出错)
      原因:当系统试图将字体文件写到指定的设备时,DOS发现一个错误。问题的产生可能是由于该设备没有所支持的码页,没有为设备正确地准备码页开关;设备不支持比已准备好的码页更多的码页;或者,该设备里有坏的或有缺陷的字体文件。检查一下CONFIG.SYS系统文件中DEVICE命令行,以确保该命令的语法和对字体的限制以及追加的码页都是正确的,同时也查看一下用户的设备所支持的码页开关,如果还是没有搞清楚,那就请硬件的厂商来解决。
      
      Device or code page missing from font file
      (文本文件中缺少设备或码页)
      原因:DOS在文本文件中没有找到为该设备指定的码页定义。用户应该为该设备用MODE命令指定另外的码页,同时查看一下文件是否支持所使用的码页。这个错误也可能由于指定了未定义的码页。可以用MODE命令为该设备准备和恢复丢失的码页。
      
      Device ddd not prepared (设备ddd没有准备好)
      原因:在响应MODE命令的码状态请求时,指定的设备未能通过MODE prepare命令传送码页定义到设备去。
      
      Directory already exists (目录已存在)
      原因:用户企图建立一个已存在的同名目录。
      
      Directory entities adjusted (目录项数已调整)
      原因:VDISK发现需要重新调整CONFIG.SYS命令中的DEVICE=VDISK.SYS的目录条目数。
      
      Directory is joined,tree past this point not
      processed (目录已被连接,经过该点的目录树未被处理)
      原因:CHKDSK进行盘校验时,跳过被连结的驱动器。
      
      Directory is joined (目录已被连接)
      原因:CHKDSK不处理已被连接的目录。可以用JOIN/D命令断开目录连接,然后再用CHKDSK检验。
      
      Directory not empty (目录未空)
      原因:需要连接的目录不是空的。
      
      Disk boot failure (系统自举失败)
      原因:启动DOS时出现错误,将系统盘插好后再启动。
      
      Disk error reading (or writing)drive X (读驱动器X或写驱动器X时出现错误)
      原因:DOS不能正确地从磁盘X中读(或者写)数据,这常常是由于磁盘有毛病而引起的错误。可选择R再试几次,或选A(异常停止)结束程序(最好将此磁盘备份,因为,要是磁盘有毛病,就有可能丢失数据)。
      
      Disk error reading (or writing)FAT X (读/写FAT时X盘出错)
      原因:一个文件分配表(FAT)中有一个坏的扇区。DOS自动地使用另一个FAT。应该把所有的文件复制到另一个磁盘上。为了自动地修正这个错误,简单的方法的指定CHKDSK/f开关参数。
      
      Disk full edits lost (磁盘已满,编辑无效)
      原因:由于磁盘空间不够,因此,编辑后无法保存文件。为了保存文件,在发出EDLINE(编辑)命令之前,总是要确保指定的磁盘上有足够的空间,还要保证指定的磁盘没有写保护。
      
      Disk full error writing to BACKUPlog file
      (备份log文件时磁盘写出现错误)
      原因:用户要写记录文件(log file)的磁盘满了。为了重新开始,按任意键或是Control+Bresk键。
      
      Disk unsuitable for system disk (磁盘不适宜作系统盘)
      原因:FORMAT程序在磁盘上检测到一个坏的扇区,而这个扇区正是系统文件要驻留的扇区。这个磁盘只能用来存放数据,而不能作系统盘使用。
      
      Do not specify filename(s).Command format:
      DISKCOMP D:d[/1][/8] (不要指定文件。命令的格式是:DISKCOMP D:d[/1][/8])
      原因:用户指定了一个不正确的参数开关,或是在一个驱动器名后面给了一个文件名。
      
      Do not specify filename(s).Command format:
      DISKCOMP D:d[/1] (不要指定文件。命令的格式是:DISKCOMP D:d[/1])
      原因:用户指定了一个不正确的参数开关,或是在一个驱动器名后面给了一个文件名。
      
      Do you see the leftmost 0?(y/n) (看到最左边的0吗?)
      原因:MODE命令显示这个信息以帮助用户观看屏幕上的测试信息。如果在测试信息中能看见最左边的0就其键入Y;如果想移动显示到右边就键入N。
      
      Do you see the leftmost 9?(y/n) (看到最右边的9吗?)
      原因:MODE命令显示这个信息以帮助用户观看屏幕上的测试信息。如果在测试信息中能看见最右边的9就其键入Y;如果想移动显示到左边就键入N。
      
      Do you wish to use the maximum size for a
      DOS partition and make the DOS partition active(y/n)? (希望使用最大的DOS分区并使之成为激活分区吗?)
      原因:用户在使用FDISK在格式化硬盘时选择“生成初始DOS分区”后,DOS会显示这条信息。如果想把整个硬盘格式化为一个DOS分区,就键入Y并回车,否则,键入N并回车。
      
      Does name specif a file name or directory
      name on the target(F=file D=directiory)? (在目标盘中指定文件名或目录名了吗?F=文件,D=目录)
      原因:这是警告信息。在目标盘上,XCOPY不能打开命名为<路径名>的目录。如果用户键入“D”,XCOPY便试图在目标盘上生成一个名字为<路径名>的目录。如果名字是指定一个文件,就键入F。如果目标是指定一个当前不存在的目录,就键入D。

      (.)(..)DOS not exist(.和..不存在)这是一条来自CHKDSK的报告信息,表明“.”“..”目录项是无效的。
      
      Dos command line parameters supported (DOS命令行参数被支持)
      原因:这是一条提示信息。GRAFTABL将显示命令行的参数:当前正在使用的代码页数目和代码页选择表是正确的。
      
      Drive X alreadydeleted (X驱动器已被删除)
      原因:用户试图用FDISK命令删除X驱动器,但该驱动器早已被删除。
      
      Drive deleted (驱动器已被删除)
      原因:在扩展DOS分区指定的逻辑DOS驱动器已经删除了。
      
      Drive letter has been changed or deleted (驱动器字母改变或已被删除)
      原因:一个或更多的逻辑DOS驱动器已从扩展DOS分区中删除。对于每一个保留的逻辑驱动器字母分配可能已改变,因为DOS是依照这些驱动器扩展DOS分区中的物理位置来分配驱动器字母给各个逻辑驱动器。
      
      Drive letter must be specified (驱动器必须指定字母)
      原因:用户未对要格式化的驱动器指定驱动器字母。必须指定的要格式化的驱动器名。
      
      Drive types or diskette types not compatible
      (驱动器类型或磁盘类型不兼容)
      原因:对于DISKCOMP和DISKCOPY命令,必须有相同的磁盘规格的类型。比如不能从单面磁盘复制到双面磁盘,或将高密度磁盘与低密度磁盘进行比较。如果想比较这些磁盘上的文件,应使用FC命令。如果要复制磁盘,可用COPY或XCOPY命令。或重新格式化目标盘使它和源盘类型一样,或者是用相同类型的盘。
      
      Duplicate file name or file not found (文件重名或未找到)
      原因:用户试图将一个文件名改为已存在的文件名,或是指定了一个找不到的名字。
      
      Duplicate parameters not allowed (不允许重复使用同一参数)
      原因:在执行GRAPHICS命令过程中、用户再次指定了同一参数。
      
      
      Echo is off (or on) (命令显示开关正处于开或关状态)
      原因:这条信息告诉用户ECHO当前的状态:on或者是off。是用户为查询当前ECHO的状态和想改变其状态时,键入ECHO命令后,或指定“ECHO ON”或“ECHO OFF”后显示的信息。
      
      End off input file (输入文件结束)
      原因:使用EDLIN编辑已存在的文件时,全部文件读入内存后出现此信息,表明全部文件已读到内存里。如果是分段读的,这个信息表明文件的最后一段已读进内存。
      
      Enter current volume label for drive X: (输入X驱动器的卷标)
      原因:对指定驱动器硬盘进行格式化以前,FORMAT要求送入当前的卷标以便进行核对。如果用户不知道卷标是什么,则按Control+C终止这个命令。对一指定的驱动器发出一个VOL命令,确认卷标,然后再发出FORMAT命令。
      
      Enter new date: (输入新的日期)
      原因:当启动DOS或用DATE命令时,用户必须响应这个提示。准确地按显示的格式回答新的日期,或按回车键接收当前显示的日期。
      
      Entery error (输入错误)
      原因:EDLIN检查出用户键入的最后一个命令有语法错误。用正确的语法重新键入,然后按回车键。
      
      Entry has a bad attribute (or link or size)
      (目录项有错误属性,可能是链接或是尺寸方面的问题)
      原因:这是执行CHKDSK时出现的信息,在本信息前面可能带有一个到两个句号,它表示哪一个子目录是无效的。如果用户指定了CHKDSK/f开关参数,CHKDSK将自动纠正错误。
      
      EOF mark not found (EOF标志未找到)
      原因:当比较非文本文件时,COMP命令找不到正在比较的文件在最后一块中有的有效数据的尾标,COMP就显示这条信息。
      
      Error during read of font file (读取字形文件时出现错误)
      原因:DOS试图为指定的码页读字形文件时,发现了一个错误,说明对设备的码页定义不完全。
      
      Error in country command (country命令出错)
      原因:在config.sys系统文件中,对国家命令(country command)使用了错误语法。请纠正这个配置命令的语法。
      
      Error in.EXEfile (EXE文件出错)
      原因:用户要求DOS装入的.EXE文件中,有一个无效的内部格式,如因修改文件后出现文件头信息有错。用户不能运行这个程序,应检查一下用户所编写的程序,重新连接。
      
      Errorloading operationg system (装入操作系统出错)
      原因:由于硬盘错误,用户不能向硬盘中装入操作系统,可重新启动系统。如果试了几次,每次都出错,那么,应该用DOS系统盘重新启动系统,然后用SYS命令将DOS盘片上的系统传送到硬盘。
      
      Error opening logfile (打开记录文件出错)
      原因:DOS不能打开BACKUP的记录文件。请检查一下用这个命令指定的驱动器和路径。记住在目标驱动器上不能设置记录文件。如果对记录文件不指定文件名,当DOS试图在源盘上打开和生成BACKUP.LOG时,将产生这个错误。
      
      Error reading directory (读目录出错)
      原因:用户不能读取目录,原因是在目录或FAT结构里有坏的扇区。如果在硬盘时发生了这个错误,应重新格式化这个硬盘,使这些区域变为有效。
      
      Error reading fixed disk (读硬盘时出错)
      原因:连续运行五次FDISK程序,仍然不能读取当前硬盘的主引导记录,就会显示这一信息。请参考系统操作手册,仔细检测一下硬盘。
      
      Error reading GRAPHICS profile (读取图形文件出错)
      原因:DOS不能读取图形说明文件(graphics profile)。检查一下磁盘磁盘驱动器的门是否是关好。
      
      Error reading/writing partition table (读/写分区表时出错)
      原因:FORMAT命令不能读或写分区表。用户应先运行FDISK程序,对所操作的硬盘进行分区,然后再进行格式化。
      
      Error found,F parameter not specified.
      Corrections will not be written to disk. (发现错误,因为没有指定F参数,故校正结果不写入磁盘)
      原因:CHKDSK命令发现磁盘上有错误,如果没有使用/F参数,CHKDSK就连续显示出这条信息,而不能修正错误。如果想修正错误并把校正结果记盘,则必须指定用/F参数项。
      
      Errors on list device indicate that it may
      be off-line,please check (列表设备出错是因处于脱机,请检查)
      原因:PRINT用于后面打印的设备脱机。只有在设备脱机,而用户又输入一个新的PRINT命令时,才出现出现这个信息。处理办法是确认一下设备是否连接好。
      
      Error writing to device (写设备时出错)
      原因:设备无法处理太多的数据量。应该修改文件中的数据量之后重新执行命令。
      
      Error writing directory (FAT or fixed disk)
      (写目录出错)
      原因:可能是文件分配表(FAT)有错误,也可能是目录扇区已损坏。如果这个错误在硬盘中出现,那么,重新格式化这块硬盘,使这些区域变为有效。如果这样做仍然出现这个错误,只能换一个硬盘。
      
      Error writing to device (写设备时出错)
      原因:用户试图将过多的数据送到一个设备中去,以致DOS无法将这些数据写到这个设备中去。
      
      EXEC failure (执行失败)
      原因:这个错误可能是DOS正在读一个命令时,出现了一个错误,或者是config.sys系统文件中的files命令值设置得太小。提高config.sys系统文件中的files命令的数值,然后重新启动DOS。
      
      Expanded memory not available (不能扩充内存)
      原因:这是一条提示信息,它表明用户在命令中用了/E参数,但是在用户的系统中并没有安装内存扩展卡。
      
      Extended DOS partition already exists (扩展的DOS分区已存在)
      原因:在用户的硬盘上已建立了一个扩展的DOS分区,而又想由FDISK再生成一另外的扩展DOS分区。
      
      Extended DOS partition created (扩展的DOS分区已建立)
      原因:在用户的硬盘上已建立了一个扩展的DOS分区,但未对这个分区指派驱动器字母,而仅仅只是为在这个分区中生成逻辑DOS驱动器保留了空间。
      
      Extended DOS partition deleted (扩展的DOS分区已被删除)
      原因:表示扩展DOS分区以及它的内容已经从硬盘上删除。
      
      Extended card switches do not match system
      memory size (扩展卡开关和系统内存大小不匹配)
      原因:扩展卡转换装置不能反映系统单元中内存的总量。尽管扩展卡转换装置对用户系统来说是正确的,但VDISK不能支持扩展单元的存储器。
      
      
      Failure to access code page font file (存取码页字形文件失败)
      原因:MODE在PREPARE过程中试图访问指定码页的字形文件失败。应该确认一下字形文件是否拼定情正确,验证一下指定的字形文件是否存在。
      
      Failure to access device:XXX (存取XXX设备错)
      原因:MODE在码页操作过程中,指定的DEVICE打开失败。
      
      Fastopen already installed (FASTOPEN已经安装过)
      原因:这是提示性信息,提示用户FASTOPEN命令安装成功。
      
      FCB unavailable reading (or writing) drive
      x: (FCB不能读/写驱动器x)
      原因:commands随着文件共享的装入,用户试图同时打开的文件控制块比通过文件控制块配置命令所指定的数量多。
      
      fc:connot open filename-no such file or directory
      (不能打开文件名-没有这样的文件或目录)
      原因:指定的文件不存在。检查一下目录或修正这个文件名。
      
      fc:filename longer than filename (一个文件比另一个文件长)
      原因:在比较文件时,读到一文件结尾后,另一个文件未到结尾,仍有剩余的数据未做比较。
      
      fc:incompatiable switches (开关参数不一致)
      原因:在比较文件的比较过程中,指定了不一致的开关参数(如/B和/I)。不能混用二进制和ASCII码比较开关参数。
      
      fc:no differences encountered (没有差异)
      原因:指出这些文件是相同的。
      
      fc:out memory (内存超出)
      原因:表示没有足够的内存空间来进行文件的比较。
      
      File allocation table bad (文件分配表错)
      原因:这个磁盘可能坏了。运行CHKDSK/f来检查这个磁盘。
      
      File allocation table bad drive X: (驱动器X的文件分配表坏)
      原因:这个信息意味着磁盘没有格式化或格式化不正确,也意味着磁盘上存在DOS以外的操作系统。运行CHKDSK/f检查这个磁盘,如果还显示这个信息,必须重新格式化这个磁盘。
      
      File (filename) canceled by operator (文件已被操作员删除)
      原因:当用户在打印命令中指定/t开关参数时,DOS就显示这个信息,因为PRINT无法打印已删去的文件。
      
      File cannot be converted (文件不能转换)
      原因:输入的文件格式不正确,或EXE2BINJ无法转换源文件。
      
      File cannot be copied onto itself (文件不能自身拷贝)
      原因:表示用户所指定的源文件名和目录文件名相同。
      
      File creation error (文件建立出错)
      原因:用户试图加一个新文件名或替换一个目录中已存在的文件,或者没有足够的空间来存放文件。如果这个文件已存在,它就是一个只读文件,而且不能被替换。如果根目录已满或文件溢出,或者文件名与卷标或目录相同,或有一个隐含(或系统)文件,都可能产生这个错误信息。
      
      File is READ-ONLY (文件是只读文件)
      原因:因文件是只读文件,所以不能编辑这种文件。
      
      File name must be specified (必须指定文件名)
      原因:用户在启动EDLIN程序时没有指定要编辑的文件名。正确的输入方法是:在键入EDLIN命令后,接着键入要编辑的文件名。
      
      File not found (文件未找到)
      原因:DOS找不到用户所指定的文件,或者是用户试图用已在目录中存在的文件名来对文件重新命名。检查一下用户所键入的文件名是否正确。
      
      File not in print queue (文件不在打印队列中)
      原因:用户所指定的文件不在打印队列里,所以不能从打印队列里移走这个文件。检查一下用户所输入的文件名是否正确。
      
      File are different sizes (文件长度不同)
      原因:被比较的二个文件的长度不一样。由于COMP命令不能比较二个长度不同的文件,因此出现这种提示信息。
      
      File were backed upat time on date (文件曾按时间和日期备份)
      原因:在RESTORE操作时显示的提示性信息。
      
      FIND:Access denied (拒绝存取)
      原因:可能由于磁盘锁定,或文件只读,或隐含而不能正常存取和删除而引出的提示。
      
      FIND:file not found (文件未找到)
      原因:DOS找不到用户所指定的文件,可能是文件名或路径不对。
      
      FIND:Invalidnumber of parameter (参数数目无效)
      原因:用户在命令行中指定的选择项太多或太少。
      
      FIND:Invlid parameter (无效的参数)
      原因:用户所指定的开关参数中,发现有错误存在。
      
      FIND:Read error in filename (读文件出错)
      原因:FIND命令不能读用户指定的文件。
      
      FIND:Syntax error (方法错误)
      原因:键入的命令格式有错。
      
      First cluster number is invalid entry truncated
      (第1个簇号无效,在入口处被截断)
      原因:文件目录中,包含了一个无效的数据区指针。如果定用/F开关参数,则这个文件的长度被截成0。
      
      First diskette bad or incompatible (第1个磁盘坏了或不兼容)
      原因:diskcomp不能识别源磁盘的格式。建议执行CHKDSK命令检查一下问题所在。
      
      Fixed backup device D: is full (备份的硬盘空间已满)
      原因:目录硬盘的空间已被现存的文件占满,用户试图往这个盘里备份更多的文件,因而出现这个提示。
      
      Fixups needed-base segment HEX (需要用十六进制表示段地址)
      原因:源EXE文件含有表示要求装填段的信息。必须指定绝对地址,在该地址处设置结束模块。
      
      Font file contents invalid (字形文件内容无效)
      原因:在prepare过程中,传送了指定了字形文件到设备驱动程序之后,DOS回答一个错误信号,表明这个字体文本格式不对,指定的文件可能不是字体文件或者字体文件已被破坏、更改或截断。
      
      FOR cannot be nested (FOR语句不能嵌套)
      原因:在批处理文件的某命令行上发现FOR子命令不匹配。
      
      FORMAT another(Y/N)? (格式化另一个盘吗?是/否)
      原因:在进行格式化磁盘操作时,每格式化完毕一个盘,命令都将显示一次这个信息供用户决择。
      
      FORMAT complete (格式化完成)
      原因:提示性信息,告诉用户当前进行的格式化操作已顺利完成。
      
      FORMAT not supportedon drive D: (FORMAT命令不支持D盘)
      原因:用户指定了计算机不支持的设备参数,或试图格式化不能格式化的盘(如虚拟盘)等,因而FORMAT不支持这张盘,即不能对这张盘进行格式化。
      
      FORMAT failure (格式化失败)
      原因:建立目标盘时盘出错。重新操作或检查磁盘放置的位置是否正确。
      
      FORMATING while copying (拷贝的同时进行格式化)
      原因:这是DISKCOPY的提示性信息。发现目标盘含有未格式化的磁道,DISKCOPY在复制数据时,使目标软盘的剩余部分格式化。
      
      Function not supported on this computer (计算机不支持此功能)
      原因:在用户的这台计算机中对于要求的功能没有适宜的适配卡或设备。可以检查一下,EGA是否被设备在增强型彩色模式。

  General failure reading (or writing) drive X: (读/写驱动器X失败)
      原因:发生了一个磁盘错误,通常的原因有:磁盘类型与驱动器类型不匹配,例如把1.2MB的高容量磁盘放在320KB/360KB的驱动器中进行读/写;磁盘未放好,或驱动器门未关上;磁盘未经正确格式化。
      
      Graphics characters already loaded (图形字符已装入)
      原因:如果在运行GRAFTABL命令之前,图形字符表已装入内存,则显示此信息。
      
      Graphics characters loaded (图形字符装毕)
      原因:当图形字符装入内存后,GRAFTABL命令就显示出这条信息。
      
      Hardware code pages: (硬件码页为:)
      原因:这是一条提示性信息。为了响应MODE状态请求,该设备被认为带有一套硬件和准备好了的码页。这些硬件和码页在本条信息中列出。
      
      Has invalid cluster,file truncated (有无效的簇号,文件被截短)
      原因:该信息前文件名指定的文件含有一个错误指针。若使用CHKDSK/F,则截去该文件最后无效的数据。如果执行CHKDSK命令时不带/F参数,则无校正动作。
      
      ID code specified is inconsistent with the selected keyboard code. (指定ID代码和选定的键盘代码不一致)
      原因:用户输入了一个有次的键盘ID代码,但是与选定的国家代码不相兼容。
      
      Illegal device name (非法设备名)
      原因:MODE指定的打印机名和串行口名有错。必须纠正所用的设备名。
      
      Incompatible system size (系统空间不相容)
      原因:系统文件在源盘上占据的空间比目标盘可用的空间大,因而不能用SYS命令传送系统文件到这个盘上。
      
      Incorrect APPEND version (APPEND的版本不正确)
      原因:用户不能使用当前的APPEND命令,因为用户使用了与当前DOS系统不兼容的版本。
      
      Incorrect DOS version (DOS版本不正确)
      原因:用户试图使用的命令与系统中正在使用的DOS版本不相符。应该改变版本,使其一致。
      
      Incorrect number of parameters (参数项数目不正确)
      原因:在命令行中指定的参数项目太多或太少。
      
      Incorrect parameter (参数不正确)
      原因:(SHARE)指定的参数不正确。
      
      Infinite retry on parallel printer time-out
      (并行打印机超时间连续重试)
      原因:打印机可能是处于脱机(off line)或未准备好的状态。
      
      Infinite retry not supported on network printer
      (不支持网络打印机重试)
      原因:系统在经过网络接口时不能检出打印机的错误。应以直接连接的方式使用打印机,或者不指定重试。
      
      Insert backup diskette n into drive X: strike
      any key when ready (在驱动器X中插入转储盘片n准备好后按任一键)
      原因:这是RESTORE的提示信息。按提示进行操作。
      
      Insert backup source diskette in drive X,strike
      any key when ready (在驱动器X中插入转储源盘片,准备好后按任一键)
      原因:这是BACKUP的提示信息。按提示进行操作。
      
      Insert disk with command in drive X,strike
      any key when ready (驱动器X中插入command盘,准备好后按任一键)
      原因:DOS试图装入COMMAND程序,但命令处理程序不在A驱动器上。
      
      Insert diskette for drive X and press any
      key when ready (在驱动器A中插好后按任一键)
      原因:DOS在单软盘系统中按双软盘用。
      
      Insert disk with batch file and strick any
      key when ready (插入批文件盘,准备好后按任一键)
      原因:DOS运行时发现含有运行批处理文件的盘不在当前驱动器中。
      
      Insert DOS disk in X and srtike any key when
      ready (在X中插入DOS盘,准备好后按任一键)
      原因:进行盘格式化时发现DOS盘不在驱动器X中。
      
      Insert system disk in X and strike any key
      when ready (在X驱动器中插入系统盘,准备好后按任一键)
      原因:试图剪短SYS装入DOS文件,但在指定驱动器中没有DOS盘。
      
      Insert target disk in drive A press any key
      when ready (把目标盘插在驱动器A,准备好后按下任一键)
      原因:这是执行DISKCOPY的提示性信息,按提示操作。
      
      Insufficient disk space (磁盘空间不够)
      原因:磁盘已没有足够空间再容纳被写入的文件。在进行拷贝,用EDLIN编辑文件时往往显示这类信息。
      
      Insufficient memory (内存不够)
      原因:内存可利用空间太小,不足以运行程序、接受文件拷贝等操作。
      
      Insufficient memory for system transfer (无足够存储空间供系统传送)
      原因:在执行FORMAT和SYS命令时,由于硬盘上没有足够空间,无法传送系统文件而出现此提示性信息。
      
      Insufficient memory for Country.sys file (没有足够的内存存放country.sys文件)
      原因:在磁盘上,对country.sys没有足够的存贮空间。
      
      Insufficient room in root directory,erase
      files from root and repeat CHKDSK (根目录无足够空间,删去其中一些文件后再试CHKDSK)
      原因:用户已指令CHKDSK从找到的原“丢失”的数据块中建立文件,但是根目录是满的,并非所有丢失的链都能恢复成文件。
      
      Insufficient stack space (磁盘空间不够)
      原因:DEBUG因磁盘空间不够无法执行写命令。
      
      Insufficient stack space (无足够的栈空间)
      原因:(LINK)因无栈空间无法运行连接程序。应重新启动系统,释放某些驻留空间。
      
      Intermediate file error during pepe (在管道传送时中间文件出错)
      原因:因为默认的驱动器根目录是满的,或磁盘空间不够,DOS不能建立中间文件,因而出现错误信息。
      
      Internal stack overflow system halted (内部堆栈溢出,系统中断)
      原因:系统试图使用多于可用堆栈的堆栈数,于是产生溢出中断,并使系统停止。应重新启动DOS,然后编辑CONFIG.SYS系统文件,分配更多的堆栈。
      
      Invalid baud rate specified (指定无效的波特率)
      原因:用户指定了错误的波特速率。正确的选择应是110,150,300,600,1200,2400,4800,9600,用户指定波特速率时,至少要指定前两位数字。
      
      Invalid characters in volume label (卷标含有无效字符)
      原因:卷标只允许有1至11个字母数字的字符,用户可能指定了非法的卷标。
      
      Invalid COMMAND.COM in drive n (在n驱动器中COMMAND.COM无效)
      原因:DOS待装入的COMMAND版本号泽。
      
      Invalid date (无效的日期)
      原因:输入的日期不符合要求。
      
      Invalid device (无效的设备)
      原因:为DOS指定的设备名无效。
      
      Invalid directory (无效的目录)
      原因:DOS和COMMAND指定的路径中某项目录不存在。
      
      Invalid disk change (无效的盘片更换)
      原因:当文件在软盘上仍处于打开状态时,更换了磁盘。
      
      Invalid device parameters form device driver
      (来自设备驱动程序的设备参数无效)
      原因:进行FORMAT操作时出现的错误提示。可能的原因是:隐含扇区(相对扇区)的数目并不正好是每磁道扇区的准确倍数,DOS分区不能在磁道的边界处开始。最好是装入FDISK命令,在硬盘上重新建立新的DOS分区,重试FORMAT命令。
      
      Invalid drive in search path (路径搜索中有一个无效的驱动器)
      原因:DOS PATH中指定一个不存在的驱动器。
      
      Invalid filename or file not found (无效的文件名或文件未找到)
      原因:在RENAME和TYPE操作过程中发现文件名错或文件不存在。
      
      Invalid drive specification (指定的驱动器无效)
      原因:驱动器名有错或者驱动器不存在。
      
      Invalid entry,please press enter (输入无效,请按回车键)
      原因:用户键入的字符有错:可能最后一个是输入了百分比符号,在百分比符后是不能再增加字符的。
      
      Invalid environment size specified (指定的环境参数无效)
      原因:指定的环境长度包含一个非数值字符。指定的环境长度超出了范围。
      
      Invalid extent entry (无效的范围输入)
      原因:用户指定的范围条目不在适当的范围内,最小值是1,最大值是999,应该重新输入一个合适的值。
      
      Invalid drive specification
      Specified drive does not exist,or in nonremovable (指定的驱动器无效。指定的驱动器不存在或者不是固定的驱动器)
      原因:用户将是一个无效的驱动器说明输入到一个命令或命令中的一个参量中,或者没有键入驱动器说明符。
      
      Invalid file/directory entry (输入的文件/目录无效)
      原因:在FASTOPEN命令操作中,用户为目录或文件条目指定了一个无效的值。最小值应为10,最大值是999,默认值是34。
      
      Invalid format (无效的格式)
      原因:用户装入的程序格式无效。请检查一下程序,校正一下命令,参照命令格式,修正命令。
      
      Invalid function (无效的功能)
      原因:错误来源于应用错误。信息表示DOS功能没有得到支持。
      
      Invalid function parameter (无效的函数参数)
      原因:用户建立的函数,其模式访问是不正确的,应该退出这个应用程序。
      
      Invalid handle (无效的句柄)
      原因:用户试图用一个无效的内部文件标识符(句柄)访问一个文件。
      
      Invalid keyboard code specified (指定的键盘代码无效)
      原因:用户在KEYB命令中选择了无效的键盘代码。
      
      Invalid keyboard ID specified (指定的键盘ID无效)
      原因:命令行中指定的键盘ID是无效的。
      
      Invalid keyword (无效的关键字)
      原因:用户输入一个无效的关键字,例如在MODE命令中打入了DELA=,而不是DELAY=。
      
      Invalid media or track 0 bak-disk unusable (无效的介质或0磁道损坏-磁盘不能用)
      原因:FORMAT不能在指定的介质上对磁道0做格式化。存在下列情况之一时,将出现此提示;磁道0不能用。磁道0是引导区,文件分配表和目录驻留之处。如果0道不合格,则磁盘不能用。磁盘类型与驱动器类型不匹配。
      
      Invalid media type(介质类型无效)
      原因:用户使用的磁盘上的介质与DOS不兼容。
      
      Invalid menmory block address (无效的内存地址)
      原因:一个应用程序产生一个错误的存储地址。
      
      Invalid number of parameters (无效的参数个数)
      原因:用户在命令行中,要么没有指定选择项或是字符串,要么是指定了错误的选择项个数。
      
      Invalid parameter combination (无效的参数组合)
      原因:用户指定的开关参数中有一个是错误的或者是不存在的。
      
      Invalid partion table (无效的分区表)
      原因:DOS在硬盘的分区信息中发现了无效的信息。
      
      Invalid password (无效的口令)
      原因:用户输入的口令不正确。
      
      Invalid path (无效和路径)
      原因:路径中包含一个无效的字符或者是一个无效的路径名。或者路径太长,多于63个字符。
      
      Invalid path on directory or directory not empty (目录上的路径是无效的,或者目录不空)
      原因:这个信息往往在使用DEL或RD删除目录时出现,其原因有二:一是用户在路径中指定的一个名字不是有效的目录名,其二是目录中仍然存在文件或其它子目录。
      
      Invalid path or filename (无效的路径或文件名)
      原因:在进行COPY或RENAME操作中,用户指定了一个不存在的目录或文件名。必须检查一个名字的拼写是否正确,文件目录存在否。
      
      Invalid path or file not found (无效的路径或文件未发现)
      原因:在ATTRIB操作中用户指定了一个不存在的目录或文件名。
      
      Invalid profile statement on line X (在X行上的PRO文件语句是无效的)
      原因:在GRAPHICS操作中,用户在给定行X中往PROFILE语句中键入了一个无效的语句。
      
      Invalid STACK parameter (无效的堆栈参数)
      原因:在config.sys系统文件中,堆栈命令的格式中有一个无效的参数。
      
      Invalid sub-directory entry (无效的子目录输入)
      原因:用户指定的子目录要么不存在,要么是无效的。
      
      Invalid swith type (无效的开关参数)
      原因:为命令而输入的一个或多个转换(SWITCH)是无效的、顺序错误或有重复。
      
      Invalid syntax (无效的语法)
      原因:用户在键入命令时,使用了错误的语法。
      
      Invalid syntax on display.sys code page driver (在DISPLAY.SYS码页上出现无效的语法)
      原因:为了装入display.sys系统文件,用户在config.sys系统中键入DEVICE命令时,使用了错误的语法。
      
      Invalid Time (无效的时间)
      原因:用户输入的时间格式有错或者字符不正确。
      
      Invalid unit (无效的装配)
      原因:用户使用的设备驱动程序是无效的。如果程序是自己开发的,则应检查一下程序;如果程序是买来的,则应与厂商联系。
      
      Invalid volume ID (无效的卷标)
      原因:在执行FORMAT过程中,如果用户输入的卷标与被格式化的磁盘上的卷标不匹配,则显示出这条信息。可以用VOL命令测试一下正确的卷标,然后再试。
      
      Is cross linked on allocation unit? (在分配单元上交叉连接?)
      原因:CHKDSK发现两个文件使用了相同的分配单元。用/F参数删掉后一个文件。
      
      X is not a choice,please enter Y-Z (X不是该选择的,请键入Y或Z)
      原因:在FDISK操作中,用户输入了一个无效的选择项X,例如正确的选择范围应该是(Y-Z)。
      
      
      KEYB has not been Installed (KEYB没有被安装)
      原因:用户系统中已安装的键盘代码未更改。如果想使用一个非缺省键盘的键盘代码,就应用KEYB命令安装所要用的键盘代码。
      
      
      Lable not foune (标号没找到)
      原因:在批处理文件中,GOTO命令转向的标号不存在。
      
      Last backup diskette not inserted (最后一张备份盘未插入)
      原因:在BACKUP中指定了/A参量,但可移动的目标盘不是备份顺序中的最后一个。
      
      Last file not backup (最后一个文件未转储)
      原因:BACKUP不能把最后一个文件转存到目标盘上,可能是因为目标盘已没有足够的空间,也可能是源文件或目录有错。
      
      Line too long (行太长)
      原因:在执行EDLIN时,执行R(Replace)命令期间,用来作为替换的字符串行超过253个字符的限制。
      
      List output is not assigned to a device (列表输出没有赋给设备)
      原因:当用户第一次键入PRINT命令时,DOS询问用户所指定的设备是否打印机。如果指定的打印设备名不对,则出现如上的提示信息。
      
      LPT#:not rerouted(LPT#:不能重定向)
      原因:MODE不能改变并行打印机接口的方向。检查一下所指定的参数是否正确。
      
      LPT#:rerouted to COMn:(LPT#:重定向到串行口COMn:)
      原因:MODE指出打印机重定向。
      
      LPT#:set for 80(LPT#:设备行宽80)
      原因:MODE指出打印机每行打印80个字节。
      
      XXX Lost cluster found in yyy chain?
      convert lost chain to files(Y/N)? (在yyy链里有XXX丢失的簇,是否把丢失的键恢复成文件是/否?)
      原因:磁盘盘已出现碎裂。如果想把丢失的链恢复成文件则键入Y,否则键入N。
      
      
      Make sure that a diskette is inserted into drive and the door is closed
      (仔细把一个磁盘插入驱动器并把驱动器门关上)
      原因:这是执行DISKCOMP或DISKCOPY过程中出现的提示性信息,因为这时驱动器里可能是空的,或者门是开的。
      
      Maximum space available for partition is XXX Mbyte (分区的最大可用空间是XXX兆字节)
      原因:这是提示性的信息。在FDISK建立DOS分区时,将显示这种信息。
      
      Maximum number of logical DOS drives installed (最大的逻辑DOS驱动器号已安装)
      原因:DOS仅支持驱动器字母A-E,其余可分配给逻辑驱动器(A-Z)。在最大的驱动器号已指定后(即Z驱动器已指定)就不能再生成逻辑DOS驱动器。如果用户还想定义另一个逻辑驱动器,必须先删除一个已存在的逻辑驱动器。
      
      Memory allocation error,cannot load MS-DOS system halted (存储器分配错,MS-DOS不能装入,系统停止)
      原因:程序破坏了DOS系统,或者没有足够的内存用来装命令处理程序。应该重新启动DOS,减少缓冲区和设备驱动程序以及当前程序的数目。
      
      Memory control blocks destoryed (内存控制块被破坏)
      原因:一个应用程序破坏了内存,损坏了系统的结构。
      
      Menu file missing or unreadable (菜单文件丢失或不能读出)
      原因:DOSSHELL启动时发现DOSSHELL.MEU文件丢失或已损坏,因而不能读出。应该重新复制DOSSHELL.MEU文件到DOS SHELL的目录中并重新启动DOSSHELL。
      
      Missing operation system (操作系统丢失)
      原因:操作系统被破坏,必须用带/S参数的FORMAT命令格式化磁盘。
      
      Must enter both /T and /N parameters (必须同时输入/T和/N二个参数)
      原因:FORMAT操作时只输入/T或者/N一个参数,而这二个参数是必须一同输入的。
      
      Must specify ON or OFF (必须指定ON或OFF)
      原因:在BREAK,VERIFY和ECHO操作中必须输入ON或者OFF,而用户输入的不是这二个字之一,必须重新输入。
      
      Must specifydestination line number (必须指定目录行号)
      原因:用EDLIN命令时输入了移动(M)或复制(C)命令,但没有目的行号。应重新输入带行号的命令。
      
      
      Name of list device[PRN]: (列表设备名字[PRN]:)
      原因:在DOS被重新启动之后,第一次启动打印机时,出现此信息。它等待用户响应。输入打印机设备名或直接按回车选择PRN。
      
      New file (新文件)
      原因:在执行EDLIN命令时,如果EDLIN找不到用户指定的文件名时,就显示这个信息。
      
      Network data fault (网络数据缺失)
      原因:读取网络数据失败。
      
      NLSFUNC already installed (NLSFUNC已经安装过)
      原因:NLSFUNC的常驻内存部分已装入,而且只能装一次。
      
      No APPEND (没有APPEND)
      原因:没有目录正在被APPEND命令查寻。如果用户想为数据文件追加一个路径,就应该使用APPEND命令。
      
      No code page has been selected (选择的码页已经没有了)
      原因:在MODE STATUS码页操作中,设备报告说并未为设备选择码页。
      
      No drive specified (没有指定设备)
      原因:在config.sys文件的DEVICE语句中,用户没有指定物理驱动器号。
      
      No extended DOS partition to delete (没有扩展的DOS分区删除)
      原因:用户选择了“删除扩展DOS分区”选项,但是在硬盘上没有DOS分区。
      
      No files found (没有查到文件)
      原因:通过源盘路径指出的文件和文件名在源盘上未找到。
      
      No fixed disks present (硬盘不存在)
      原因:在计算机上运行FDISK时发现:没有硬盘或有硬盘但未能正确安装。
      
      Nofree file handles (没有空余的文件管理字)
      原因:试图装入命令处理程序时失败,因为打开的文件太多。
      
      No logical DOS drive(s) to delete (没有逻辑驱动器可删除)
      原因:FDISK发出的信息,表明在这个分区中没有逻辑驱动器存在。
      
      No logical drives defined (没有定义逻辑驱动器)
      原因:在扩展DOS分区中尚未定义逻辑DOS驱动器。
      
      No paper (没有纸)
      原因:指定的打印机中没有打印纸或打印机电源未接通。
      
      No partition to make active (无分区可设置活动分区)
      原因:在FDISK操作中,用户选择了“置活动分区”选择项,但是当前硬盘上没有分区可被激活。
      
      No path (无路径)
      原因:为DOS查寻命令和批处理文件用的预定路径并没有指定。
      
      No prmary DOS partition to delete (没有初始DOS分区可删除)
      原因:用户在FDISK操作中选择了“删除初始DOS分区”但是当前的硬盘上并没有DOS分区。
      
      No retry no paralle printer time-out (在并行打印机超时下不能再试)
      原因:MODE未指定P参数,超时不再试。
      
      No room for system on destination disk (目标盘上无空间存放系统)
      原因:目标软盘上已经没有为DOS所需要的预定空间,所以系统不能传送。
      
      No room in root directory (根目录已满)
      原因:根目录已满,无法建立卷标。
      
      No room in directory for file (文件目录已满)
      原因:在EDLIN操作时,因在指定的磁盘上目录已满,编辑文件丢失。
      
      No space to create a DOS partition (无空间可建立DOS分区)
      原因:用户在当前硬盘上选择了“生成DOS分区”选择项,但当前硬盘已没有空间严重成形个DOS分区。
      
      No subdirectories exist (无子目录存在)
      原因:在指定的驱动器中只有根目录,所以无目录路径可显示。这是执行TREE命令时发出的信息。
      
      No system on default drive (在默认的驱动器上没有系统文件)
      原因:运行SYS命令时,在默认的软盘或硬盘上,没有找到要传送的系统文件。
      
      Non-DOS diskette (非DOS盘)
      原因:用户使用的是一张无法识别的盘格式。
      
      Non-System disk or disk error,replace and strike any key when ready (非系统盘或盘出错,替换后按任一键)
      原因:在盘中没有系统文件或在启动系统时出现读盘错误。
      
      * * * not able to backup file (不能转储文件)
      原因:由于文件共享冲突,所以不能备份。
      
      * * * not able to restore file (不能复原文件)
      原因:由于文件共享冲突,用户想重存的文件不能打开。
      
      No enough memory to continue (内存不够继续装入)
      原因:在调用DOS外层时,因为内存不够(外层软件要求内存不少于256KB)而不能继续装入。
      
      No enough room to merge the entire file (无足够内存合并整个文件)
      原因:EDLIN操作时,因内存不够无法合并文件。
      
      No found specified character (找不到指定的字符串)
      原因:这是EDLIN操作时,因内存不够无法合并文件。
      
      No found specified character (找不到指定的字符串)
      原因:这是EDLIN命令信息。在规定的行范围内,EDLIN用REPLAE文本或SEARCH文件命令没有找到指定的字符串。
      
      
      One or more CON code pages invalid for given Keyboard (对于给定的键盘,出现一个或多个无效的CON码页)
      原因:用户试图改变键盘,而它所带的码页组合与CON设备码页(由MODE命令准备好的码页和直接由硬件支持的码页)有矛盾,当前CON设备码页组合对给定的键盘代码是无效的。
      
      Only non-bootable partitions exist (仅有非自举的分区存在)
      原因:用户试图用FDISK改变活动分区,但是没有一个定义好的分区能成功地从硬盘上启动。
      
      Only partition drive 1 can be made active (仅在驱动器1上可以建立活动分区)
      原因:用户试图在硬盘上生成一个活动(active)的分区,但这个分区不在第一个硬盘驱动器上,这是不允许的。
      
      Out of environment space (环境块空间超界)
      原因:没有足够的空间接收更多的程序环境数据。
      
      Out of space on list file (列表文件空间超界)
      原因:无足够空间存放表文件。
      
      Out of space on run file (运行文件空间超界)
      原因:无足够的空间存放运行文件。
      
      Parameters not compatible (参数不兼容)
      原因:使用了二个互不兼容的参数(例如:FORMAT/B和/Y),这样指定的参数不适用于驱动器或介质。
      
      Parameter format not correct (参数格式不正确)
      原因:输入的一个或多个参数是无效的,或顺序有错,或有重复。
      
      Parameter not compatible with fixed disk (参数与硬盘不兼容)
      原因:FORMAT指定的参数(/1或/8)对硬盘无效。
      
      Parameters not supported (参数不被支持)
      原因:用户指定了DOS不支持的参数。
      
      Parameters not supported by drive (驱动器不支持该参数)
      原因:当设备驱动程序对于这个驱动器不支持一般的I/O控制功能请求时,FORMAT将显示此信息。
      
      Path(name)too long (路径名太长)
      原因:用户指定的路径名太长。
      
      Path not found (路径名未找到)
      原因:用户指定了一个无效的路径名。
      
      X percent of disk formatted (磁盘已格式化百分的X)
      原因:这是FORMAT的提示性信息,告诉用户磁盘格式化已经进行了百分之几。
      
      Press any key to be formatting X: (按任一键后开始格式化驱动器X:)
      原因:格式化时的提示性信息。
      
      Press any key to be recovering of the file(s) on drive X (按任一键,开始恢复驱动器X的文件)
      原因:RECOVER的提示性信息。
      
      Print Queue is empty (打印队列已空)
      原因:当前PRINT命令未处理文件。
      
      Print Queue is full (打印队列已满)
      原因:送入打印队列的文件太多。
      
      Printer error (打印机出错)
      原因:因打印机故障不能设备打印模式。
      
      Print lines per inch set (设置每英寸打印行数)
      原因:设定打印机打印行间距离。
      
      Probable non-DOS disk continue(Y/N)? (可能不是DOS盘,继续吗?)
      原因:(CHKDSK)分配表的介质标志有错,或未经格式化或盘已损坏。
      
      Proessing cannot continue (处理不能继续)
      原因:(CHKDSK)因内存不够不能继续处理。
      
      Program size exceedes capacity of LINK,limit 740K (程序大小超出LINK的限定容量740K)
      原因:所连接的程序过大。
      
      Program terminated normally (程序正常结束)
      原因:(DEBUG)被调试的程序执行完毕。
      
      Program too big to fit in memory (程序太大,无法装入内存)
      原因:因内存空间不够,无法装入命令,程序无法执行。
         Rate and Delay must be specified
      together (Rate和Delay必须同时指定)
      原因:Typematic比率和延时必须同时设置好。如果只改变其中一个,则将出现错误。
      
      Read error in:X:\Level1\Level2 (在X:\Level1\Leve2目录中读信息出错)
      原因:DELIN操作时,读指定目录下文件时出错。可以把文件复制到另一第盘上,然后再试。
      
      Read fault error (读错误)
      原因:DOS不能从设备上读取数据,可能磁盘未放好。
      
      Read error in country.sys (读COUNTRY.SYS出错)
      原因:DOS不能读取COUNTRY.SYS系统文件。重试一次。如果仍出现这个信息,则多半是因为COUNTRY.SYS系统本身有毛病,可重新拷贝,重新设置。
      
      Read error in filename (读文件出错)
      原因:DOS不能读取输入的文件。
      
      Read error,KEYBOARD.SYS (读KEYBOARD.SYS时出错)
      原因:DOS不能读取KEYBOARD.SYS文件。一般说,出现这个信息多半是由KEYBOARD.SYS本身引起的,所以应该检查这个文件,或重新恢复原始的KEYBOARD.SYS。
      
      Read fault error reading drive X: (读驱动X时出现读错误)
      原因:多半是因为磁盘没有放置正确。
      
      Reading soure file(s)... (正在读取源文件...)
      原因:这是操作XCOPY命令时出现的提示性信息,表示XCOPY正在读取用户所指定的源文件。
      
      Reinsert diskette for drive D: and press ENTER when ready (重新把软盘插在D:准备好后请按下ENTER)
      原因:这个信息通常是用FORMAT/S后出现,它意味着:DOS系统文件装满了内存,但是未把全部文件读入内存,因为内存已满,请求新的软盘后,FORMAT开始做格式化工作,并把内存中的全部文件放到新的软盘上。然后FORMAT要求插入DOS软盘,以便继续将DOS文件的剩余部分装内存。
      
      Replace filename(Y/N) (更换文件名吗 是/否)
      原因:当在RELPACE命令中指定/W开关参数时,REPLACE显示这个信息。
      
      Requested partition size exceeds the maximum available space (要求的逻辑驱动器大小超出最大的可用空间)
      原因:用户试图生成一个比可用空间大的逻辑驱动器时出现这一信息。
      
      Requested partition size exceeds the maximum available space (要求的分区大小超出最大的可用空间)
      原因:用户试图在硬盘上生成一个比最大可用空间还大的分区。
      
      Requested screen shift out of range (要求的屏幕超过范围)
      原因:提示用户不要过分远地移动屏幕或设置的范围过大(用MODE时),以致超出屏幕显示的范围。
      
      Required font not loaded (需求的字体未装入)
      原因:提示用户在DISPLAY.SYS中没有用户所需求的字体。用户可改变CONFIG.SYS系统文件中device=display.sys命令中的字体(m)到最大值,然后重新启动DOS。
      
      Required parameter missing (需求的参数丢失)
      原因:用户试图输入一条命令,但是没有用户所需求的命令。可以检查一个是否拼错了一个参数,或丢掉一个字符。
      
      Required profile statment missing before line X (在X行之前缺少一个说明语句)
      原因:检查一下,是否在X行之前PROFILE语句脱离了语句顺序。
      
      Relocation table overflow (重定位表溢出)
      原因:(LINK)程序中使用的长调用、长转移或其它长指针超13000个。应修改程序,尽可能用短引用替代长引用。
      
      Resident protion of MODE loaded (MODE的常驻部分已装入)
      原因:表示MODE程序部分已调入内存,即常驻部分已装入。MODE执行屏幕设定功能时需常驻。
      
      Resident part of PRINT installed (PRINT的常驻部分已安装)
      原因:当用户发出PRINT命令时,DOS首先显示这个信息,它意味着在处理打印命令以及其它处理过程中,PRINT的常驻部分已调入内存,内存容量大约减少3200字节。
      
      Resident protion of NLSFUNC loaded (NLSFUNC常驻部分已装入)
      原因:NLSFUNC驻留内存,仅需安装一次。这是提示性信息,告诉用户NLSFUNC已驻留内存。
      
      Restore file sequence error (文件复原的次序出错)
      原因:RESTORE文件未能恢复,因为磁盘没有按顺序插入。
      
      * * * Restoring files from drive Y * * *
      Source:X (* * *从驱动器Y复原文件* * *源盘:X)
      原因:这是一条提示性信息。在执行RESTORE命令时出现,它告诉用户,源盘上的文件正在转储(RESTORE)。
      
      Resynch failed,files are too different (再同步失败,文件差别太大)
      原因:FC命令比较装入内存文件。如果没有与行缓冲区部分文件匹配,FC就显示这个信息。
      
      Run-time error * * * (运行-时间错* * *)
      原因:当运行命令时,因内存不够,COMMAND发出这个信息。在这种情况下南明要增加系统可用内存的内存量,例如把CONFIG.SYS文件中的BUFFERS参数更换成较小值,取消一些内存常驻程序等。
      
      
      Same drive specified more than once (多次指定同一驱动器)
      原因:FASTOPEN指定驱动器字母只能一次,而用户却试图对同一驱动器再一次启动快速打印(FASTOPEN)功能。
      
      Same parameter entried twice (同一个参数输入了二次)
      原因:FORMAT的提示信息。表明用户已两次输入/t,/n,/f,或者/n开关参数中的一种,因此需要重新输入正确的参数。
      
      Second diskette bad or incompatible (第二张盘是坏的或者不兼容的)
      原因:第二张盘格式与第一张盘不一样。一般进行DISKCOMP时出现此信息。用户可运行CHKDSK以识别问题所在。
      
      Sector not found (扇区没找到)
      原因:表示盘上有坏扇区,以致DOS在其上找不到。
      
      Sector size adjusted (扇区大小已调整)
      原因:VDISK发现有必要调节CONFIG.SYS命令里DEVICE=VDISK.SYS的扇区长度值。
      
      Sector size too large in file <filename> (文件<filename>中扇区长度太大)
      原因:启动DOS时,<filename>命名的驱动器指定的扇区长度与DOS定义不符。应减少扇区长度以求其与DOS定义一致。
      
      Seek error reading (or writing) drive X: (读/写驱动X:时发生查找错误)
      原因:DOS不能存取磁盘上的信息。应该检查一下软盘是否已插入驱动。
      
      SHARE already installed (SHARE已装好)
      原因:SHARE只需安装一次。
      
      Sharing violation reading drive X: (读驱动器X时产生共享冲突)
      原因:一个程序试图读取另一个程序正在使用的文件。
      
      Sharing buffer exceeded (共享缓冲区超界)
      原因:文件共享和记录块锁定用的缓冲区超界。
      
      Segment limit set too high,exceeds 1024 (段限值设置太大,超出1024字节)
      原因:(LINK)指定的参数/x中设置值太大。
      
      Source and target drives are the same (源驱动器和目标驱动器相同)
      原因:使用BACKUP和RESTORE命令时,源驱动器和目标驱动器应不相同。
      
      Source does not contain backup files (源盘中未包含备份文件)
      原因:执行RESTORE命令,RESTORE发现在源介质中并没有用Backup产生的文件。
      
      Source path required (需要源路径)
      原因:在执行REPLACE命令时,用户没有为该命令指定源路径。
      
      Specified command search directory bad (指定的命令搜索目录是非法的)
      原因:DOS指定了一个非法的路径名。
      
      Specified drive does not exist;or is non-removable (指定的驱动器不存在或者非移动的)
      原因:在执行DISKCOPY或DISKCOMP命令时,用户指定的驱动器是硬盘驱动器或根本不存在的驱动器。
      
      Source diskette bad or unusable (源盘出错或不能用)
      原因:在执行DISKCOPY命令时发现读源盘时出错,无法拷贝。估计盘上有坏扇区。
      
      Syntax error in GRAPHICS profie (GRAPHICS.PRO文件中有语法错误)
      原因:GRAPHICS.PRO文件句中有语法错误,例如键入的词句顺序反了。
      
      Synatx error (语法错误)
      原因:(DOS)输入的命令格式不对。
      
      System files restored.The target disk may not be bootable (系统文件已复原,目标盘可能不可引用)
      原因:(RESTORE)复原的系统文件若是旧版本,则盘可能是不可引导的。
      
      System transferred (系统已传送到盘上)
      原因:当用户指定了FORMAT/S时,将显示这个消息。告诉用户FORMAT已把系统文件装入被格式化的磁盘上。
      
      
      Target cannot be used for backup (目标盘不能作备份用)
      原因:目标盘是坏的,或者有不可识别的格式。
      
      Target diskette bad or unusable (目标软盘坏或不能用)
      原因:在DISKCOPY操作时发现盘片是坏的,无法复制。
      
      Target diskette bad or incompatible (目标盘损坏,或者不兼容)
      原因:在DISKCOPY操作时,用户试图在一个不兼容的驱动器中写盘。
      
      Target diskette may be unusable (目标软盘可能不可用)
      原因:DISKCOPY出现不可恢复的读写错误,复制的副本可能不完整。
      
      Target diskette write protected,correct then strike any key (目标盘是写保护盘,取封后按任一键)
      原因:DISKCOPY试图复制到一张写保护的盘上。
      
      Target does not contain backup files (目标盘里不包含备份文件)
      原因:BACKUP指定参数/A,但未找到以前备份文件的目标盘。
      
      Target is full (目标盘已满)
      原因:RESTORE作复原操作时发现硬盘空间已被占满,删去一些不必要的文件后再试。
      
      Terminate batch job(Y/N?) (是否终止批处理作业?是/否)
      原因:(DOS)执行批处理文件时按Ctrl+Break键,则出现此提示。此外,在EDLIN或WORDSTARE操作中也同样出现此信息。
      
      The last file was not restored (最后一个文件未复原)
      原因:在进行RESTORE操作时,因硬盘空间不够而停止时,或因键入Ctrl+Break而暂停时,均出现此提示信息。
      
      The current active partition is X (当前的活动分区是X)
      原因:这是FDISK操作过程的提示性信息。
      
      The only bootable partition on drive 1 is already set active (第一个硬盘驱动器中,仅有的一个可自举的分区已设置为可活动的分区)
      原因:用户试图改变活动分区。活动分区必须驻留在系统的中第一个硬盘驱动器中,并且必须是可自举的。
      
      Too many block devices (块设备太多)
      原因:装入的块设备部件数超出26个。修改DEVICE=指定的设备驱动程序。
      
      Too many drive entries (指定驱动器数过多)
      原因:用户试图指定第5个驱动器时将产生定信息,因为用FASTOPEN命令,最多只可以打开4个硬盘驱动器。
      
      Too many extent entries (指定范围项数过多)
      原因:在使用FASTOPEN命令中,范围项的最大数是999。
      
      Too many file/directory entries (指定文件/目录项数过多)
      原因:用户在FASTOPEN语句中指定了太多的文件或目录条目。n的总值必须在10—999之内。
      
      Too many files open (打开文件过多)
      原因:在COMMAND命令行中输入太多的定位参数。
      
      Too many name entries (指定的文件名入口过多)
      原因:在FASTOPEN中,为一个驱动器所指定的项目总数不能超过999。用户应检查一下所指定的数值是否正确。
      
      Too many group-,segment-,and class-name,limit 254 permodule (组、段和类名太多,每模限定254个)
      原因:在(LINK)程序中含有过多的组、段和类名。
      
      Top level process aborted,cannot continue (顶层处理被中止,不能继续)
      原因:DOS启动时,发现一个磁盘错误而用户选择A,系统暂停。建议用其它盘启动。
      
      Track 0 bad-disk unusable (磁盘0道故障,盘不能用)
      原因:FORMAT命令能够调节磁盘上有毛病的扇区,但对靠近0道的扇区除外。一旦0道出故障,就会出现这个提示,表示此盘已不能使用。
      
      Tree past this point not processed (此目录树不能被处理)
      原因:此信息表示CHKDSK不能继续处理已经处理过的这个目录路径,因为在上面已经有了错误的记载。
      
      
      Unable to access drive d (不能存取驱动器d)
      原因:FDISK不能访问用户指定的驱动器上的数据。
      
      Unable to create directory (不能建立目录)
      原因:MKDIR要建立的子目录已存在,或根目录已满,或指定的路径不存在。
      
      Unable to create KEYB table in resident memory (不能在常驻内存建立KEYB表)
      原因:KEYB命令先前已装入,且已尼为KEYB表分配专门数量的驻留内存。但请求的配置超过那些驻留内存,因而没有足够的内存空
      间来生成这个表。
      
      Unable to perform refresh operation (不能实现刷新操作)
      原因:PRINTER.SYS在其RAM区中没有一个备份的码页,打印机不能正常工作。
      
      Unable to reload with profile supplied (不能再把说明文件装入)
      原因:用户已经装入一次GRAPHICS程序,试图再装入内存空间就不够了。必须重新启动系统。
      
      Unable to shift screen (不能移出屏幕)
      原因:MODE不能用来移动屏幕上的测试图形,超出允许显示的范围。
      
      Unable to write BOOT (不能写入自举记录)
      原因:磁盘的第一个磁道或DOS分区坏了。BOOT不能写在上面。磁道和DOS分区不能用。
      
      Unable to whift screen left (不能左移屏幕)
      原因:(MODE)若再左移,则超出允许范围。
      
      Unable to shift screen right (不能右移屏幕)
      原因:(MODE)若再右移,则超出允许范围。
      
      Unrecognized command in CONFIG.SYS (在CONFIG.SYS文件中有不能识别的命令)
      原因:DOS启动时,发现配置文件中有无效的命令。
      
      Unrecognized switch error:XXXXXX (不能识别的开关错误:XXXXXX)
      原因:在开关指示符之后,有无效的字符。
      
      Unrecoverable error in directory (目录中有不可恢复的错误)
      原因:CHKDSK在检查目录时,遇到一个错误。
      
      Unrecoverable file sharing error (不可恢复的共享文件错误)
      原因:SHARE产生一个文件共享冲突。
      
      unrecoverable read error on drive X track XX,sid X (驱动X的X面XX道出现了不可恢复的错误)
      原因:DISKCOMP或DISKCOPY四次试图从规定的驱动内的软盘里读取数据,但从指定的磁道或盘面上未能读出数据。
      
      Unrecoverable write error on target track XX,side X (目标盘X面XX道出现不可恢复的写错误)
      原因:DISKCOPY制作的目标盘有写错误,所复制的数据可能不完整。   Volume label (11 characters,ENTER
      for noe) (卷标(11个字符,若不建立卷标则按ENTER键))
      原因:FORMAT结束时,要求用户响应这个提问。
      
      Volume in drive X: has label (驱动器X:上无卷标)
      原因:这是一个提示性信息。如键入DIR后,DOS总要告诉用刻字个盘的卷标是什么,以便用户辨认。
      
      Volume label does not match (卷标不匹配)
      原因:用户输入的卷标和从前指定的卷标不同。
      
      Volume serial number is XXXX-XXXX(卷标编号是XXXX-XXXX)
      原因:用户用DIR查看目录时,DOS总要提示用户,这引磁盘的编号是多少。   Warning! All data on non-removable
      disk drive x will be lost proceed with FORMAT(Y/N)? (警告!若格式化硬盘,数据将全部丢失)
      原因:在用FORMAT格式化硬盘时发出的信息,要求用户响应。若格式化则按下Y,否则按N。
      
      Warning! Data in DOS partition could be DESTROYED.Do you wish to continue?
      (警告!DOS分区的数据将被删去,是否继续运行?)
      原因:FDISK删除DOS分区前的提示。
      
      Warning! directory full XXX file(s) recovered (警告!目录已满,XXX文件已被恢复)
      原因:用RECOVER命令恢复文件时,恢复XXX个文件后发现磁盘空间已满。
      
      Warning! Diskette is out of sequence (警告!磁盘顺序不对)
      原因:用RESTORE命令转储备份文件时发现盘的顺序不是备份时的顺序。
      
      Warning! File X is read-only file (警告!文件X是一个只读文件)
      原因:指定的文件是一个只读文件。如果想从备份盘上恢复这个文件则键入Y,否则键入N。
      
      Warning! File X was changed after it was backup.Replace the file(Y/N)? (警告!文件名在备份后修改过,要更换文件吗?)
      原因:RESTORE提示用户是否要替换已修改过的BACKUP文件。如果想恢复则键入Y,否则键入N。
      
      Warning! Files in the target drive D:\root directory will be erased,Press
      any key when ready.(警告!文件在目标驱动器D:\根目录将被删除,准备好后按任一键)
      原因:在BACKUP操作中的提示性信息。
      
      Warning! No files were found to backup (警告!找不到要备份的文件)
      原因:在BACKUP时未能找到指定的文件。
      
      Warning! No files were fouond to restore (警告!没有发现要转储的文件)
      原因:RESTORE未能找到要转储的文件。
      
      Warning! No partition are set active-disk is not startable unless a partition
      is set active.(警告!没有设置活动分区——除非设置一个活动,否则磁盘不能启动)
      原因:在FDISK操作中,没有设置活动分区。应该回到FDISK选择项,重新设置活动分区。
      
      Warning! Read error in EXE file (警告!在EXE文件中读错)
      原因:(EXE2BIN)读取的数量少于标题尺寸。
      
      Warning! The partition marked active is not bootable (警告!活动分区不能自举)
      原因:用FDISK设置活动分区时,活动分区必须是能自举的分区。
      
      Write failure,diskette unusable(写失败,磁盘不能用)
      原因:SYS正在往磁盘上写数据时,发生一个DOS致命的错误。必须用其它磁盘再运行SYS命令。
      
      Write fault error writing drive X: (写驱动器X失败)
      原因:DOS不能对指定的设备写数据。检查一下,磁盘放置是否正确,磁盘所在的驱动器门关好否。
      
      Write protect error (写保护错)
      原因:试图往一个有写保护的磁盘写数据。
      
      Writing XXX bytes (写入XXX个字节)
      原因:DEBUG提示已写入的字节数。这是一个提示性信息。

[ Last edited by zzz19760225 on 2017-10-31 at 16:56 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3673
发帖 2020
注册 2016-2-1
状态 离线
『第 90 楼』:  

DOS下关机的源程序(汇编)                                     : ko20010214
http://www.cn-dos.net/forum/viewthread.php?tid=4442&fpage=1

.Model tiny
.Code
        Org 100h
Start:

        mov  ax,5300h
        xor  bx,bx
        int  15h         ; Check APM install
        jnb  @@1
        jmp  ExitSys

@@1:
        cmp  bx,504Dh   ; sign
        jz   @@2
        jmp  ExitSys

@@2:
        cmp  ax,101h    ; ver 1.1
        jnb  @@3
        jmp  ExitSys

@@3:
        push cx
        mov  Version,ax
        mov  ax,5400h
        xor  bx,bx
        int  2Fh        ; power.exe install check?
        xor  ax,ax
        cmp  bx,504Dh
        jnz  @@4
        push ax         ; power.exe version
        mov  ax,5401h
        mov  bx,100h
        int  2Fh        ; set management enable
        pop  ax
        jb   @@4
        inc  ax
@@4:
        pop  cx
        push ax
        push bx
        push cx
        mov  ax,5301h
        xor  bx,bx
        int  15h        ; real-mode interface
        mov  ax,530Eh
        xor  bx,bx
        mov  cx,101h
        int  15h        ; driver version
        mov  ax,530Fh
        mov  bx,1
        mov  cx,bx
        int  15h        ; engage power management
        mov  ax,5308h
        mov  bx,1
        mov  cx,bx
        int  15h        ; enable power mamagement
        mov  ax,5307h
        mov  bx,1
        mov  cx,3
        int  15h        ; power off
        pop  cx         ; support device

        test cl,8       ; BIOS power management disable?
        jz   @@5
        push cx
        mov  ax,5308h
        mov  bx,1
        xor  cx,cx
        int  15h        ; system stand-by
        pop  cx

@@5:
        test cl,10h     ; BIOS power disengaged
        jz   @@6
        mov  ax,530Fh
        mov  bx,1
        xor  cx,cx
        int  15h        ; disengage power management

@@6:
        mov  ax,5304h
        xor  bx,bx
        int  15h        ; disconnect interface
        pop  bx
        pop  ax
        test ax,ax
        jz   ExitSys
        mov  ax,5401h
        mov  bl,bh
        mov  bh,1
        int  2Fh        ; set APM firmware power manager enable

ExitSys:

        mov  ax,4c00h
        int  21h

Version DW ?

        End Start

[ Last edited by zzz19760225 on 2017-10-30 at 17:45 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-10-30 17:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] [6] [7] [8] [9] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: