ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:124KB ,
资源ID:9266188      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9266188.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《微机原理及应用》实验指导书1129.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《微机原理及应用》实验指导书1129.docx

1、微机原理及应用实验指导书1129微机原理与接口实验指导书实验概述微机原理及应用的实验项目由两大部分组成:软件部分是基于PC的8086汇编程序实验,这一部分的实验不需要使用实验箱,直接在PC机上进行。进行汇编程序实验,需要PC机安装相应的汇编程序软件包,例如microsoft的宏汇编或其它类似汇编软件。通过这一部分的实验使学生掌握汇编程序的编写、汇编、连接与调试过程,同时进行一些基于PC的汇编源程序的编写。在汇编源程序中,可以使用微机的BIOS功能调用与DOS功能调用。硬件部分(略)1、常用MS-DOS命令功能1.1如何切换Win与DOS环境(1) “开始”-“所有程序”-“附件”-“命令提示符

2、”;若要实现全屏显示可设置“命令提示符-属性”-“选项”-“全屏”(2) 在DOS环境下退回Win:EXIT1.2常用DOS命令(1) 盘切换C:D: 回车(2) DIR (directory) (DIR /p/w):列当前文件夹下文件与文件夹(3) MD (make directory):在当前文件夹下新建文件夹(4) CD(change directory):目录切换 CD :回到根目录 CD. :返回前级目录(5) RD(remove directory):可在前一级目录下删除某空目录(6) DEL(delete):删除文件 DEL SY1_1.ASM ;DEL *.*(7) COPY

3、:拷贝文件 COPY SY1_1.ASM SY1_2.ASM(8) REN(rename) :文件重命名 REN MY1_1.ASM SY1_1.ASM 基于PC的8086汇编程序实验本章将介绍PC机上的debug.exe的使用,以及采用宏汇编软件的使用。在掌握这两个软件使用的基础上,进行汇编源程序的设计。宏汇编软件采用microsoft的MASM 5.0或MASM 6.0。这些软件在DOS环境运行,学生可以采用命令行的形式使用。当然,现在也有运行在Windows系统的集成开发软件。学生在掌握汇编过程的基础上,可以选用该类Windows环境的汇编集成开发软件。2.1 实验一 调试程序debug

4、.exe的使用DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。 它的功能包括以下几个方面。 1,直接输入,更改,跟踪,运行汇编语言源程序; 2,观察操作系统的内容; 3,查看ROM BIOS的内容; 4,观察更改RAM内部的设置值; 5,以扇区或文件的方式读写软盘数据 DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据: 十六进制数据和

5、ASC码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASC码字符。 在DEBUG中输入数据有两种方法: 提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地之中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。 在使用DEBUG时可以只

6、涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是: 段地址: 位移。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。 调用了DEBUG程序,就会出现一个短横提示符,用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后,用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRL+C,那么原来的值不

7、会改变。 一般用不着把地址和命令名字分开。例如,用转储命令D察看100号地址的数据,那么这个命令可以用以下任一种形势输入: D100 D 100 如果输入的命令中出现了错误,DEBUG将在下一行对着错误的位置标记出来,例如: -S100 d 12 Error DEBUG的命令及功能如下: 汇编命令 :A地址 ;ASSEMBLE 功能: 将指令直接汇编成机器码输入到内存中。 说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制, 用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,改语句被汇编到 CS:0100区域。 例A:DEBUG -a 0100

8、08F1:0100 MOV AH,09 08F1:0102 MOV DX,107 08F1:0105 INT 21H08F1:0107 db May I help you $ 08F1:0117直接,回车,离开a状态 -g =100 107运行 May I help you ;运行结果 Program terminated normally ;表示运行正常 (调试程序DEBUG如何表达标志状态?溢出OV(overflow,OF1)无溢出NV(no overflow,OF0)减量DN(direction down,DF1)增量UP(direction up,DF0)允许中断EI(enable i

9、nterrupt,IF1)进制中断DI(disable interrupt,IF0)负NG(negative,SF1)正PL(plus,SF0)零ZR(zero,ZF1)非零NZ(no zero,ZF0)辅助进位AC(auxiliary carry,AF1)无辅助进位NA(no auxiliary carry,AF0)偶校验PE(even parity,PF1)奇校验PO(odd parity,PF0)进位CY(carry,CF1)无进位NC(no carry,CF0))转储命令(数据显示):DisplayD地址 或D起始地址截止地址功能: 以内存映象方式显示内存中的信息。 说明: 转储用左中

10、右三部分显示内存映象内容,左面是内存地址(段地址:偏移,表示后面的内存区16字节的首地址),中间以十六进制显示数据,右边以ASCII字符显示(所有不可打印字符用句号 . 表示)。每行显示16个字节的内容,在第八和第九个字节之间有一个连字符 - 。此命令隐含的段地址为DS的值。若未指定起始地址,则D命令从上次显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令, 则从初始化的段寄存器的内容,加上地址偏移量 0100H 开始显示。 例:-d 10 4f即为显示DS:10 DS:4f的内容。在D命令中如不指出段地址,则其默认为DS段。 如指明段地址,则从指明的段地址列出指定的范围 如:-d

11、 fff:00 0f 我们也可以指定长度来列出所需要内存内容 如:-d 100 L20即为显示由DS:100-DS:11F的内容,共20H(32)个字节: 修改内存命令 E地址 字节串) ;EDIT功能: 从指定的地址开始修改内存值。 格式:E起始地址数据行 (1)用给定内容代替指定范围的单元内容 -E地址 内容表 例:-E 100 41 42 43 44 48 47 46 45 -D 100 L08 显示:08F1:0100 41 42 43 44 48 47 46 45 ABCDHGFE (2)逐个内存内容 例:-E 100: 08F1:0100 76 42 ;42是操作员键入 此命令是将

12、原100号内存内容76修改为42,用D命令可察看F地址范围 字节或字节串 填写命令 FILL功能: 将要填写的字节或字节串填入由地址范围指定的存储器中。 例:-f100 11f 61 62 63 64 -d100 11f 08F1:0100 61 62 63 64 61 62 63 64 -61 62 63 64 61 62 63 abcd abcd abcd abcd 08F1:0110 61 62 63 64 61 62 63 64 -61 62 63 64 61 62 63 abcd abcd abcd abcd如果数据行超出指定的范围,则填不下的数值会被忽略。 例:-f 100 107

13、 41 43 43 44 45 46 47 48 49 4A 4B 4C 4D-d 100 10f 08F1:0100 41 42 43 44 45 46 47 64 -61 62 63 64 ABCDEFGdabcdabcd 由上例可看出,超出范围的数据被忽略 另外,F和E命令都可填入字符串: 如:-F 100 105 MSDOS -d 100 l0f 08F1:0100 4D 53 44 4F 53 46 47 64 -61 62 63 64 MS DOS FGabcd abcd 执行命令:G=起始地址 断点 功能: 执行正在调试的程序,当达到断点时停止执行, 并且显示寄存器标志和下一条要

14、执行的命令。 说明: 如果没有指定起始地址,那么当前指令地址由CS:IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。如果指定断点,当指令到达指令地址时停止执行,并显示各寄存器标志位的内容和下一条要执行的命令,最多允许用户设定10个断点。 进程命令:P=地址 数据 procedure功能: 将一个子程序调用指令,循环指令,中断指令或一个重复字符串指令,停止在下一条指令上。 说明: 在执行一条 子程序调用指令,循环指令,中断指令或一个重复字符串指令时,发出P命令去执行有关指令,并且返回到要执行的下一条指令。 P命令和T一样选用来跟踪程序运行过程用的命令,我们可以在P命令中指

15、定程序运行的起始地址,指令个数,如未指定,则从CS:IP所指定程序的地址开始,一次运行一条指令。 P与T命令的差别在于P命令把CALL/INT当成一条指令来执行。(调试INT 21时区别就出来了。)R寄存器 寄存器命令 register功能: 一、显示单个寄存器的内容,并提供修改功能 二、显示所有寄存器内容, 再加上标志位状态以及要执行的下一条指令三、显示8个标志位状态, 并提供修改功能。若不想改变则回车即可。例:-r bx bx 0050 :51 -r AX=0000 BX=0051 CX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0003 ES=0CD

16、3 SS=0CD3 IP=0100 NV UP EI PL NZ NA OP NC 0CD3:0100 0F DB OF 若想改变标志寄存器,用-RF回车,则DEBUG会将标志内容显示出来。若想改变任一标志,只要输入该标志的名称即可。 溢出 OV(溢出) NV(未溢出) 零位 ZR(等于零) NZ(不等于零) 方向 DN(减少) UP(增加) 辅助进位 AC NA(无进位) 中断 EI(许可) DI(禁止) 奇偶标志 PE(偶) PO(奇) 符号 NG(负) PL(正) 进位 CY NC(清除进位) 例:-Rf NV UP EI PL NZ NA PO NC :-OV DI 输入值 T=地址指

17、令条数 跟踪命令 trace功能: 逐条跟踪程序的执行,每条指令执行后都将显示各寄存器的内容。 说明: 通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令, 每执行一条指令之后,显示所有寄存器的内容和标志状态。 逐条指令跟踪 -T=起始地址 从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值,如来指定地址则从当前CS:IP开始执行。 A:DEBUG -A 08F1:0100 MOV DL,0308F1:0102 MOV AH,0208F1:0104 INT 21H 08F1:0106 INT 20H ;退出指令08F1:0108 -T AX=0000 BX=0000

18、 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=08F1 ES=08F1 SS=08F1 CS=08F1 1P=0105 NV UP EI PL NZ PO CY 09F1:0102 B402 MOV AH,02 若指定起始地址,则T命令会从指定的地址开始跟踪,我们还可以指定跟踪一次所运行指令的个数,用Ctrl+S暂停屏幕的显示,以便观察。 -t=100 10;由CS:100开始跟踪10条指令 反汇编指令:U起始地址或者地址范围 unassembled功能: 将内存中的内容转换为汇编语句。 说明: 反汇编的字节数取决与用户的系统显示形式,

19、以及在U命令中使用的可选项。 (1)从指定地址开始编译,反汇编32个字节 -U地址从CS:100开始,其反汇编32个字节 如果地址被省略,则从一个U命令的最后一条指令的下一条单元开始汇编32个字节。 (2)对指定的存贮范围进行反汇编 -u起始地址 终止地址(L 长度) 例:-U 100 109 08F1:0100 CD20 INT 20 08F1:0102 FF9F009A CALL FA12BX+9A00 08F1:0106 F0 LOCK 08F1:0107 FE1D CALL FAR DI 08F1:0109 F0 LOCK 说明:如指定了范围则整个范围全都会被反编译一、实验目的掌握de

20、bug.exe功能,通过debug.exe练习并掌握汇编指令,可以调试简单的程序。二、实验内容DEBUG启动 运行打开debugDEBUG盘符:路径.扩展名参数1参数2 其中参数1、参数2是指定文件所带的参数。例如: DEBUG DISKCOPY.COM A: B: 中的A:和B:即为参数。进入DEBUG的提示符是符号-。用户可以通过DEBUG的名令输入汇编源程序,并用相应命令将其汇编为机器语言;然后调试并运行该程序。DEBUG命令1.汇编命令A (Assemble)格式:(1)A :(2)A : (3)A (4)A功能:键人该命令后,显示段地址和位移并等待用户从键盘逐条键入汇编命令,逐条汇编

21、成代码指令。用户最后直接键人回车键返回到提示符“”。其中(1)用指定段寄存器内容作段地址(2)以内容作段地址(3)用CS内容作段地址(4)以CS:10O作地址。以后命令中提及的各种地址形式,均指(1)、(2)、(3)中A后的地址形式。2比较命令C (compare) 格式:C , 其中是由指出的一片连续单元,或L。 功能:从的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以的形式显示失配单元及内容c 3显示内存命令D (display)格式:(1)D (2)D (3)D 功能:以两种形式显示指定内存范围内容。一种形式为十六进制内容,一种形式为相

22、应字节的ASCII码字符,对不可见字符以.代替。 其中(1、2)以CS为段寄存器。(3)显示CS:100起始的一片内容。4修改内存命令E (edit) 格式 (1)E (2)E (3)E 其中是一个十六进制数,或用引号或括起来的字符串;是以空格分隔的十六进制数,或用或括起来的字符串,或者是二者的组合。 功能:(1)将指定内容写人指定单元后显示下一地址,可连续键人修改内容,直至新地址出现后键人回车止。(2)将逐一写人由开始的一片单元。5.填充内存命令F (fill) 格式:F 功能:将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。 例如: -F 100 L10 B2,XYZ,

23、3C-d1006.执行命令G (go) 格式:(1)G (2)G (3)G,(yk后面的断点实际上是末位地址) 功能: (1)从CS:P开始执行 (2) 从指定地址开始执行 (3)从指定地址开始执行,到断点自动停止7.十六进制算术运算指令H (hexarimathmetic) 格式:H 功能:求十六进制数(值1和值2的和与差并显示结果。8.端口输入命令I (in)格式:I 功能:将从指定端口输人的内容显示出来。9.读盘命令L (load) 格式:L 其中地址缺省值为CS:10O。逻辑扇区可由物理扇区号换算得到,以双面双密度盘为例:物理扇区是按O面O道1区,O面O道2区,O面O道9区,O面1道1

24、区,O面39道9区,1面O道1区,1面39道9区排列。而逻辑扇区与物理扇区号的对应关系为物理扇区O面O道1扇区至9扇区,逻辑扇区号为O8;物理扇区1面O道1扇区至9扇区,逻辑扇区号为911H;物理扇区O面1道1扇区至9扇区,逻辑扇区号为121AH这样每道先O面后1面一直排下去。 其中盘号为0、1或2,O表示A盘,1表示B盘,2表示硬盘。 功能:将盘号指定的盘上,从起始逻辑扇区)起,共n个逻辑扇区上的所有字节顺序读人指定内存地址的一片连续单元。当L后的参数缺省时,必须在L之前由N命令指定(或进入DEBUG时一并指出)所读盘文件名。此时L执行后将该文件装人内存。 例如: N EXAMPLE 一L将

25、当前盘上的EXAMPLE文件装入CS:lO0起始的一片内存单元。10内存搬家命令M (move)格式:M 其中源及目标地址若仅输人偏移量,则隐含段为DS。功能:把源地址范围中的内容顺序搬至目标起始地址)起的一片连续单元。例如: M CS:100 110 600把从CS:lOO起至CS:110止17个字节搬至DS:600至DS:610的一片单元。11.命名待读文件命令N (name)格式:N 文件名说明 功能:为L命令指定待装人文件注:其它形式参考DOS手册12端口输出命令0 (output)格式:O 功能:将该从指定输出。例如: O 2F 4F将4FH从2FH口输出13结束debug返回DOS

26、命令Q (quit)格式:Q14.显示寄存器命令R (register) 格式:(1) R (2) R 功能:(1)显示当前所有寄存器内容、状态标志及将要执行的下一指令的地址、代码及汇编语句形式。其中对状态标志FLAG以每位的形式显示,详见表状态标志显示形式标志位状 态显示形式溢出标志OF方向标志DF中断标志IF符号标志SF零标志ZF辅助标志AF奇偶标志PF进位标志CF有无减增开关负正零非有无偶奇有无OVNVDNUPEIDINGPLZRNZACNAPEPOCYNC (2)显示指定存储器内容例如: R AX R F 15搜索指定内存命令S (search)格式:S 功能:在指定范围搜索表中内容,

27、找到后显示表中元素所在地址 例如: S CS:100 110 41 显示 O4BA:O1O4 04BA:01OD 表示在位移100H至11OH间的上述两处有41H。又如: S CS:100 L11 41“AB”E 表示在当前代码段位移100H至111H处找 连续4个字节内容为41H、41H、42H、0EH的地址。16执行并显示系统环境命令T (trace) 格式:T 地址)条数 功能:的缺省值是当前IP值,的缺省值是一条。执行由指定地址起始的、由指定的若干条命令。例如: T 执行当前指令并显示状态 T 10 从当前指令始执行10H条指令 17反汇编命令U (unassemble) 格式:(1)

28、U (2)U 功能:将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次U指令后下一地址的值。这样可以连续反汇编。 18写盘命令W (write) 格式:W 地址盘号起始逻辑扇区所写逻辑扇区数n 功能:与L命令不同的地方是将内存地址)起始的一片单元内容写人指定扇区。只有W而没有参数时,与N命令配合使用写盘文件。三、实验步骤1.启动DEBUG,用“R”命令显示各寄存器值,记录并说明DEBUG的初始工作环境。2 认真学习D命令、“E”命令、“R”命令的功能、应用、命令格式、各种显示信息及含义,自行设计操作进行,掌握它们的用法,要求做到能对不同地址中的内容和寄存器进行熟练的检查和修改。记录练习的操作和过程,解释结果;说明各个寄存器的初值以及段地址、偏移地址的意义,确实掌握地址与其中存放的数据之间的关系。3. 阅读下列源程序指令,用铅笔填写运行结果。再用“A”命令输入这些源程序指令(运行结果部分不输入): 地址 目标代码 源程序指令 运行结果 _ _ MOV AX, 1234H ;AX:_ _ _ INC AX ;AX:_ CF:_ ZF:_ SF:_ _ _ DEC AH ;AH_ CF:_ ZF:_ SF:_ _ _ ADD AH,78H ;AH_CF:_ ZF:_ OF:_ SF:_ _

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1