搜索
您的当前位置:首页正文

MS-DOS常用命令及其操作

来源:意榕旅游网
MS-DOS常用命令及其操作

林筱源 编

1. 关于MS-DOS环境

以文本方式工作的DOS操作系统是图形方式的WINDOWS操作系统的前身,在计算机系统维护和网络维护管理等方面仍有其独到和难以替代的作用。在WINDOWS环境下仍提供DOS方式(以DOS窗口形式工作)模拟DOS环境。

DOS操作系统以鍵入英文命令方式工作,操作不区分大小写,但具体命令分成内部命令和外部命令两类。内部命令常见的有DIR(显示目录)、MD(创建目录)、CD(改变目录)、RD(删除目录)、COPY(拷贝文件)、REN(文件改名)、DEL(删除文件)、TYPE(显示文件)等,它们没有各自对应的程序文件存在而是统一封装在一个程序文件COMMAND.COM中。外部命令常见的有EDIT(编辑文件)、EDLIN(行编辑)、DEBUG(调试程序)等,它们有各自对应的程序文件存在,即存在EDIT.COM、EDLIN.EXE和DEBUG.EXE文件。所有内部命令可加“/?”查出其格式用法。

进入DOS窗口后,其操作有别于平常的图形方式窗口,主要有以下几点: ① 无法用最大化按钮和拉左右边线使窗口最大化。但可用按鍵Alt+Enter使窗口变成全屏幕方式,再次按Alt+Enter则全屏切换回窗口方式。也可右击其窗口标题栏选“属性→布局→屏幕缓冲区窗口大小”设其“宽度”和“高度”更大以达到扩大窗口目的(高度可尽量多设些以便可滚动屏幕便利操作)。 ② 可随时按Alt+Tab切换到其它窗口或切换回WINDOWS环境。 ③ 在DOS窗口中只能一个一个命令行地往下操作,无法回到前边的命令行操作。鼠标也受限不能直接去复制粘贴。但可利用F3鍵粘贴上一行内容重复利用,也可用F1鍵逐个字符粘贴上一行内容来加以利用(已经自动复制保存到该两鍵)。 ④ 要把DOS窗口的内容复制到剪贴板上以便WINDOWS环境下也可利用(例如把全部操作内容粘贴入Word或记事本)可采取以下方法:

1) 右击窗口后从右鍵菜单中选“全选”后再按回车鍵,则完成复制窗口全部内容到剪贴板。

2) 右击窗口后从右鍵菜单中选“标记”,之后可用鼠标拉框或鼠标“单击„Shift+单击” 选中两者连续一块矩形区域内容后再按回车鍵,则完成复制矩形区域内容到剪贴板。

3) 剪贴板中的内容可以在任一环境下粘贴出来用。包括在DOS环境下也可直接用鼠标右击窗口后从右鍵菜单中选“粘贴”,但只能粘贴到当前光标处,而不是鼠标点击处。

2. DOS创建和查看目录(文件夹)和文件

① 在DOS窗口命令输入提示符>后输入“e:”并回车,切换e盘成为当前硬盘。 >e: (切换e盘成为当前硬盘

② 用MD创建目录(文件夹)、CD改变当前目录、RD删除目录和DIR列查目

录。

>md /? >md d7110501 >cd d7110501 >dir /? >dir

(查阅md创建目录命令功能格式说明

(在当前位置创建“d+学号后7位”为名的目录 (鍵入c后按F3进入d7110501 目录 (查阅dir列查目录命令功能格式说明 (按三次F1后回车,列查当前目录,注意文件数和目录数

>dir ../p (按F3后鍵入两个小数点和/p,分页列上一层目录 >dir d:\\ /p (按三次F1后鍵入空格和d:\\ /p,分页列d盘根目录 >dir d:\\ /p /on (按F3后鍵入空格和/on,文件名排序分页列d盘根目录 >dir d:\\ /p /dn (按F3后两次退格鍵再dn,按日期排序分页列d盘根目录 >md d:\\abc123 (在d盘根目录创建“abc123”为名的目录 >dir d:\\abc123 (鍵入dir后按F3,查阅d盘根目录“abc123”为名的目录 >rd d:\\abc123 (鍵入rd和空格后按F3,删除d盘根目录“abc123”目录

③ 用COPY拷贝和创建文件、用TYPE显示文本文件内容、用REN对文件改名、用DEL删除文件。 >copy /? (查阅copy拷贝文件命令功能格式说明

>dir c:\\windows\\system32\\*.exe /p /on (文件名排序分页列系统文件 >copy c:\\windows\\system32\\osk.exe (鍵入copy后按F3再用退格鍵删掉部分再补上osk.exe,拷贝文件osk.exe到当前目录

>copy c:\\windows\\system32\\ca*.exe e: (按F3再用退格鍵删掉部分再补上

ca*.exe,拷贝文件头两个字母为ca其余任意的exe文件到e盘当前目录 >dir (列查当前目录,注意文件数、目录数、具体文件名和容量 >osk (运行已经拷贝至当前目录的屏幕软键盘程序 >calc (运行已经拷贝至当前目录的计算器程序 >copy con: abc.txt (用COPY以控制台方式创建新文件abc.txt 1 2 3 4 5 (鍵入1后按Tab制表鍵再鍵入2…. ^A^B (鍵入Ctrl+A和Ctrl+B ~!@#$%^&*()_+ (依次鍵入键盘第二排符号鍵 1234567890 (依次鍵入数符 ABCDEF (依次鍵入大写字母 Abcdef (依次鍵入小写字母 文件目录字节 (不支持鍵入汉字,利用上边17③2)方法复制窗口中.汉字 、。啊阿 (不支持鍵入汉字,可在记事本中输入后再复制粘贴过来

^Z (鍵入Ctrl+Z表示结束全部输入 已复制 1 个文件。 (刚输入内容的新文件abc.txt生成 >dir (列查当前目录,注意文件数、目录数、具体文件名和容量 >type abc.txt (用TYPE显示文本文件abc.txt内容,注意第二行有两笑脸 >copy abc.txt abc1.txt (鍵入COPY再按F3补全,生成副本abc1.txt >copy abc.txt abc2.txt (按F3后5次退格鍵再补全,生成副本abc2.txt >copy abc.txt abc3.txt (按F3后5次退格鍵再补全,生成副本abc3.txt >ren abc3.txt aaa.dat (用REN改变abc3.txt文件名成aaa.dat >dir (列查当前目录,注意文件数、目录数、具体文件名和容量 >del abc2.txt (用DEL删除abc2.txt文件 >dir (列查当前目录,注意文件数、目录数、具体文件名和容量

3. 保存DOS窗口全部操作内容复制粘贴存入到Word或记事本文件可作为这部分内容的实验作业提交(可适当编辑去掉重复多余误操作部分,如能把自己的理解认识加以标注则更好)。

① 右击DOS窗口后从右鍵菜单中选“全选”后立刻按回车鍵,则完成复制窗口全部内容到剪贴板。

② 按Alt+Tab切换到外部其它窗口或切换回WINDOWS环境。打开Word

或记事本文件选择粘贴即可把DOS窗口全部操作内容复制出来,再用学号+姓名+实验号作为文件名(例如:7110501张三sy1.doc)保存到文件中即可。

4. 用外部命令EDIT和DEBUG查看编辑、修改调试和生成文件。(作为拓展内容可选学)。

① 讨论文本类型文件,着重在ASCII码及汉字编码的机内码存储表示。 >edit abc1.txt (用标准ASCII文本编辑程序打开abc1.txt

>notepad abc1.txt

(用普通文本编辑器“记事本”程序打开作对比

>debug abc1.txt

(用DEBUG调试程序打开abc1.txt作对比观察

D命令显示数据内容,减号是DEBUG操作命令提示符 内存地址:左侧为段地址右侧为偏移地址(2字节16位编址范围64K) DEBUG程序单字命令功能格式说明:左侧为功能名,右侧单字母处为格式 -d 1378:0100 31 09 32 09 33 09 34 09-35 0D 0A 01 02 0D 0A 7E 1.2.3.4.5......~ ‘A’ 1378:0110 21 40 23 24 25 5E 26 2A-28 29 5F 2B 0D 0A 31 32 !@#$%^&*()_+..12 机内码A1A2为1378:0120 33 34 35 36 37 38 39 30-0D 0A 41 42 43 44 45 46 34567890..ABCDEF 顿号“、”其区位‘a’ 1378:0130 0D 0A 61 62 63 64 65 66-0D 0A CE C4 BC FE C4 BF ..abcdef........ 码0102国标码1378:0140 C2 BC D7 D6 BD DA 0D 0A-A1 A2 A1 A3 B0 A1 B0 A2 ................ 8182。机内码1378:0150 0D 0A 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ B0A1为“啊”其区位码1601国1378:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 标码3081 1378:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -? D7D6字 BDDA节 assemble A [address] 文本各字节(字符)正文显示区文本各字节对应的16进制编码,compare C range address (西文版不能显示汉字,可通每行显示16个字节,每个字节用过修改DEBUG.EXE来纠正) 2位16进制表示(连续两个字节dump D [range] 均在A1~FE间即为1个汉字) enter E address [list] ‘1’ Tab制表鍵 0D回车0A换行 01Ctrl+A, 02 Ctrl+B A1A2、A1A3。B0A1啊B0A2阿 E命令从150处开始逐个字节编辑输入 W命令以新名保存文件 汉字区位码、国标码 、机内码关系 fill F range list

区位码 各加32或20h 国标码 两字节高位置1(即各加128或80h) 机内码 go G [=address] [addresses] 0101~9494 ------------> 2121~7E7E --------------------------------------> A1A1~FEFE (十进制) (十六进制) (十六进制) hex H value1 value2 0101~5E5E (十六进制) input I port

load L [address] [drive] [firstsector] [number] move M range address name N [pathname] [arglist] 国标码变成机内区位码变成国标码使汉字各字节码使汉字各字节output O port byte

从21~7E变到从01~5E变到proceed P [=address] [number] A1~FE避免了与21~7E恰好与quit Q 标准ASCII码西ASCII码的可显文字符的直接冲register R [register] 示字符区一致而突 避开控制字符区search S range list

使其具备良好兼trace T [=address] [value] 容性 unassemble U [range]

write W [address] [drive] [firstsector] [number] allocate expanded memory XA [#pages] deallocate expanded memory XD [handle]

map expanded memory pages XM [Lpage] [Ppage] [handle] display expanded memory status XS -r R命令显示寄存器内容 AX=0000 BX=0000 CX=0052 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1378 ES=1378 SS=1378 CS=1378 IP=0100 NV UP EI PL NZ NA PO NC

1378:0100 3109 XOR [BX+DI],CX DS:0000=20CD -e150 1378:0150 0D. 0A. 00.31 00.32 00.41 00.42 00.61 00.62 1378:0158 00.a1 00.a1 00.a1 00.a2 00.a1 00.a3 00.a1 00.a4 1378:0160 00.b0 00.a1 00.b0 00.a2 00.b0 00.a3 00.b0 00.a4 1378:0168 00.b1 00.a1 00.b1 00.a2 00.b1 00.a3 00.b1 00.a4 1378:0170 00.0d 00.0a 00. -rcx 实际从152处开始逐个字节编辑输入:12ABab,从158CX 0052 处开始输入汉字:区位码0101~0104 、。·,1601~1604CX寄存器保存:72 啊阿埃挨1701~1704薄雹保堡,直到171处 abc1.txt原文件大小-rcx 52h,现在增加到72h,故输入72修CX 0072 改当前文件大小 :

-nabc2.txt N命令另起文件-w 新名准备另存 Writing 00072 bytes R命令显示寄存器内容 -r AX=0000 BX=0000 CX=0072 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1378 ES=1378 SS=1378 CS=1378 IP=0100 NV UP EI PL NZ NA PO NC 1378:0100 3109 XOR [BX+DI],CX DS:0000=20CD -d100

1378:0100 31 09 32 09 33 09 34 09-35 0D 0A 01 02 0D 0A 7E 1.2.3.4.5......~

D命令从1378:0110 21 40 23 24 25 5E 26 2A-28 29 5F 2B 0D 0A 31 32 !@#$%^&*()_+..12 100处显示1378:0120 33 34 35 36 37 38 39 30-0D 0A 41 42 43 44 45 46 34567890..ABCDEF 数据内容 1378:0130 0D 0A 61 62 63 64 65 66-0D 0A CE C4 BC FE C4 BF ..abcdef........ 1378:0140 C2 BC D7 D6 BD DA 0D 0A-A1 A2 A1 A3 B0 A1 B0 A2 ................ 1378:0150 0D 0A 31 32 41 42 61 62-A1 A1 A1 A2 A1 A3 A1 A4 ..12ABab........ Q命令退出DEBUG 1378:0160 B0 A1 B0 A2 B0 A3 B0 A4-B1 A1 B1 A2 B1 A3 B1 A4 ................ 1378:0170 0D 0A 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 从152至171增添了新内容:12ABab 、。·,啊阿埃挨薄雹保堡 -q >notepad abc2.txt (用“记事本”程序打开DEBUG新生成文件观察对比

D命令从100处显示数据内容 ② 以DEBUG为工具讨论命令文件类型,着重汇编指令小程序的简单生成,使之对低级语言机器指令的存储表示有所体会,以期进一步深化认识。 >e: (切换e盘成为当前硬盘 >cd d7110501 (进入d7110501 目录 >dir (列查当前目录,注意文件数、目录数、具体文件名和容量 >debug abc1.txt (用DEBUG调试程序打开abc1.txt作素材观察

-d100 1378:0100 31 09 32 09 33 09 34 09-35 0D 0A 01 02 0D 0A 7E 1.2.3.4.5......~ 1378:0110 21 40 23 24 25 5E 26 2A-28 29 5F 2B 0D 0A 31 32 !@#$%^&*()_+..12 1378:0120 33 34 35 36 37 38 39 30-0D 0A 41 42 43 44 45 46 34567890..ABCDEF 1378:0130 0D 0A 61 62 63 64 65 66-0D 0A CE C4 BC FE C4 BF ..abcdef........ 1378:0140 C2 BC D7 D6 BD DA 0D 0A-A1 A2 A1 A3 B0 A1 B0 A2 ................ 1378:0150 0D 0A 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 机内码A1A2为顿号、其区位码1378:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0102国标码1378:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8182。机内码-u100 B0A1为啊其区位码1601国标1378:0100 3109 XOR [BX+DI],CX 码3081 1378:0102 3209 XOR CL,[BX+DI] 1378:0104 3309 XOR CX,[BX+DI] 1378:0106 3409 XOR AL,09 把原来的文本信息对应的内码看作机器语1378:0108 350D0A XOR AX,0A0D 言指令把其反汇编成1378:010B 0102 ADD [BP+SI],AX 汇编语言指令当然构1378:010D 0D0A7E OR AX,7E0A 不成有意义的程序 1378:0110 214023 AND [BX+SI+23],AX U命令从100处开始执行反汇编 把机器语言指令翻译 还原回汇编语言指令 内存地址:左侧为段地址右侧为偏移地址(2字节16位编址范围64K段内地址) 用16进制表示的机器语言指令:短指令只1个字节,长指令有3个字节故指令字长3字节如操作码占1字节则指令空间有256条 D命令从200处显示数据内容,全部是0没放数据 U命令从200处开始执行反汇编 观察0数据对应的汇编语言指令 A命令从200处开始编入一个汇编语言指令程序 8086系列处理1378:0113 2425 AND AL,25 机汇编语言指1378:0115 5E POP SI 令:与左边的机器语言指令1378:0116 26 ES: 是一一对应的 1378:0117 2A28 SUB CH,[BX+SI] 1378:0119 295F2B SUB [BX+2B],BX 1378:011C 0D0A31 OR AX,310A 1378:011F 3233 XOR DH,[BP+DI] -d200 1378:0200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0250 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0260 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -u200 1378:0200 0000 ADD [BX+SI],AL 1378:0202 0000 ADD [BX+SI],AL 1378:0204 0000 ADD [BX+SI],AL 1378:0206 0000 ADD [BX+SI],AL 1378:0208 0000 ADD [BX+SI],AL 1378:020A 0000 ADD [BX+SI],AL 1378:020C 0000 ADD [BX+SI],AL 1378:020E 0000 ADD [BX+SI],AL 1378:0210 0000 ADD [BX+SI],AL 1378:0212 0000 ADD [BX+SI],AL 1378:0214 0000 ADD [BX+SI],AL 1378:0216 0000 ADD [BX+SI],AL 1378:0218 0000 ADD [BX+SI],AL 1378:021A 0000 ADD [BX+SI],AL 1378:021C 0000 ADD [BX+SI],AL 1378:021E 0000 ADD [BX+SI],AL -a200

1378:0200 mov ah,9 用汇编语言简单编一个字符输出程序输出16个‘A’ mov ah,9 ah<=9,设置INT10的9号功能:文本模式下输出字符 1378:0202 mov al,41 mov al,41 al<=41h,al中置入欲输出字符'A'的ASCII码 mov bl,13 bl<=13h,bl中设置好显示颜色属性 1378:0204 mov bl,13 mov cx,10 cx<=10h,cx中设置重复输出次数:连续16个字符'A' 1378:0206 mov cx,10 int 10 执行BIOS的INT10显示中断程序,完成输出 int 20 执行BIOS的INT20中断:结束程序 1378:0209 int 10 1378:020B int 20 1378:020D R命令显示寄存器内容 -r

AX=0000 BX=0000 CX=0072 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=1378 ES=1378 SS=1378 CS=1378 IP=0100 NV UP EI PL NZ NA PO NC

1378:0100 3109 XOR [BX+DI],CX DS:0000=20CD -rip R命令显示修改IP程序指针寄存器内容: 原指针指向初始偏移地址100(原文本数据区) IP 0100 修改指针指向偏移地址200(新编短程序首址) :200 R命令重显示寄存器内容以确认修改成功 -r

A命令从20b处接着编入后续汇编语言指令(先覆盖掉此处原有的最后一条指令INT20)程序 AX=0000 BX=0000 CX=0072 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1378 ES=1378 SS=1378 CS=1378 IP=0200 NV UP EI PL NZ NA PO NC 1378:0200 B409 MOV AH,09 -g G命令从IP指向偏移地址处开始执行指令运行程序 AAAAAAAAAAAAAAAA 程序执行结果:输出了16个‘A’ Program terminated normally -a20b 1378:020B mov ah,e 继续用汇编语言在原有程序尾续编增加输出“Hi!” mov ah,e ah<=e,设置INT10的E号功能:图形模式下输出字符 1378:020D mov al,a mov al,a al<=0ah,al中置入要输出的执行换行功能的换行控制字符 1378:020F mov cx,1 mov cx,1 cx<=01h,cx中设置重复输出次数为1,即不重复 int 10 执行BIOS的INT10显示中断程序,完成换行符输出 1378:0212 int 10 mov al,48 al<=48h,al中置入欲输出字符'H'的ASCII码 int 10 执行BIOS的INT10显示中断程序,完成'H'输出 1378:0214 mov al,48 mov al,69 al<=69h,al中置入欲输出字符'i'的ASCII码 1378:0216 int 10 int 10 执行BIOS的INT10显示中断程序,完成'i'输出 mov al,21 al<=21h,al中置入欲输出符号'!'的ASCII码 1378:0218 mov al,69 int 10 执行BIOS的INT10显示中断程序,完成'!'输出 1378:021A int 10 int 20 执行BIOS的INT20中断:结束程序 1378:021C mov al,21 1378:021E int 10 1378:0220 int 20 1378:0222 -u200 1378:0200 B409 MOV AH,09 1378:0202 B041 MOV AL,41 1378:0204 B313 MOV BL,13 1378:0206 B91000 MOV CX,0010 1378:0209 CD10 INT 10 1378:020B B40E MOV AH,0E 1378:020D B00A MOV AL,0A 1378:020F B90100 MOV CX,0001 1378:0212 CD10 INT 10 1378:0214 B048 MOV AL,48 1378:0216 CD10 INT 10 1378:0218 B069 MOV AL,69 1378:021A CD10 INT 10 1378:021C B021 MOV AL,21 1378:021E CD10 INT 10 G命令从IP指向偏移地址处开始执行指令运行程序 -g

AAAAAAAAAAAAAAAA Hi! Program terminated normally 程序执行结果:输出了16个‘A’,换一行接着输出“Hi!” U命令从200处开始执行反汇编显示程序指令,仔细核对检查有无错误 D命令从200处开始显示指令区域的16进制内容 -d200

1378:0200 B4 09 B0 41 B3 13 B9 10-00 CD 10 B4 0E B0 0A B9 ...A............ 1378:0210 01 00 CD 10 B0 48 CD 10-B0 69 CD 10 B0 21 CD 10 .....H...i...!.. 1378:0220 CD 20 00 00 00 00 00 00-00 00 00 00 00 00 00 00 . .............. 1378:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0250 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0260 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 1378:0270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -rcx CX寄存器保存的是abc1.txt原文件大小72h,现在W命令希望把放在200~221处的22h个字节的小程序单独存以新名CX 0072 成为一个命令文件以便以后可以脱离DEBUG直接从200开:22 运行该程序,故改72为22为保存新文件作好准备 始保存-nprt_hi.com 文件 -w200 N命令起好文件新名准备另存 Writing 00022 bytes -q Q命令退E:\\d7110501>dir (列查当前目录,注意文件数、目录数、具体文件名和容量 出DEBUG Volume in drive E is MEDIA Volume Serial Number is C352-49C7

Directory of E:\\d7110501

2011-10-21 07:46

. 2011-10-21 07:46 ..

2011-03-30 00:59 83 ftnstat.stat 2011-10-21 08:02 61 abc.txt 2011-10-21 10:48 42,362 dos.txt 2011-10-21 08:20 82 abc1.txt 2011-10-21 08:47 114 ABC2.TXT 2011-10-21 11:00 34 PRT_HI.COM 6 File(s) 42,736 bytes

2 Dir(s) 60,789,489,664 bytes free

E:\\d7110501>prt_hi (在DOS提示符后直接输入新程序文件名让其运行观察效果 AAAAAAAAAAAAAAAA Hi!

E:\\d7110501>debug prt_hi.com -d

13C4:0100 B4 09 B0 41 B3 13 B9 10-00 CD 10 B4 0E B0 0A B9 ...A............ 13C4:0110 01 00 CD 10 B0 48 CD 10-B0 69 CD 10 B0 21 CD 10 .....H...i...!.. 13C4:0120 CD 20 00 00 00 00 00 00-00 00 00 00 00 00 00 00 . .............. 13C4:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13C4:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -u

13C4:0100 B409 MOV AH,09 13C4:0102 B041 MOV AL,41 13C4:0104 B313 MOV BL,13 13C4:0106 B91000 MOV CX,0010 13C4:0109 CD10 INT 10 13C4:010B B40E MOV AH,0E 13C4:010D B00A MOV AL,0A 13C4:010F B90100 MOV CX,0001 13C4:0112 CD10 INT 10 13C4:0114 B048 MOV AL,48 13C4:0116 CD10 INT 10 13C4:0118 B069 MOV AL,69 13C4:011A CD10 INT 10 13C4:011C B021 MOV AL,21 13C4:011E CD10 INT 10 -a114

13C4:0114 mov al,b0 13C4:0116 -a118

13C4:0118 mov al,a1 13C4:011A -u100

13C4:0100 B409 MOV AH,09 13C4:0102 B041 MOV AL,41 13C4:0104 B313 MOV BL,13 13C4:0106 B91000 MOV CX,0010 13C4:0109 CD10 INT 10 13C4:010B B40E MOV AH,0E 13C4:010D B00A MOV AL,0A 13C4:010F B90100 MOV CX,0001 13C4:0112 CD10 INT 10 13C4:0114 B0B0 MOV AL,B0 13C4:0116 CD10 INT 10 13C4:0118 B0A1 MOV AL,A1 13C4:011A CD10 INT 10 13C4:011C B021 MOV AL,21 13C4:011E CD10 INT 10 -rip IP 0100 :

用A命令输入指令将原来送’H’改为送’啊’内码的前一字节b0h 用A命令输入指令将原来送’i’改为送’啊’内码的后一字节a1h W命令以新名保存文件 -g

AAAAAAAAAAAAAAAA “啊”没能正确显示,DOS窗口汉字显示仍有些障碍估计显示模式不对 ?í! Program terminated normally -nprt_!.com N命令另起文件-rcx 新名准备另存 CX 0022 : -w Writing 00022 bytes -q E:\\d7110501>dir Volume in drive E is MEDIA Volume Serial Number is C352-49C7

Directory of E:\\d7110501

2011-10-21 07:46

. 2011-10-21 07:46 ..

2011-03-30 00:59 83 ftnstat.stat 2011-10-21 08:02 61 abc.txt 2011-10-21 11:12 45,711 dos.txt 2011-10-21 08:20 82 abc1.txt 2011-10-21 08:47 114 ABC2.TXT 2011-10-21 11:00 34 PRT_HI.COM 2011-10-21 11:11 34 PRT_T_!.COM 7 File(s) 46,119 bytes

2 Dir(s) 60,789,456,896 bytes free

E:\\d7110501>prt_t_! (在DOS提示符后直接输入新程序文件名让其运行观察效果 AAAAAAAAAAAAAAAA 在直接运行命令程序状态下,“啊”仍没能正确显示,?í! DOS窗口汉字显示仍有些障碍估计显示模式不对 E:\\d7110501> E:\\d7110501>debug prt_hi.com -u

13C4:0100 B409 MOV AH,09 13C4:0102 B041 MOV AL,41 13C4:0104 B313 MOV BL,13 13C4:0106 B91000 MOV CX,0010 13C4:0109 CD10 INT 10 13C4:010B B40E MOV AH,0E 13C4:010D B00A MOV AL,0A 13C4:010F B90100 MOV CX,0001

W命令以新名从100开始保存文件 13C4:0112 CD10 INT 10 13C4:0114 B048 MOV AL,48 13C4:0116 CD10 INT 10 13C4:0118 B069 MOV AL,69 13C4:011A CD10 INT 10 13C4:011C B021 MOV AL,21 13C4:011E CD10 INT 10 -a100

13C4:0100 mov dl,3 用汇编语言编程实现“3+5=8”最后输出结果“8” 13C4:0102 add dl,5 mov dl,3 dl<=3,即把3送入DL寄存器 add dl,5 dl<=dl+5,即DL寄存器内容(3)+5结果仍送入DL寄存器 13C4:0105 add dl,30 add dl,30 dl<=dl+30,即DL寄存器内容(8)+30得到38(‘8’的ASCII值) 13C4:0108 mov ah,9 mov ah,9 ah<=9,设置INT10的9号功能:文本模式下输出字符 mov al,dl al<=dl,al中置入欲输出字符'8'的ASCII码38h 13C4:010A mov al,dl mov bl,13 bl<=13h,bl中设置好显示颜色属性 13C4:010C mov bl,13 mov cx,1 cx<=1,cx中设置重复输出次数为1:非重复输出 int 10 执行BIOS的INT10显示中断程序,完成'i'输出 13C4:010E mov cx,1 int 20 执行BIOS的INT20中断:结束程序 13C4:0111 int 10 13C4:0113 int 20 13C4:0115 -d100

13C4:0100 B2 03 80 C2 05 80 C2 30-B4 09 88 D0 B3 13 B9 01 .......0........ 13C4:0110 00 CD 10 CD 20 48 CD 10-B0 69 CD 10 B0 21 CD 10 .... H...i...!.. 13C4:0120 CD 20 00 00 00 00 00 00-00 00 00 00 00 00 00 00 . .............. 13C4:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 13C4:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -rcx CX寄存器保存的是prt_hi.com原文件大小22h,现在在原位置100处已经新编了一个15h个字节CX 0022 的小程序要单独再存成为一个命令文件,故改22:15

为15为保存新文件作好准备 -nprt3add5.com -w N命令起好文件新名准备另存 Writing 00015 bytes -q Q命令退出DEBUG E:\\d7110501>dir Volume in drive E is MEDIA Volume Serial Number is C352-49C7

Directory of E:\\d7110501

2011-10-21 07:46

. 2011-10-21 07:46 ..

2011-03-30 00:59 83 ftnstat.stat

2011-10-21 08:02 61 abc.txt 2011-10-21 11:43 47,166 dos.txt 2011-10-21 08:20 82 abc1.txt 2011-10-21 08:47 114 ABC2.TXT 2011-10-21 11:00 34 PRT_HI.COM 2011-10-21 11:11 34 PRT_T_!.COM 2011-10-21 11:46 21 PRT3ADD5.COM 8 File(s) 47,595 bytes

2 Dir(s) 60,789,424,128 bytes free

E:\\d7110501>

E:\\d7110501>prt3add5 8 E:\\d7110501>

(Lin xiaoyuan)

(在DOS提示符后直接输入新程序文件名让其运行观察效果

因篇幅问题不能全部显示,请点此查看更多更全内容

Top