《微机系统操作命令行方式.ppt》由会员分享,可在线阅读,更多相关《微机系统操作命令行方式.ppt(34页珍藏版)》请在三一办公上搜索。
1、微机系统操作命令行方式,实验环境:PC,DOS命令,文件管理(1)Windows下进入命令行方式/常用MS-DOS命令 Windows下利用开始运行(或按Win键+R)输入cmd 或command 或在程序下进入MS-DOS方式(Win2K)或附件下(Win XP)进入命令提示符进入命令行方式。也可将相关命令复制到桌面。可以根据爱好和需要修改MS-DOS方式或命令提示符的相关属性,包括起始(工作)目录(路径)、快捷键(默认CTRL+ALT+D键)、窗口/全屏选项、前景背景颜色等,,命令行快捷方式选择,颜色属性选择,命令行样例模式,典型命令行操作,采用滚屏方式(ScreenUp),典型命令行操作
2、Help,采用滚屏方式(ScreenUp),基础操作命令,常用MS-DOS命令 DIR F:目录名(显示指定盘目录存储文件列表)COPY F:mydir文件名 D:tmpdir(将F:mydir目录下指定文件复制到D盘(指定目录)DEL F:mydir文件名(删除指定文件)MD F:mydir(在A盘上新建mydir子目录)CD F:mydir(指定A盘上mydir为当前工作目录)RD F:mydir(删除A盘上mydir子目录)F:masm4debug(myprog.exe)指定执行系统程序debug.exe 带参数myprog.exe;,实验环境:利用目标代码级调试程序DEBUG主要特点1
3、)能够在最小环境下运行汇编程序(代码级而非符号级)2)提供极简单的修改手段(寄存器、存储器、I/O等)3)提供用户与计算机内部联系的窗口(命令行):显示、修改、单步、过程、断点、文件装入、上装。局限性:不能使用宏指令和大部分伪指令分段调试/短程序;不能形成可执行文件(.EXE)作为典型命令行方式调试工具尤其I O 命令用于硬件测试,利用Debug程序认识指令格式与功能,例:ADD和DAA指令功能测试,插入指令修改环境测试功能结果,命令行调试器DEBUG,启动(MS DOS下在C或D:输入,DEBUG命令为单英文字母,后跟参数。间隔符“,”或空格(1)+(ENTER回车键)后命令才有效;(2)地
4、址/数据用十六进制数表示,不用“H”;(3)Ctrl+Break(C)键可停止命令的执行;(4)PAUSE/CtrlNum Lock键暂停上卷的输出行任意键继续;(5)-?(帮助命令,显示所有命令及格式)(6)Q退出P,DDEBUG d:Pathfilename.extParm1Parm2,命令规定,?-帮助命令,Assemble A addressCompare C range addressDump D rangeEnter E address listFill F range listGo G=address addressesHex H value1 value2Input I por
5、tLoad L address drive firstsectornumberMove M range addressName N pathname arglistOutput O port byteProceed P=address number:,-?,R-命令,RF RXX 检查和修改寄存器内容命令 R显示CPU内部寄存器的内容和全部标志位状态。,-RAX-AX 0000:(XX),-R 16位寄存器名(AX,BX,CX,DX,SI,DI,IP,SP,CS,DS,ES,SS),AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000
6、DI=0000DS=18A1 ES=18A1 SS=1800 CS=18C0 IP=0100 NV UP EI PL NZ NA PO NC18C0:0100 1EPUSH DS,-RF NV UP EI PL NZ NA PO NC(DN PE.),Flags:OV/NV-DN/UP-EI/DI-NG/PL-ZR/NZ-AC/NA-PE/PO-CY/NC 显示和修改一个指定寄定器的内容和标志位的状态。,D 显示内存命令,D地址(默认长度L=80H128个字节,DS,当前地址)(默认DS:)CS:300-D 地址范围 显示指定内存范围的内容。-DES:100L300或 D100 3000-D(
7、128个字节)从上一个D命令所显示的最后一个单元的下一个单元开始(首次CS:IP)偏移地址,段地址为DS的内容,地址范围,可以指定段地址和起始偏移地址和终止偏移地址,或XXXX。-D200 或-DDS:200,1A40:0200 30 20 32 33 34 35 36-37 38 39 F1 F2 A3 A4 F0 0_234567891A40:0210 AA 55,E 修改存储单元内容命令,(默认 DS,当前地址)E 地址 内容表 用命令所给定的内容表去代替指定地址范围的内存单元内容。其中:内容表为一个十六进制数,也可以是用单引号括起的一串字符。-E 地址 逐个单元连续修改单元内容。(空格
8、跳到下一单元,回车修改结束)-E200 AAAAAAA 20 33 4488888(D200 检查)-E200 1A40:0200 41.32 41.41.33,F 块填充内存命令/M 内存移动命令,(默认长度L=80H128个字节,DS,当前地址)F 范围单元内容表 将单元内容表中的内容的内容重复装入内存的指定范围内。-FES:200 L300或500 12456730 40 555555 M 源地址范围目标起始地址 把源地址范围的内容移至以目标起始地址开始的单元中。其中源地址范围和目的起始地址可为偏移地址,段地址默认为DS的内容。-MCS:200L50 ES:800,S 搜索指定内容命令/
9、C 块比较命令,S 地址范围表 在指定地址范围内搜索表中内容,搜索到就列出表中元素所在地址。-SES:200L40 12333 44 55433,C 源地址范围,目标地址 从源地址起始的单元开始逐个比较,比较到源终止地址为止。比较结果如果不一致,则以源地址源内容目的内容目的地址的形式显示结果。-CES:100L300 CS:2000,1A40:2011A40:220,1A80:0105 87 88 1A40:20051A80:0148 33 53 1A40:2148,U 反汇编命令,U 地址范围 将指定范围内的代码以汇编 语言形式显示,同时显示该代码位于内存的地址和机器。(默认段寄存器为CS,
10、以U命令的最后一条指令地址的下一个单元作为起始地址;初值CS:IP,范围长度为20H字节目标代码)-UES:100L200/120,1A40:100 1EPUSH DS1A40:101 A1 00 20MOV AX,20001A40:104 BB 00 20MOV BX,2000:,A 汇编输入命令,A段寄存器名:偏移地址 将汇编语言程序指令逐行直接输入内存单元。(默认段寄存器CS,偏移地址为上次汇编尾地址(初值CS:IP)-ACS:100 或A 1A40:100 或A100设当前CS=1A40H,1A40:0100 MOV AX,100 1A40:0102 MOV BX,20001A40:0
11、106(回车结束汇编输入),H 十六进制数据运算命令,H数据1 数据2(将两十六进制数据相加、减结果显示在屏幕上。,-H 200 8000A00 FA00,T 逐条指令跟踪命令(race into),T地址 单步执行当前指定地址处的指令(默认为CS:IP处),显示CPU所有寄存器内容和全部标志位的状态,以及下一条指令的地址和内容(同执行命令)(默认段寄存器CS,偏移地址为当前IP指定地址(初值CS:100)。,AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18A1 ES=18A1 SS=1800 CS=18C
12、0 IP=0100 NV UP EI PL NZ NA PO NC18C0:0100 1EPUSH DS,-T=CS:100 或T=18C0:100或T=100设当前CS=18C0H,AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000DS=18A1 ES=18A1 SS=1800 CS=18C0 IP=0101 NV UP EI PL NZ NA PO NC18C0:0101 31 C0 XOR AX,AX,T 逐条指令跟踪命令(race into),T地址步数 多条跟踪命令,从指定地址开始;若命令中用地址给定了起始地
13、址,则从起始地址开始,若未给定,则从当前地址(CS:IP)开始,执行命令中的条数决定一共跟踪几条指令后返回DEBUG状态。,AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18A1 ES=18A1 SS=1800 CS=18C0 IP=0100 NV UP EI PL NZ NA PO NC18C0:0100 1EPUSH DS,-T=CS:100 5-T5-T=100 5-T=18C0:100 5,P(Proceed)越过(挂停)命令,P地址值(若干次)(至下一指令前停止)类似SKIP。执行PROC,LOOP
14、,INT 或REP后发一条命令返回到下一指令处。-P=100 3 断点将停在CS:109处,0AD8:0100 E8FE1E CALL 20000AD8:0103 E81A1F CALL 2020 0AD8:0106 E8271F CALL 20300AD8:0109 90 NOP:,-P3-P2-P,G运行断点命令,G 地址地址地址执行用户正在调试的程序,其中地址为执行的起始地址,默认段地址为CS中内容,或当前(CS:IP)。再后面的地址为断点地址。DEBUG规定最多设置10个断点地址。设置多个断点用于调试较大的程序,即程序中有多个模块、多个通路时用,比较方便,在执行时不论走哪条通路,程序都
15、可以在断点处停下来,以便调整程序。,-G=FFFF:0 热启动-G=100 200 热起始CS:100,断点CS:200-G 2000:100 IP地址起到2000:100断点-G=100 2000:100 3000:300 两处断点-G;连续运行 G200 300?,I 端口输入命令/O 输出命令,端口地址 从指定端口地址输入一个字节,-I3F8(COM1数据接收),-I40(时钟计数器),-279(打印机状态口)-278(打印机数据口),O 端口地址,字节值 向指定端口地址输出一个字节,-O3F8 55(COM1数据发送)-O27A 30(LPT1写控制字),N文件命名命令向指定端口地址输
16、出一个字节,文件操作命令N/L/W,N 路径文件名 指定读写操作文件名L 起始装入地址驱动器号起始扇区号所读扇区个数(1)读文件:BX和CX中存放所读文件的字节数(长度BX:CX即8位HEX)。当读入的文件有扩展名.COM或.EXE,则始终装入CS:100H中,命令中指定了地址也没用;(2)读磁盘:把指定驱动器和指定扇区范围的内容读到内存的指定区域中。(默认隐含地址为CS:100H)例:L2000:100 W地址驱动器号起始扇区号所写扇区个数(1)写文件:把指定地址中BX:CX长度的数据中应写入文件(默认段地址为CS)。(2)数据写盘:将调试的程序或数据写入指定的驱动器中。,用途:动态调试80
17、86/8088 目标程序,处理器认识环境检查修改指令认识直接I/O操作(硬件调试)单步调试(可跟踪中断调用)断点调试中断调试跟踪优点:快捷简单,占用资源少缺点:不直观,用途:动态调试8086/8088 目标程序,命令行方式:Debug窗口,26,汇编过程及原理,运行汇编程序必备的软件环境:DOS操作系统;汇编软件系统。汇编系统盘应包含如下文件:,MASM 宏汇编程序文件(TASM)LINK 连接程序文件(TLINK)CREF 索引程序文件(也可不用)EDIT 文本编辑程序(或PE等文本编辑程序),用户通过屏幕编辑程序EDIT(各功能)键入源程序,检查无误,可将源程序存到汇编系统盘上,该程序的扩
18、展名为ASM。(XXX.ASM)(2)MASM汇编程序:格式、宏、模块OBJ:浮动汇编(相对关系)、段、变量待定位,27,汇编链接过程,执行宏汇编程序MASM-生成目标文件.OBJ,辅助文件LST,CRF(可选),用汇编语言编写的源程序必须是一个完整的源程序,才能经过宏汇编程序MASM的汇编,生成一个目标程序。为了完成汇编任务,汇编程序一般采用两遍扫描的方法,第一遍扫描源程序产生符号表、处理伪指令等,第二遍扫描产生机器指令代码、确定数据等。,OBJ将源程序的操作码部分变为机器码,但地址操作数是可浮动的相对地址,而不是实际地址,因此需经LINK连接文件进行连接才能形成可执行文件。LST是列表文件
19、把源程序和目标程序列表,以供检查程序用。CRF是交叉索引文件,对源程序所用的各种符号进行前后对照的文件,28,汇编链接操作过程,C:masmmasm MYFILE.asm,mobj,mlst,mcrf;,Microsoft(R)Macro Assemble Version 5.00Copyright(C)Microsoft Corp 1981-1985,1987,All right reserved.Source filename.ASM:MYFILE Object filename MYFILE.OBJ:MYFILE Source listing NUL.LST:MYFILE Cross-r
20、eference NUL.CRF:MYFILE 50678410090 Bytes symbol space free 0 Warning Errors 0 Severe Errors,MASM/R MASM/E-8087实模式仿真库方式,29,LINK 多模块链接,用汇编语言编写的源程序经过汇编程序(MASM)汇编后产生了目标程序(.OBJ),该文件是将源程序操作码部分变成了机器码,但地址是可浮动的相对地址(逻辑地址),因此必须经过连接程序LINK连接后才能运行。连接程序LINK是把一个或多个独立的目标程序模块装配成一个可重定位的可执行文件,扩展名为.EXE文件。此外还可以产生一个内存映象文
21、件,扩展名为.MAP。连接程序执行过程:DLINK(直接链接 P1+P2+P3,PEXE,PMAP,LIB1+LIB2;),Microsoft overlay link Version 3.60Copyright Microsoft Corp 1983-1987 All right reservedObject Modules.OBJ:MYFILE Run File MYFILE.EXE:MYFILE List File NUL.MAP:MYFILE;Libraries.LIB:,(LINK/HELP-帮助开关),30,内存映象文件(.MAP),由连接程序LINK产生的扩展名为.MAP文件,它
22、实际上是连接程序的列表文件,它给出了每个段的地址分配情况及长度,(加/M开关外部变量相对地址。例如:DTYPE MYFILE.MAP,Start Stop Length Name Class00000H 0000FH 0010H DATA00010H 0004FH 0040H STACK00050H 0005FH 0010H CODEOrigin GroupAddress Publics by name0900:0002 mmm0010:0070 VV1Address Publics by value0010:0070 VV10900:0002 mmm Program entry point
23、at 0005:0000,31,交叉索引文件(.CRF),汇编后产生的交叉索引文件,扩展名为.CRF,它列出了源程序中定义的符号(包括:标号、变量等)和程序中引用这些符号的情况。如果要查看这个符号表,必须使用CREF.EXE的文件,它根据.CRF文件建立一个扩展名为.REF的文件,而后再用DOS的TYPE命令显示,就可以看到这个符号使用情况表。具体操作方法如下:DCREF,cref filename.CRF:MYFILE list filename MYFILE.REF:,DTYPE MYFILE.REF,32,执行、目标代码格式比较与调试,.EXE装入后各寄存器(段的分配)、已定义变量(数据
24、)地址,指针变量;.各伪指令的作用;.多模块(PUBLIC/EXTRN)链接;M,8087指令实验。.汇编指令与目标代码指令的差别。.重要DOS/BIOS功能调用(控制台输入输出).不要试图跟踪 DOS/BIOS调用,尽量用断点或过程P命令.注意:高级语言与汇编语言接口,33,调试工具,(1)DEBUG-命令行目标代码调试器(2)CVCodeView Microsoft公司源代码调试器 MASM/Zi myprog;Link/codeview myprog;(3)TDTurbo Debuger Borland公司源代码调试器 TASM/zi myprog;兼容MASM/Zi TLINK/v myprog+;(4)Compuware Co.的NUMEGA Soft-ICE EXE,DLL,OCX,VxD,34,实际操作,MASM T18;MASM T19;LINK T18+T19;TASM/zi T18;TLINK/v T18;TD T18(.exe)F3重复命令行,