8086虚拟环境安装流程+DEBUG使用方法
[微机原理与接口技术课件]实验一DEBUG软件的使用
![[微机原理与接口技术课件]实验一DEBUG软件的使用](https://img.taocdn.com/s3/m/f4f03ee09f3143323968011ca300a6c30c22f1c6.png)
实 验 一 DEBUG 软 件 的 使 用是专为8086/8088汇编语言设计的一种调试工具,是汇编语言程序设计者必须掌握的工具。
具有显示、修改、动态跟踪等功能。
使用它可以对*.COM 、*.EXE文件进行动态跟踪。
DEBUG可以显示和修改内存与寄存器内容,以便在调试中检查程序,查找与改错;亦支持小汇编,直接对小段程序进行汇编;也可对磁盘进行读写。
一、实验目的1.通过实验掌握DEBUG软件的基本使用方法。
2.进一步熟悉、理解8088/8086的寻址方式。
3.掌握数据传送、算术运算、逻辑运算等类指令的基本操作。
二、实验内容与步骤本实验进行前必须保证系统盘上有DEBUG.EXE文件。
进入DEBUG只需在DOS环境下执行 DEBUG命令,即键入DEBUG回车后,屏幕上显示 DEBUG提示符:“_”(短划线)。
操作如下:C:>DEBUG-注: 字符下有下划线的为键入的内容,\代表回车,后面内容均如此.1.程序输入汇编命令(A命令)在输入程序应注意以下几点:(1)输入的数字必须是十六进制数,并且不输入H。
(2)分号后面的内容(注释)不要输入。
(3)不输入标号,条件转移指令中的标号用偏移地址代替。
方法:先用一个离本转移指令的IP不远的但不一定准确的偏移地址代替标号 ,待程序输入且完成反汇编后获得标号所在处的准确的偏移地址时再修改。
在DEBUG提示符下键入A即进入汇编输入状态-A \键入下面的汇编程序13F2:0100 MOV AX,200013F2:0103 MOV DS,AX13F2:0105 MOV SS,AX13F2:0107 MOV BX,205013F2:010A MOV SI,BX13F2:010C MOV DI,305013F2:010F MOV SI,DI13F2:0111 MOV SP,5FFF13F2:0114 MOV CL,1913F2:0116 MOV BL,CL13F2:0118 MOV AH,F013F2:011A MOV CH,AH13F2:011C MOV BYTE PTR [DI],4013F2:011F MOV WORD PTR [SI],010013F2:0123 MOV DL,[SI+01]13F2:0126 MOV DH,[SI+01]13F2:0129 MOV AL,[SI+01]13F2:012C MOV WORD PTR [BX+SI],0022 13F2:0130 MOV [BX+SI+02],BX13F2:0133 MOV [BX+SI+02],BX13F2:0136 MOV BP,[BX+DI+02]13F2:0139 MOV [BX+DI],BX13F2:013B MOV AX,[BP+DI]13F2:013D MOV BL,AL13F2:013F MOV ES,BX13F2:0141 PUSH BX13F2:0142 PUSH DI13F2:0143 PUSH DI13F2:0144 POP CX13F2:0145 POP DX13F2:0146 XCHG BP,AX13F2:0147 XCHG DH,BL13F2:0149 SAHF13F2:014A CMC13F2:014B LAHF13F2:014C STD13F2:014D CLI13F2:014E PUSHF13F2:014F CLD13F2:0150 POPF13F2:0151 INT2113F2:0153 ^C重新回到DEBUG提示符“-”状态,表示汇编命令已结束。
实验3.1调试工具Debug的使用及基本指令的用法

32位微机原理与接口技术实验报告
姓名王学杰专业计算机应用技术班级1362班
课程32位微机原理实验项目调试工具Debug的使用及基本指令用法
【实验目的】
①掌握Debug调试工具的的使用方法
②调试8086的各种指令用法
【实验设备】
PC机一台或者QTH-2008PC实验设备一套
【实验内容】
⑴ Debug的使用
①Debug的进入和退出
在DOS提示符下键入:DEBUG ↙(表示回车)Debug执行,屏幕显示提示符“-”,说明计算机当前处于DEBUG的管理之下,可接受、并执行DEBUG令。
② 修改CPU 内部的各寄存器 观察各寄存器的内容
显示并修改AX的内容
将AX的内容改为1234H
显示并修改标志寄存器的内容
将标志寄存器的OF置为OV:DF置为DN
③观察和修改内存单元的内容
④输入程序
⑤单步执行程序
⑥反汇编程序
⑦执行一段程序。
微机实验一熟悉8086指令编程方法及用DEBUG调试程序的方法

实验一熟悉8086指令编程方法及用DEBUG调试程序的方法一.实验目的1.掌握用DEBUG调试汇编程序的方法2.学习8086微处理器的加法运算,传送等指令的用法二.实验内容1.学会如何在DEBUG中建立,查看,调试,修改和运行汇编语言程序的全过程2.学会在DEBUG环境下调试自己编制的程序三.编制程序1.编制两个存放在寄存器中的32位二进制数相加程序2.编制两个存放在寄存器中的4位十进制数(BCD码)相加程序3.编制两个存放在内存中的32位二进制数相加程序四.实验步骤编制程序1:设一个32位二进制数的低16位放在AX,高16位放在CX中;另一个32位二进制数的低16位放在BX,高16位放在DX中,最后的结果存在CX,AX中,若还有进位位则存放在在SI中ADD AX,BX 将两个数的低16位相加,进位存到CF中ADC CX,DX 将两个数的高16位与CF相加,进位存到CF中MOV SI,0 将SI清零ADC SI,0 将进位位存至SIHLT给AX,BX,CX,DX分别赋值分步测试:给AX,BX,CX,DX重新赋值用G命令设置断点并运行:编制程序2:设一个4位十进制数(BCD码)低2位存在AL,高2位存在AH中;另一个4位十进制数(BCD码)低2位存在BL,高2位存在BH中,最后的结果存在AX中,若还有进位则存放在CX中ADD AL,BL 将两个数的低2位(即BCD码8位)相加,进位存到CF中DAA 对AL中的数进行调整,将16进制转换成10进制MOV DL,AL 将AL中的数存储到DL中MOV AL,AH 将第一个数的高2位存储到AL中ADC AL,BH 将两个数的高2位与低2位的进位CF相加,进位存至CF中DAA 对AL中的数进行调整,将16进制转换成10进制MOV CX,O 对CX清零ADC CX,0 将进位存至CX中MOV AH,AL 调整结果顺序MOV AL,DLHLT给AX,BX,CX,DX赋值编制程序3:与第一个程序原理相似,但数据初始存在内存中,不能直接调用,先转移到寄存器中。
Debug使用进阶及80X86汇编初步

实验一:Debug使用进阶及80X86汇编初步实验目的:1、通过本次实验熟悉debug工具的使用及DOS系统功能调用。
2、掌握debug编程基本语言,并运用之实现求一些毫无规律任意数的平方和实验仪器:PC机实验内容:课堂上曾书写一个求12+22+……+102的示例程序(见后面附录),请改写该程序,实现求一些毫无规律的任意数的平方和。
将这些数定义在内存中,假设这些数据都是字节型的非零无符号数(即1~255),请选用合适的Debug命令定义它们,约定数据值0作为结束标记。
要求:将结果放在数据寄存器中,请编写程序,并设计实验过程(用合适的debug命令),验证程序执行的正确性;若结果要求存放在内存中,请编写程序,并设计实验过程(用合适的debug命令),验证程序执行的正确性;注:编写程序和定义初始数据、查看程序运行结果都在Debug下直接进行。
每次运行程序时请改变这些平方和数据的值以及数据元素个数,以多方验证程序正确性。
实验提示:程序中需要用到寄存器间接寻址方式,示例语句:MOV SI, 0200;MOV BL, [SI]附:课堂上的示例程序实验步骤:1、启动debug程序鼠标单击“开始->程序->附件->命令提示符”,打开DOS(其实虚拟DOS)窗口,出现命令提示符键入debug并回车,出现debug程序的提示符,一个短杆。
2、在界面内输入如下指令:AMOV DX,0000 将寄存器DX赋值为0MOV SI,0200 将SI赋为0200地址MOV BL,[SI] 将SI地址的值赋给BLCMP BL,00 比较BL 与0的值JZ 0116 当BL值为0时跳转至0116即程序终止MOV AL,BL BL赋给ALMUL BL 做乘方运算ADD DX,AX 把AX的值与DX值相加并传到DX中INC SI SI的值加1JMP 0106 跳至0106进行循环INT 20 结束程序3、对地址的内容赋值如下:E 0200 1 2 3 4 5 0说明:0为中断值,当BL得值为0时程序终止,对SI地址中的值可以任意赋,以达到求一些毫无规律的任意数的平方和。
8086汇编语言上机调试步骤.

8086汇编语言上机调试步骤1、在网络课堂-微机原理与接口技术-实验指导-汇编工具下载,下载汇编工具并解压,文件夹名为“masm”。
2、用鼠标点击“masm”文件夹。
进入该文件夹后将看到 MASM.EXE,LINK.EXE , DEBUG.EXE3个文件进行复制操作。
3、用鼠标点击“我的电脑”再点击D: 盘,并在 D: 盘上建立新的“ MASM”文件夹,最后将上面的3个文件全部复制到该文件夹中。
(注意实验所有的文件都放在该文件夹内4、用文本编辑软件UltraEdit-32、WINDOWS 中的记事本或其它的文本编辑器输入汇编语言程序, 注意在最后一行的 END输入完后要按一次回车键,保存的源文件的扩展各一定要是“.asm”如: example.asm 。
(建议用记事本输入源程序,另存时,保持类型选择“所有文件”如图所示5、进入MS-DOS方式 ( 从开始>程序>附件>命令提示符或者(从程序 > 运行输入“cmd”回车,进入MS-DOS环境。
6、进入D:>MASM文件夹7、显示MASM文件夹内所有文件“dir”命令8、在 DOS 提示符下进行汇编、连接、动态调试等操作。
例如: 对源文件 example.asm 进行的操作D:\MASM\MASM example.asm;汇编源程序操作D:\MASM\LINK example.dbj;连接并生成扩展名为 .EXE 的可执行文件D:\MASM\DEBUG example.exe;对可执行文件进行调试9、要求掌握的调试命令(在 DEBUG 中使用的命令a: U - 反汇编命令用法: -U 代码段地址:起始偏移地址如:-U CS:100b: D - 显示内存中的数据命令用法: -D 数据段地址:存放数据的偏移地址如:-D DS:00 20c: T - 单步执行程序命令用法: -T 要执行的指令条数如:-T 3d: G - 连续执行程序命令用法: -G=代码段地址:指令的起始偏移地址指令的结束偏移地址如: -G=CS:100 106注意: 结束地址一定要是操作码的所在地址e: R - 查看和修改寄存器数据命令用法: -R 回车如:-R AXf: F - 对内存单元填充数据命令用法: -F 数据段地址:偏移首地址偏移未地址填入的数据如: -F DS:100 120 ffg: Q - 退出”DEBUG“应用程序命令10、应用例子;二进制到BCD转换(a.asm;将给定的一个二进制数,转换成二十进制(BCD码DATA SEGMENT RESULT DB 3 DUP(?DATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AX, 123MOV CL, 100DIV CLMOV RESULT, AL ; 除以 100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT+1, AL ; 余数除以 10, 得十位数MOV RESULT+2, AH ; 余数为个位数JMP $ CODE ENDSEND START汇编源程序操作:D:\MASM>MASM a.asm ;D:\MASM>LINK a.OBJ;对可执行文件进行调试的操作:D:\MASM>DEBUG A.EXE--U CS:0000 ;用反汇编命令”U 代码段地址:起始偏移地址“显示出程序的表示符执行程序前观察内存中的数据-D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据-G=CS:0000 001E ;连续执行程序命令代码段地址:指令的起始偏移地址指令的结束偏移地址执行程序后观察内存中的数据(结果-D DS:0000 ; 用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据-R IP 修改IP寄存器中的数据IP 001E 显示修改前的数据:00 输入修改的数据-T ;单步执行程序命令(执行一条指令-T3 ;执行3条指令-R -R AX AX 007B :1111 -R ;查看寄存器数据命令;查看和修改寄存器数据命令;查看寄存器数据命令 -D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址” 显示内存中的数据 -F 数据段地址:偏移首地址偏移未地址填入的数据 -F DS:0000 0030 DF ;对内存单元填充数据 -D DS:00 ;观察内存中的数据-Q ;退出”DEBUG“ 应用程序命令。
Debug安装使用教程

启动DebugWin7 32位&xp可以点开始→运行→输入cmd→输入debug没找到运行的可以同时按键盘上的WIN图标键+R启动运行输入debug 回车Win7 64位&win8&win10网上下载DOSbox及Debug文件我已经上传群里了把Debug文件放在D盘根目录下,不要放文件夹里而DOSbox直接安装虽然写的是win7 32位但是win8 win7 64位也可以用如果你懂DOS怎么打开文件,那你可以直接关闭这个文档了安装后点运行软件有2个窗口,上面的那个窗口别管他,是一个虚拟运行程序然后依次输入Mount c d:\ 回车(注意/ \别搞错了)C:回车Debug 回车Debug教程看的懂英语的同学可以直接输入?就可以打开帮助,里面有debug所有的命令? 显示Debug 命令。
a 输入并汇编8086/8087/8088 汇编源程序。
c 比较内存的两个部分。
d 显示内存单元的内容。
e 从指定地址开始,修改内存的内容。
f 使用指定值填充一段内存。
g 连续运行在内存中的机器指令程序。
h 执行十六进制运算。
i 显示来自特定端口的1 字节值。
l 将文件或磁盘扇区内容加载到内存。
m 复制内存块中的内容n 为l 或w 命令指定文件,或者指定正在测试的文件的参数。
o 向输出端口发送1 个字节的值。
p 执行循环、重复的字符串指令、软件中断或子例程。
q 退出Debug。
r 显示或改变一个或多个寄存器内容。
s 在部分内存中搜索一个或多个字节值的模式。
t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和Debug 下一步要执行的指令的解码形式。
u 反汇编机器指令成汇编指令并显示相应的源程序指令。
w 将被测试文件写入磁盘。
xa 分配扩展内存。
xd 释放扩展内存。
xm 映射扩展内存页。
xs 显示扩展内存的状态。
我依次解释一下每个命令的意义和用法A命令输入A后回车即可进入汇编模式前面是逻辑地址,可直接在后面输入汇编命令注意:输入的命令中不能带16进制符号H,debug默认为16进制退出汇编模式直接按回车如果A后面带有地址就会在地址处开始汇编可输入:a073F:0000a0000a000a00a0这几个都是一个意思,系统会自动识别的如果不加地址,就会接着上次汇编后面继续开始C命令C命令是将2块内存的内容进行比较如这条信息的内容就是C 起始地址(073F:0100)终止地址(073F:0140)对比的地址(073F:0130)逻辑地址可省略高位0和DS地址2块长度一样,对比地址只用写出起始端就是把100到140的数据逐个和130到170的数据进行对比找出不一样的数据一样的数据不会列出来,列出来的都是不一样的数据或者这样输C 起始地址(073F:0100)长度(L10)对比段的起始地址(073F:0130)含义是一样的D命令显示内存中的数据D命令默认看8*16=128个数据,每一行开始是前面标的地址,然后依次加一如第一行073F:0100的数据是B0,073F:0101的数据是20,073F:010F的数据是00 还可以这样输D 起始地址0 终止地址3 然后显示储存在073F:0000到073F:0003的4个数据或者这样D 起始地址073F:0000 长度L100 就显示073F:0000后100个内存单元内的数据接着是E命令E命令和D命令是一起用的如是修改内存中073F:0100 即途中圈住的那个位置的数据,直接在点后输入你想改的参数就可以修改,如果不想修改,按回车退出073F:0100处的数据被修改了F命令使指定的数据值存入指定的为之中,如Error可以忽略了>_<!可以看到F 起始地址100 终止地址103 数据21 22 23 24然后内存中相应位置的数据就被更改了G命令用DOSbox运行debug的同学切记不要用这条命令,会死机的用CMD运行的可以无视上面那句话G命令是执行命令即执行你指定地址段的汇编程序运行如先编汇编程序从a100开始编然后g=100就是从100开始执行程序,一直到执行完连着的所有程序,即程序断点下面那句话是说程序已经执行完了如果输入g=100 10b 则只执行100到10b之间的程序,由于是断点形式,下面默认会打出执行完10b之后的个寄存器数据状态H命令计算两个十六进制数的和与差如前面的是和后面的是差I命令从计算机输入端口读取数据并显示如从3F8号端口读取数据并显示的命令为:I 3F8M命令将指定内存区域的数据复制到指定的地址去如M 起始地址100 终止地址13F 目标地址140 即把100到13F的数据复制到140以后N命令和W命令N设置文件名,为将刚才编写的汇编程序存盘做准备W 将刚刚编写的汇编程序存盘N 路径W 直接写由于我是用DOSbox运行的debug,没用设置磁盘,所以储存时找不到磁盘,不过用WIN7 32位和XP直接运行的不会出现这行字L命令从磁盘中将文件或扇区内容读入内存同样的原因找不到磁盘,如果找到了会在之后的内存中直接加载刚刚存的文件O命令向计算机输出端口送出数据如向90号端口发出数据20H:o 90 20T命令执行汇编程序,单步跟踪。
熟悉emu8086汇编语言调试环境实验报告

熟悉emu8086汇编语言调试环境实验报告=======================1. 实验目的-------本次实验的主要目的是熟悉并掌握emu8086汇编语言调试环境的使用,了解汇编语言的基本原理和编程方法,提升对计算机硬件和程序运行的理解。
2. 实验原理-------emu8086是一款用于学习和实验的8086微处理器模拟器。
它提供了一个集成开发环境(IDE),可以在此环境中编写、编译、调试和运行8086汇编语言程序。
3. 实验步骤-------以下是我们进行实验的具体步骤:步骤一:安装emu8086模拟器。
从官方网站下载并安装emu8086模拟器,确保正确安装并能够正常运行。
步骤二:打开模拟器并创建一个新项目。
在模拟器的IDE中,选择“文件”->“新建”->“项目”,然后为项目命名并选择存储位置。
步骤三:编写汇编语言程序。
在项目中创建一个新的汇编文件,使用8086汇编语言编写一个简单的程序。
例如,可以编写一个程序来输出“Hello, World!”到屏幕上。
步骤四:编译程序。
在模拟器的IDE中,选择“编译”->“编译全部”,将汇编文件编译成机器码。
步骤五:运行程序。
在模拟器的IDE中,选择“运行”->“运行”,或者直接按下F9键,来运行程序。
步骤六:调试程序。
如果程序运行出现问题,可以使用emu8086的调试功能来查找和修复错误。
在模拟器的IDE中,选择“调试”->“开始调试”,然后使用调试工具来检查程序的状态、寄存器和内存。
4. 实验结果-------通过本次实验,我们成功地编写、编译、运行并调试了一个简单的8086汇编语言程序。
我们实现了在屏幕上输出“Hello, World!”的目标,并且深入了解了emu8086模拟器的使用方法和8086汇编语言的编程技巧。
5. 实验分析-------通过本次实验,我们深入了解了8086汇编语言的编程方法和计算机硬件的基本原理。
实验一 Debug和Emu8086软件的使用

实验一Debug和Emu8086软件的使用一、实验目的:(1)熟悉Debug软件和汇编语言开发环境。
(2)掌握Emu8086软件使用方法。
(3)了解汇编语言的程序结构、调试一个简单的程序。
(4)理解寻址方式的意义。
二、实验内容及要求:1、Debug的使用根据课本104页的实验1中的预备知识的说明,学习使用Debug软件。
编程实现:在显示器上显示字符串Welcome to TianHe college!两个64位无符号数相加2、Emu8086的使用(1)打开桌面上的Emu8086的图标,出现如图所示的对话框,选择【继续……】首次打开软件,界面中默认已有一段小程序。
该程序实现在屏幕上显示三段字符串的功能。
若用户需要自己重新编程,可点击工具栏的【new】图标,出现如图所示的对话框,选择编程所采用的模板。
选择不同的模板,在程序源代码中会出现如下标记:#MAKE_COM# 选择COM模板#MAKE_BIN# 选择BIN模板#MAKE_EXE# 选择EXE模板#MAKE_BOOT# 选择BOOT模板#MAKE_COM#最古老的一个最简单的可执行文件格式。
采用此格式,源代码应该在100H后加载(即:源代码之前应有ORG 100H)。
从文件的第一个字节开始执行。
支持DOS和Windows命令提示符。
#MAKE_EXE#一种更先进的可执行文件格式。
源程序代码的规模不限,源代码的分段也不限,但程序中必须包含堆栈段的定义。
您可以选择从新建菜单中的EXE模板创建一个简单的EXE程序,有明确的数据段,堆栈段和代码段的定义。
程序员在源代码中定义程序的入口点(即开始执行的位置),该格式支持DOS和Windows命令提示符。
这两种模板是最常用的模板(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面,如图所示:在源代码编辑器的空白区域,编写如下一段小程序:DATAS SEGMENTSTRING DB 'Welcome to TianHe college!', 0AH,0DH,'$'DATAS ENDSCODES SEGMENTASSUME CS:CODE,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,STRINGMOV AH,9INT 21HMOV AH,4CHINT 21HCODES ENDSEND START代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
03
MS-DOS——搭建DOS编译环境
11、重启后依旧是按回车进入安装程序,前面的选项几 乎一样,依旧是一路“Next”。
03
MS-DOS——搭建DOS编译环境
12、不选择“Install Add-Ons”(在选项上按空格即 可取消选择),“Next”;
03
MS-DOS——搭建DOS编译环境
13、安装完的三步均选“Yes”
05
DEBUG——组件使用功能简述
4、显示和修改寄存器内容的命令R (Register) 2)显示并修改指定寄存器内容 —R<寄存器名> 显示所指定寄存器的内容,等待键入新的数据。
05
DEBUG——组件使用功能简述
5、反汇编命令U (Unassemble) 1)按给定起始地址反汇编 —U [地址] 该命令从指定的地址开始,反汇编一定字节的指令。 若没有指定地址,则以上一个U命令的最后一条指令的地址的 下一单元作为反汇编起始地址。 2)按给定地址范围反汇编 —U [范围] 该命令对指定范围的内存单元进行反汇编。其中,范围可以由 起始地址和结束地址来指定。
微机原理与接口技术
8086
汇编环境搭建 流程
VMware-workstation MS-DOS 搭建DOS编译环境 MASM 汇编编译器与磁盘映射 DEBUG 组件使用功能简述
03
04 05
01
前期准备
01
前期准备
需要提前下载的工具:
1、VMware-workstation(虚拟机); 2、DOS系统镜像文件(MS-DOS)、 3、汇编编译器masm。
03
MS-DOS——搭建DOS编译环境
8、(1)全部使用默认设置,一路“Next”; (2)最后选择“Reboot now”重启虚拟机;
03
MS-DOS——搭建DOS编译环境
9、(1)重启后会提示invalid system disk,这是BIOS启动 设置的问题,按CTRL+ALT+INSERT重启虚拟机; (2)在开始VMWARE的LOGO处按F2(把握好时间, 多试几次), 进入BIOS设置;
05
DEBUG——组件使用功能简述
2、DEBUG常用命令列表: 按组合键Ctrl+Break可中止正在执行的DEBUG命令,并返回 提示符“—”。
命令符
? Q D
功
能
命令符
F M I
功
能
1 2 3
DEBUG命令列表 退出DEBUG返回DOS 显示内存单元内容
8 9 10
填写内存 内存内容传送 端口输入
03
MS-DOS——搭建DOS编译环境
10、(1)向右键(→)切换到Boot栏,向下键(↓)选择到 CD-ROM Drive(变白即为选中),然后按SHIFT和加号 (+),将其移动到最顶端。; (2)向右键 (→)切换到 Exit栏,选中 “Exit Saving Changes”,保 存设置并重启;
02
安装VMware-workstation
1、打开安装程序,傻瓜式安装即可
02
安装VMware-workstation
2、安装完成后输入注册码,即可完成! 不过还是想说,请支持正版。
02
安装VMware-workstation
完成^_^
03
MS-DOS 搭建DOS编译环境
03
MS-DOS——搭建DOS编译环境
THANK YOU
谢谢聆听!
05
DEBUG——组件使用功能简述
4、显示和修改寄存器内容的命令R (Register) 1)显示各寄存器内容 —R IP指向的是下一指令的偏移地址。上面最后一行中显示出指令 、 其指令机器码“BBAB40”及机器码存放于内存的起始地址 CS:IP=1CD3:0000。
05
DEBUG——组件使用功能简述
标志寄存器各标志位状态符号含义
标志名 置位(为1) OV DN EI NG ZR AC PE CY 复位(为0) NV UP DI PL NZ NA PO NC
溢出overflow(是/否) 方向direction(减/增) 中断interrupt(允许/屏蔽) 符号sign(负/正) 零zero(是/否) 辅助进位auxliary carry(/)(是/否) 奇偶parity(偶/奇) 进位carry(是/否)
3、打开VMware,选择“创建新的虚拟机”,选择 “典型”,下一步
03
MS-DOS——搭建DOS编译环境
4、(1)“稍后安装操作系统”,下一步; (2)在客户机操作系统中选择“其他”,在版本中选 择“MS-DOS”,下一步
03
MS-DOS——搭建DOS编译环境
5、(1)选择虚拟机名和安装位置,下一步; (2)使用默认设置,下一步。完成;
04
MASM——汇编编译器与磁盘映射
17、(1)这时会自动打开该磁盘(如果没打开在我的电脑中 可以找到该磁盘),把masm文件夹复制进去。 (2)返回虚拟机,点击“断开连接”,确定。
04
MASM——汇编编译器与磁盘映射
18、启动虚拟机,测试masm工具是否可用。
完成^_^
05
DEBUG 组件使用功能简述
4
5 6 7
R
U A E
显示和修改寄存器内容
反汇编 汇编 修改内存单元内容
11
12 13 14
O
T P G
端口输出
单步或多步跟踪程序 单步或多步运行程序 连续运行程序
05
DEBUG——组件使用功能简述
3、显示内存单元内容命令D(Dump) : —D[地址或范围] 其中“范围”包括起始地址和结束地址,可以在地址前加段前 缀。 —D 如果是进入DEBUG后初次使用此格式的D命令,则默认CS为 段寄存器。如果前面已经用过D显示命令,则接续前面的地址 显示其后面的128字节单元的内容。 —D 200 默认当前DS为段前缀,显示自DS:200地址开始128字节单元 的内容。 —D ES:100 1FF 显示ES:100到ES:1FF地址范围的内容。
05
DEBUG——组件使用功能简述
1、运行Debug程序的命令格式 DEBUG [<驱动器名>:][<路径>][<文件名>[.<扩展名>]][< 参数1>][<参数2>] < 回车> Eg:C:\DOS>DEBUG A.EXE < 回车> • 进入DEBUG后出现提示符“-”,就表示可以接受DEBUG 命令了。
05
DEBUG——组件使用功能简述
6、汇编命令A (Assemble) —A [地址] 该命令接受输入汇编语言语句,并把它们汇编成机器码从[地 址]开始依次存放。
该命令对于少量汇编语言指令的写入或修改,有时是比较方便 的。
05
DEBUG——组件使用功能简述
7、跟踪命令T(Trace) 该命令不仅可跟踪用户程序的每一条指令,而且可跟踪进入 BIOS/DOS功能调用的中断服务子程序。 1)单步跟踪 —T [=地址] 该命令从指定的地址处执行一条指令后停下来,并显示寄存器 的内容和标志位的状态。若没有指定地址,则执行CS:IP所指 向的一条指令。该命令执行后显示格式与R命令类似。 2)多步跟踪 —T [=地址] [N] 该命令与单步跟踪基本相同,所不同的是该命令在执行了N条 指令后停下来。
03
MS-DOS——搭建DOS编译环境
14、(1)选择“Enable both UMB and EMS”; (2)选择“Load both”;(3)选择“Use default”;
03
MS-DOS——搭建DOS编译环境
15、(1)选择“Continue”; (2)选择“Load both” 。
03
MS-DOS——搭建DOS编译环境
15、(1)在重启之前,按照(6)(7)的步骤进入虚拟机的 “CD/DVD”选项,将连接改为使用物理驱动器; (2)重新启动,完成 。
04
MASM 汇编编译器与磁盘映射
04
MASM——汇编编译器与磁盘映射
16、(1)先关闭DOS,然后右键进入设置,选择“硬盘”, 在右面的“硬盘实用工具中”,点击“映射”。 (2)去掉“以只读模式打开文件”的选择,点击确定。
05
DEBUG——组件使用功能简述
8、其他命令
• 端口输入命令I(Input) —I [端口地址] 从指定端口输入一个字节并显示出来。 • 端口输出命令O(Output) —O [端口地址] [字节] 将[字节]从指定端口输出。 • 运行命令P(Proceed) 该命令与T命令类似,但有区别,它不跟踪进入BIOS/DOS功 能调用的中断服务子程序,不跟踪LOOP类指令后的循环。
说明:
1、VMware可以从北邮人bt找到资源,版本不限, 需要注意10以上的版本只支持64位系统; 2、DOS系统镜像文件(MS-DOS)、汇编编译器masm 可以通过度娘找到资源,由于第二步我用的方法是使用镜 像,所以MS-DOS需要下载ISO格式的。
02
安装 VMwareworkstation
03
MS-DOS——搭建DOS编译环境
6、(1)右键刚刚新建的虚拟机,选择“设置”;
(2)在 “硬件”中 点击 CD/DVD, 在右侧选择 “使用ISO 镜像文件”, 点击浏览找 到下载的 DOS的安 装镜像,选 择,点击打 开,然后确 定。;
03
MS-DOS——搭建DOS编译环境
7、(1)开启虚拟机; (2)出现开始界面按回车进入; 注:鼠标在虚拟 机中操作时,如 果想切换到本身 的操作系统,需 要按 CTRL+ALT