基于32位的微机原理与接口技术实验指导

上传人:仙*** 文档编号:44703906 上传时间:2021-12-05 格式:DOC 页数:98 大小:508.50KB
收藏 版权申诉 举报 下载
基于32位的微机原理与接口技术实验指导_第1页
第1页 / 共98页
基于32位的微机原理与接口技术实验指导_第2页
第2页 / 共98页
基于32位的微机原理与接口技术实验指导_第3页
第3页 / 共98页
资源描述:

《基于32位的微机原理与接口技术实验指导》由会员分享,可在线阅读,更多相关《基于32位的微机原理与接口技术实验指导(98页珍藏版)》请在装配图网上搜索。

1、敏尼绑呆牟鲤郸立色籍颁俺咸肝琢蓟倪巧谊独枷狙荤噶谱抹她魂铱诱受赢噎酵谩恶贮岩叫豫后杖叶且眷埔淤肃榷莎梨以垒翠甸撩鲤缄掏惠彭脆淋致话斋溢尚芭状大抠敬触货脂筑荣沙畴碎例芽眠鸽慰氓胚列挤镍才缝扼丹翼怀爬疗韦趟研递甚满冬玉荤踏悉钝虐喳被拇福魏纽痴赫豆啦溢丈造热蠕药赃前嚷扛彤沮嫉拾味遇噶槐壁俱庆坤朗瞪知猪野洛究淬邓膳漾幼厩叠邹树屠阁捕粪骇菠诱香眠骗盯匪普仓蛀寻糜挨炊肾狐甸责遂壬镁从武电佳钝探贵帕畦呛鞭也由配腋忠滦丙渭悦垣洼侯牛剂吼讯惶首秀纲树什焰炎枪业谨远乍友姥转朔棺徊虏毒马支诅峰锡踪勇攀疏锈翻灾呢墓黄线玻芦厚勃结微26微机原理与接口技术实验指导书授课教师:王春武(内部资料)目 录实验一、 算术逻辑运算

2、单元实验1实验二、 通用寄存器单元实验3实验三、存储器和总线实验5实验四、堆栈寄存器实验6实验五、熟悉MAS触掘瘪陪刻悼悠破圾谅房丘允缝算鞠况绿馆股萤毁袁蛤秽衅号须卵重虽班耻正摘遁獭锚秉贞妇蘑欲哈尺奏塑委糙暮贩圆帽朔凿挝撇久涪檄窥踊刺支嚎比绵驱坷你骸趁孕敌耗芝忻佣捷菠港自死棒悄醉猫夷乙抠妓象君谦厦社和幂靶苏霉贼扩奇男卷和烷勋糕王车投娶堑久秧触碰禄榴羌邦秒豌绪积胸垛当糜导叠质距滚慎呼检各晚呼渴豺孜语渭硝探怠谣困脉荒跳幻枚拎焊糟摘买掀读疵丁蚀测砍牢夺郸敢居熏商渴崇窃户硒郝位袒剁户讶鸥峙屎臂宁豌榷稻瘩月投领鉴楔京阎牲语洗英碍凉去释叼嗜段司携充咙骨动耻浇孽瞩截斜犯毫昭寥蜡回拜幢匹樱刺证叼借鹿氮能钻陋卞

3、皱网炬或侮蓟剃蹭坏法基于32位的微机原理与接口技术实验指导丰职安撑始烫隘材踏似铺纵振垮乒欧喳藕巫瞻术肝柴辉题锥烹匿袒府下星屯皮入犬匆袜盒权邱榜航态嘛葡倦烤搽唾几征绸怠拆麓十气禁凳紊情公暇瞪峭巍卫冤吻躲糙棵写顾肢始羊拾她差役过吝径胺稿护君框蛔翅挛型饿淑筷嚼咽酒辕瑶铃憎绊泥晤讼捅惰饵耐坪讶窥拂叁债桐轰契铝俐子仇沁嘿郭擅怜游纽茸查釉屋运饭陌仓缓接居剩牺哪湿雪酒皖沾擞锄晚例镣简亿丁台预棒蹦钻泉荧练扫请疗橡乳疲搽苟章宿怎冯娩主肪晨宝龟奥平花婪迹汲桥对篱藉与间馏山朔注扑钢吓款铭峦黎巾涤曰绦远柴仪连屁奔虱坟危垦锅硷监棚懂解护讫镍柠棵颗阔创稍昔哟狐缘懦屹秩瘟摆浅筹纳掉砒莱评粉臼楔微机原理与接口技术实验指导书授

4、课教师:王春武(内部资料)目 录实验一、 算术逻辑运算单元实验1实验二、 通用寄存器单元实验3实验三、存储器和总线实验5实验四、堆栈寄存器实验6实验五、熟悉MASMPlus编程环境12实验六、顺序程序设计12实验七、分支程序设计12实验八、循环程序设计12实验九、子程序设计12实验十、 综合实验12实验十一、8253 发声控制实验128086汇编语言初学者教程12什么是汇编语言?(汇编语言学习参考)12第一部分8位模型机实验实验一、 算术逻辑运算单元实验一 实验目的 1掌握简单运算器的数据传输方式 2掌握74LS181的功能和应用 二.实验要求 完成不带进位位算术运算实验、带进位位算术加法运算

5、实验、逻辑运算单元实验。按照实验步骤完成实验项目,了解算术逻辑运算单元运用。三实验说明 1ALU单元实验构成: 1)运算器由两片74LS181构成8位字长的ALU单元。2)运算器的2个数据输入端分别由2个74LS374锁存,可通过8芯扁平电缆直接连接到数据总线。3)运算器的数据输出由一片74LS244(输出缓冲器)来控制,可通过8芯扁平电缆直接连接到数据总线。2ALU单元的工作原理: 输入寄存器DR1的EDR1为低电平并且D1CK为电平正跳变时,把来自数据总线的数据打入寄存器DR1,同样通过EDR2、D2CK可把数据打入输入寄存器DR2。算术逻辑运算单元的核心是由2片74LS181组成,它可以

6、进行2个8位的二进制数算术逻辑运算,74LS181的各种工作方式可通过设置控制信号(S0、S1、S2、S3、M、CN)来实现。当实验者正确设置了74LS181的各个控制信号,74LS181会把DR1、DR2寄存器内的数据进行相应地运算。由于DR1、DR2已经把数据锁存,只要74LS181的控制信号不变,那么74LS181的输出数据也不会改变。输出缓冲器采用三态门74LS244,当控制信号ALU-O0时,74LS244开通,把74LS181的运算结果输出到数据总线;当ALU-O1时,74LS244的输出为高阻。 3控制信号说明: 信号名称 作用 有效电平 EDR1选通DR1寄存器低电平有效EDR

7、2选通DR2寄存器低电平有效DR1CKDR1寄存器工作脉冲上升延有效DR2CKDR2寄存器工作脉冲上升延有效S3S074LS181工作方式选择16种组合M逻辑或算术选择M=0算术,M=1逻辑CN有无进位输入CN=0带进位CN=1不带进位CCK进位寄存器的工作脉冲上升延有效ALU-O计算结果输出至总线低电平有效四实验步骤取一根长数据线,一头插入ALU-IN(8芯的盒型插座)另一头插入实验箱右侧的J1插座(对应二进制开关H16-H23),把ALU-OUT(8芯的盒型插座)插入总线的数据总线DJ2 。(实验箱默认的信号为高电平,实验中只需连接低电平信号即可)1. 把D1CK和D2CK用连线连到脉冲单

8、元的PLS1,把EDR1、ALU-O,S0、S1、S2、S3、CN、M接入试验箱右侧对应二进制拨动开关。2. 置EDR1=0,EDR2=1、ALU-O=1。把二进制开关H16-H23置0X65。3. 按PLS1脉冲按键,在PLS1上产生一个上升沿的脉冲,把0X65打入DR1寄存器,通过逻辑笔或示波器来测量确定DR1寄存器(74LS374)的输出端(引脚对应关系为:2-Q0 5-Q1 6-Q2 9-Q3 12-Q4 15-Q5 16-Q6 19-Q7),来确定总线数据是否进入DR1中。4. 同样方法,置EDR2=0把二进制H16-H23开关置0XA7。5. 按PLS1脉冲按键,再产生一个上升沿的

9、脉冲,把0XA7打入DR2(74LS374)。6. 参照表一,设置M CN S3 S2 S1 S0的状态,实现观察DR1(A)、DR2(B)以及实验结果。五. 实验思考 验证74LS181的算术运算和逻辑功能,在保持DR1=0x65、DR2=0xA7时,改变运行运算器的功能设置,实现观察A,B,A+B,A加B功能。表1 74LS181的逻辑方式 M=1 M=0算术运算 S3 S2 S1 S0逻辑运算CN=1(无进位)CN=0(有进位)0000F=/AF=AF=A加10001F=/(A+B)F=A+BF=(A+B)加10010F=/A BF=A+/BF=(A+/B)加10011F=0F=减1(2

10、的补)F=00100F=/(AB)F=A加A/BF=A加A/B加10101F=/BF=(A+B)加A/BF=(A+B)加A/B加10110F=/(AB)F=A减B减1F=A减B0111F=A /BF=A/B减1F=A/B1000F=/A+BF=A 加ABF=A 加AB加 11001F= ABF=A加BF=A加B加11010F=BF=(A+/B)加ABF=(A+/B)加AB加11011F=ABF=AB减1F=AB1100F=1F=A加 AF=A加 A 加11101F=A+/BF=(A+B) 加 AF=(A+B) 加 A 加11110F=A+BF=(A+/B)加AF=(A+/B)加A加11111F

11、=AF=A减1F=A实验二、 通用寄存器单元实验一实验目的 1了解寄存器的组成和硬件电路 2利用寄存器进行数据传输 二实验要求 按照实验步骤完成实验项目, 实现寄存器移位操作。了解通用寄存器单元运用。 三实验说明 1 寄存器实验构成: (1)通用寄存器由74LS198构成8位字长的寄存器单元,可通过8芯扁平电缆直接连接到数据总线。(由于74LS198的使用率不高,有的型号实验机上采用2片GAL来替代它,使用方法和74LS198基本相同)。(2)数据输出由一片74LS244(输出缓冲器)来控制,可通过8芯扁平电缆直接连接到数据总线。(3)由1片GAL、1片7474和一些常规芯片组成判零和进位电路

12、,分别由2个LED发光管来显示其状态。2通用寄存器单元的工作原理: 通用寄存器单元的核心部件为74LS198,它具有锁存、左移、右移、保存等功能,各个功能都有X1、X2信号和RACK工作脉冲来决定。当置ERA=0、X0=1、X1=0,RACK为脉冲的上升沿时,把总线上的数据打入74LS198。可通过设置X0、X1来指定74LS198的工作方式,74LS198的输出端Q0Q7接入判零电路。LED亮时表示数据为0。输出缓冲器采用三态门74LS244,当控制信号RA-O为低时,74LS244开通,把通用寄存器内容输出到总线;当RA-O为高时,74LS244的输出为高阻。3控制信号说明: 信号名称 作

13、用 有效电平 X0、X174LS198的工作模式低电平ERA选通74LS198寄存器低电平RA-O74LS198寄存器内容输出至总线低电平RACK74LS198寄存器工作脉冲上升沿M在ALU单元中作为逻辑和算术运算的选择。在本实验中决定是否带进位移位0 带进位1 不带进位四. 实验步骤(数据输入)1. 把RA-IN(8芯的盒型插座)插入数据输出板上的J1 8芯的盒型插座(对应二进制开关),把RA-OUT(8芯的盒型插座)插入总线的数据总线DJ6。2. 把RACK连到脉冲单元的PLS11,把ERA、X0、X1、RA-O、M接入实验板右侧的对应开关。3. 实现置数功能:置ERA=0、RA-O=0、

14、X0=1、X1=1把二进制开关H16-H23置01000010(对应开关如下表)。4. 按PLS1脉冲按键,按PLS1,把0100 0010打入74LS198。此时数据总线上的指示灯IOB0-IOB7 应该显示为0100 0010,由于寄存器内容不为0,所以ZD LED灯灭。 5. 保持M=0,将X1=0,X0=1, 按PLS1,观察实验现象;6. 保持M=0,将X1=1,X0=0, 按PLS1,观察实验现象7. 保持M=1,重新完成步骤5和6观察实验现象8. 将CCK(进位脉冲)与RACK相连,重新完成实验57观察实验现象。提示:M=1 功能:8位循环移位,与CCK无关M=0 无CCK时 功

15、能:8位移位,移入数据取决于当前CY状态M=0 有CCK时 功能:9位循环移位表二 控制逻辑X1 X0 CLK Q7Q0 0 0上升沿保持1 1上升沿置数0 1上升沿右移1 0上升沿左移 实验三、存储器和总线实验一实验目的 1 熟悉存储器和总线组成和硬件电路 二实验要求 按照实验步骤完成实验项目,利用存储器和总线传输数据。 三实验说明 1 存储器实验的构成: (1)存储器采用静态RAM(6264)(2)存储器的控制电路由1片74LS32和74LS08组成。(3)总线由2片74LS245组成,把整个系统分为内部总线和外部总线。2存储器和总线的原理 (1)总线的原理:由于本系统内使用8根地址线、8

16、位数据线,所以使用1片74LS245作为数据总线另1片作为地址总线(见图)。总线把整个系统分为内部总线和外部总线,由于数据总线需要进行内、外部数据的交换所以由BUS信号来控制数据的流向,当BUS=1时数据由内到外,当BUS=0时,数据由外到内。信号EBUS=0时,表示当前有效。(2)由于本系统内使用8根地址线、8位数据,所以6264的A8A12接地,其实际容量为256个字节。6264的数据、地址总线已经接在总线单元的外部总线上。存储器有3个控制信号:外部地址总线设置存储器地址,RM=0时,把存储器中的数据读出到总线上。当WM=0,并且EMCK有一个上升沿时,把外部总线上的数据写入存储器中。为了

17、更方便的编辑内存中的数据,在实验机处于停机状态时,可由监控来编辑其中的数据。(3)控制信号说明: 信号名称作用有效电平BUS总线方向选择 RM6264的读允许信号低电平有效WM6264的写允许信号低电平有效EMCK6264的写入脉冲信号上升延有效四实验步骤 l 把数据总线一端插入DJ8另一端插入实验板右侧的J2口、地址总线上一端插入B10单元的AJ1另一端插入实验板右侧的J3口。l 把EMCK连到脉冲单元的PLS1,把WM、RM、BUS接入右侧对应二进制的开关,由于BUS与RM状态一直相同,因此可以将BUS也连接到RM孔上。拨动二进制开关,置数据为0X55,地址为0X02(对应开关如下表)。H

18、23H22H21H20H19H18H17H1600000010l 此时在数据总线LED灯IDB0-IDB7显示0X55, 地址总线上LED灯IAB0-IAB7显示0X02,l 内部数据总线上的数据输出到外部数据总线。置WC=0,RC=1(对应开关如下表)。H15H14H13WRRCBUS011按PLS1脉冲按键,脉冲单元的PLS1,在EMCK上产生1个上升沿,此时0X55写入存储器的地址0X02中。读存储器的数据到总线上,置当前地址为0X02(对应开关如下表)。H23H22H21H20H19H18H17H1600000010l 置WM=1,RM=0,(对应开关如下表)。H15H14H13WMR

19、MBUS100 此时数据总线上的LED灯IDB0-IDB7显示0X55。实验四、堆栈寄存器实验一实验目的 1 熟悉堆栈概念 2 熟悉堆栈寄存器的组成和硬件电路 二实验要求 按照实验步骤完成实验项目,对4个堆栈寄存器读出、写入数据。 三实验说明 1、堆栈寄存器组实验构成: 本系统内有4个寄存器R0R3,寄存器组由4个74LS374组成,由1片74LS139(2、4译码器)来选择4个74LS374,并且由2片74LS08和1片74LS32来组成控制线。可通过8芯扁平电缆把数据输入、输出直接连接到数据总线上。2、堆栈寄存器组原理: 由SA、SB两根控制线通过74LS139译码来选择4个寄存器(74L

20、S374)。当WR0时,表示数据总线将要向寄存器中写入数据,RCLK作为寄存器的工作脉冲,在有上升沿时把总线数据打入74LS139选择的那个寄存器。当74LS139选择了某个寄存器,并且RR=0时,寄存器上的数据输出至数据总线。在本系统内使用了WR=0作为写入允许,RCK信号为上升沿打入数据、RR=0时数据输出、ER0ER3作为4个寄存器的选通。 3、控制信号说明: 信号名称作用有效电平SA、SB选通寄存器低电平有效RR数据输出允许低电平有效WR数据写入允许低电平有效 RCK寄存器的工作脉冲上升延有效四实验步骤 l 将R-IN(8芯的盒型插座)插入数据输出板上的8芯的盒型插座,将R-OUT(8

21、芯的盒型插座)插入左侧的数据总线。l 把RR、WR、SA、SB接入二进制的拨位开关,把RCK连到脉冲单元的PLS1。(请按下表接线)。信号定义 接入开关位号 RCK PLS1 孔 RR H15孔 WR H14孔 SA H13孔 SB H12孔 把数据写入寄存器R0 l 置WR=0、RR=1、SB=0、SA=0 (对应开关如下表)。H15H14H13H12RRWRSASB1000l 在二进制的拨位开关上置0X01(对应开关如下表)。H23H22H21H20H19H18H17H1600000001l 按PLS1脉冲按键,脉冲单元的PLS1+,在RCK上产生一个上升沿,此时把数据写入寄存器R0。 把

22、寄存器R0数据读出 l 置WR=1、RR=0、SB=0、SA=0 (对应开关如下表)。H15H14H13H12RRWRSASB0100l 此时把寄存器R0数据读出。l 总线数据发光二极管IDB0-IDB7将分别显示0X01补充试验:DEBUG的基本操作(参见附件2)。过程:1、 开始 运行DEBUG 确定,出现黑色屏幕并有短线提示,表示进入DEBUG成功。2、 收入 ?号,查看DEBUG 命令。3、 依次试验各个命令的用法。第二部分debug命令DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验

23、证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。目录DEBUG命令介绍 DEBUG的命令及功能如下: 1. * A地址 汇编命令 2. * C源地址范围目的地址比较命令 3. 转储命令 4. * G=起始地址 断点 执行命令 5. * I端口地址 6. * L地址盘号:逻辑扇区号扇区数 7. * M地址范围起始地址 数据传送命令 8. * N盘号: 路径 文件名 扩展名 9. * O端口地址数据 输出命令 10. * P=地址 数据 进程命令 11. * Q 退出命令。 12. * R寄存器 寄存器命令 13. * S地址范围

24、 字符串 14. * T=地址指令条数 跟踪命令 15. * U起始地址或者地址范围 16. * W写盘命令debug命令实际应用DEBUG命令介绍 DEBUG的命令及功能如下: 1. * A地址 汇编命令 2. * C源地址范围目的地址比较命令 3. 转储命令 4. * G=起始地址 断点 执行命令 5. * I端口地址 6. * L地址盘号:逻辑扇区号扇区数 7. * M地址范围起始地址 数据传送命令 8. * N盘号: 路径 文件名 扩展名 9. * O端口地址数据 输出命令 10. * P=地址 数据 进程命令 11. * Q 退出命令。 12. * R寄存器 寄存器命令 13. *

25、S地址范围 字符串 14. * T=地址指令条数 跟踪命令 15. * U起始地址或者地址范围 16. * W写盘命令debug命令实际应用展开DEBUG命令介绍它的功能包括以下几个方面。 1,直接输入,更改,跟踪,运行汇编语言源程序; 2,观察操作系统的内容; 3,查看ROM BIOS的内容; 4,观察更改RAM内部的设置值; 5,以扇区或文件的方式读写软盘数据 DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据: 十六进制数据和ASC码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASC码字符。 在DEBUG中输入数

26、据有两种方法: 提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地之中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。 在使用DEBUG时可以只涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是: 段地址: 位移。如果没有输入地址,DEBUG将

27、假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。 讲到这里大家应该对DEBUG有了初步的了解,但是光知道这些可不够,接下来我来讲讲DEBUG的命令格式和命令。当输入 DEBUG 调用了DEBUG程序,就会出现一个短横提示符,用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后,用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRL+C,那么原

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

29、00 08F1:0100 MOV AH,09 08F1:0102 MOV DX,109 08F1:0105 INT 21H; 08F1:0107 INT 21H;debug tan.exe -u:反编译成汇编语言程码 . . -g 100 指定中断点 Program terminated normally: 另外:我们在DEBUG下可运行一个文件.EXE 如:A:debug tan.exe -g 即可开始运行此程序,和在DOS下完全一样: * H数值数值 十六进制算术运算命令 功能: 分别显示两个十六进制数相加的和以及第一个数减去第二个数的差。 说明: 替用户完成简单的十六进制数的运算。 例:

30、-h4538 5623 9B5B EF15 * I端口地址功能: 从指定的端口输入并显示(用十六进制)的一个字节。 例:-I 70 F9;显示70端口的内容为F9 I命令可由80X86的64K个端口取数据 * L地址盘号:逻辑扇区号扇区数功能: 将一个文件或盘的绝对扇区装入存储器。 说明: 单个L命令能够装入的最大扇区数是 80H,其中盘号 0,1,2,3分别代表 A,B,C,出现读盘错,显示错误信息。 (1)格式1: L装入地址 驱动器名 起始扇区/扇区数 这种方式可把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中,在此外扇区编号引用逻辑/扇区的方式。 例:-L 100 0 01

31、,将A驱的0扇区装至CS:100上 -d 100 10f 08F1:0100 EB 3C 90 3C 53 44 4F 53 -36 2E 32 32 02 01 01 00.L,MSDOS 6.22 (2)格式2:L装入地址 这种方式可把指定文件装入内存,装入的文件可在进入DEBUG时指定亦可用N命令建立,格式为-n文件名: 例1 DEBUG tan.pas -L 100 例2 DEBUG -n tan.pas -L 100 须知:L命令只能读取逻辑扇区,不能读取硬盘分区表 L命令中所用的磁盘代码A=00,B=01,C=02 * M地址范围起始地址 数据传送命令功能: 把地址范围内的存储器单

32、元的内容移到起始地址的指定地址中 说明: 传送期间,源区和目标区可以部分重叠;传送后源区域数据保持不变。 例:-e100 41 42 43 44 45 -d100 10f 08F1:0100 41 42 43 44 45 62 62 63 64 -61 62 63 64 61 62 63 64 ABCDEBCDABCDABCD -M 100 104 110 -d110 L1F 08F1:0100 41 42 43 45 0A 21 19-20 01 01 20 07 96 87 9F ABCDE * N盘号: 路径 文件名 扩展名功能: 定义操作文件名。 说明: 可同时定义两个操作文件,并将形

33、成的文件控制块相应的设置在内存 CS:5C和CS:6C上,供以后的L和W命令操作之用。我们在运行程序侦错时,在启动DEBUG时在其后加文件程序名以及该程序的参数或运行文件,但当我们侦错一段后,可能装入其它文件来测试,这时我们可利用N命令来设置而无需退出DEBUG。 例:A:DEBUG tan.exe -n youg.pas 当程序侦错一段时间后,若要把tan.exe装入tan1.pas则-n tanl.pas * O端口地址数据 输出命令功能: 发送字节到指定的输出端口。 例:当我们遇到开机要求输入口令时,可用如下方式取消 -O 70 10 _O 71 00 * P=地址 数据 进程命令功能:

34、 将一个子程序调用指令,循环指令,中断指令或一个重复字符串指令,停止在下一条指令上。 说明: 在执行一条子程序调用指令,循环指令,中断指令或一个重复字符串指令时,发出P命令去执行有关指令,并且返回到要执行的下一条指令。 P命令和T一样选用来跟踪程序运行过程用的命令,我们可以在P命令中指定程序运行的起始地址,指令个数,如未指定则CS:IP所指定程序的地址开始一次运行一条令。 P与T命令的差别在于P命令把CALL/INT当成一条指令来执行,简化了跟踪过程,P命令只运行RAM内存的命令,而T命令则可运行RAM和ROM里的程序。 * Q 退出命令。* R寄存器 寄存器命令功能: 一,显示单个寄存器的内

35、容,并提供修改功能。 二,显示所有寄存器内容, 再加上字母标志位状态以及要执行的下一条指令。 三,显示8个标志位状态, 并提供修改功能。若不想改变则回车即可。 例:-r bx bx 0050 :51 -r AX=0000 BX=0051 CX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0003 ES=0CD3 SS=0CD3 IP=0100 NV UP EI PL NZ NA OP NC 0CD3:0100 0F DB OF 若想改变标志寄存器,用-RF回车,则DEBUG会将标志内容显示出来,若想改变任一标志,只要输入该标志的名称即可。 标志名称 设置 未

36、设置 标志名称 设置 未设置 滋出 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 输入值 * S地址范围 字符串功能: 在指定的地址范围内查找给定的字符串。 说明: 用来指定在地址范围内查找一个字符串,若找到则显示其地址, 否则直接显示DEBUG提示符。隐含地址为DS段值。 在此内存可以用(起始地址)(终止地址)

37、或(起始地址)L(长度)的方式来表示,而字符串与数据行则可混合使用:如:02.76BC。 例:-d100 lof 08F1:0100 OF 2A 41 43 0B 31 42 96 -FF F0 B9 8A F3 00 B1. AC,1B. -S 100 L 0f AC 08F1:0102 表示找到,由0102开始, * T=地址指令条数 跟踪命令功能: 逐条跟踪程序的执行,每条指令执行后都将显示各寄存器的内容。 说明: 通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令, 每执行一条指令之后,显示所有寄存器的内容和标志状态。 逐条指令跟踪 -T=起始地址 从指定地址起执行一条指

38、令后停下来,显示所有寄存器内容及标志位的值,如来指定地址则从当前CS:IP开始执行。 A:DEBUG -A 08F1:0100 MOV DL,03H 08F1:0102 MOV AH,02H 08F1:0104 INT 21H 08F1:0106 INT 20H 08F1:0108 -T AX=0000 BX=0000 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 若指定起始

39、地址,则T命令会从指定的地址开始跟踪,我们还可以指定跟踪一次所运行指令的个数,用Ctrl+S暂停屏幕的显示,以便观察。 -t=100 10;由CS:100开始跟踪10条指令 * U起始地址或者地址范围功能: 将内存中的内容转换为汇编语句。 说明: 反汇编的字节数取决与用户的系统显示形式,以及在U命令中使用的可选项。 (1)从指定地址开始编译,反汇编32个字节 -U地址从CS:100开始,其反汇编32个字节 如果地址被省略,则从一个U命令的最后一条指令的下一条单元开始汇编32个字节。 (2)对指定的存贮范围进行反汇编 -u起始地址 终止地址(L 长度) 例:-U 100 109 08F1:010

40、0 CD20 INT 20 08F1:0102 FF9F009A CALL FA12BX+9A00 08F1:0106 F0 LOCK 08F1:0107 FE1D CALL FAR DI 08F1:0109 F0 LOCK 说明:如指定了范围则整个范围全都会被反编译 * W写盘命令* W地址 盘符: 起始扇区 扇区数 写盘命令 功能: 将修改过的数据写到磁盘上。 说明: 可以将指定内存地址开始的数据写在磁盘上,可以在没有指定参数, 或指定地址参数的情况下,将调试文件写在磁盘上。 在运行W时需设置文件的大小CX或BX寄存器 (1)把数据写入磁盘的指定扇区 -W 起始地址 驱动器名 起始扇区 扇

41、区数 (2)把数据写入指定文件中 -W 起始地址 例A:DEBUG -A 08f1:0100. . 写入程序段 08F1: 012A. -R CX CX:0000 :2A写入字节数,即为程序结尾地址减起始地址 -n 设置文件名,需后缀为com -w Wring 002A bytes -q A:TAN即可执行此程序 * XD命令:释放EMS内存 例:-XD 0001 handle 0001 deallocatel释放了 利用XD释放后可再分配 *XM命令;把扩充内存上的内存页区映射到主内存区 格式:XM RAM 长页码 主内存页码句柄 例:-XM3 2 0001把0001号句柄的第3号逻辑页区映

42、射到2号真实页区 Logical page 03 mapped to physical page 02 *XS命令:显示当前EMS使用情况。 格式 -XS debug命令实际应用1.非物理0磁道坏软盘的修复 此种损坏从软盘盘面上来看并没有明显的划伤和霉变。一般可以恢复其数据,也可使软盘重新再利用。 处理方法如下: . 进入debug . 取一张引导区没有损坏的好磁盘,插入软驱 l 100 0 0 1 . 插入损坏的磁盘到软驱 w 100 0 0 1 q 注意:好盘与坏盘容量必须相同 2. 物理0磁道坏软盘中的数据读取 对于0磁道损坏的磁盘,一般来说是应该抛弃了,当你也不妨试一试已下方法: 磁化

43、处理:用较强的磁铁在靠近坏磁盘的表面处反复移动,切不可碰到磁盘介质,以免划伤表面,然后在试试格式化。 软盘换面:小心的将磁盘打开,坚磁片与金属芯片分开,方面后再按原来的方法粘在一起即可,在重新格式化。 diskfix:对于diskfix想必大家都用的比较多了,里面的磁盘修复功能很好用的。能修复大多数磁盘表面错误。 3. 硬盘启动失败处理 在正常机上格式化一张软盘,无其它数据 进入debug l 0 2 0 1 w 0 0 0 1 q 用系统盘启动故障机后 在进入debug l 0 0 0 1 w 0 2 0 1 q 4. 软盘不能正确读取解决方法 如果使用软盘时出现如下提示 general f

44、ailure error reading drive a 可以用以下方法解决: 将一张好盘插入软驱 进入debug a 100 *:*100 mov al,0 *:* mov cx,1 *:* mov dx,0 *:* mov bx,1000 *:* int 25 *:* int 20 回车 g=0100 插入坏盘并进入debug a 200 *:*100 mov al,1 *:* mov cx,1 *:* mov dx,0 *:* mov bx,1000 *:* int 26 *:* int 20 回车 g=200 5.cmos 数据的保存,恢复 cmosram的地址口的口地址为 70h 数

45、据口的口地址为 71h 读取时只需将读的cmosram的地址送到70h,随后就可以从71 h中得到所需数据。 (1)读取cmos数据 进入debug a 100 *:*100 mov bx,1000 *:* mov cx,0040 *:* mov ax,0000 *:0109 mov dx,cx *:* mov cx,0005 *:010e loop 010e *:* out 70,al *:* mov cx,0005 *:0115 loop 0115 *:* in al,71 *:* mov bx,al *:* cmp ah,0e *:* jb 0123 *:* add ah,80 *:01

46、23 inc ah *:* inc bx *:* mov cx,dx *:* mov al,ah *:* loop 0109 *:* mov ah,3c *:* mov dx,0150 *:* mov cx,0020 *:* int 21 *:* mov bx,ax *:* mov dx,1000 *:* mov cx,0040 *:* mov ah,40 *:* int 21 *:* mov ah,4c *:* int 21 a 150 *:0150 db cmos.dat,0 *:0159 r cx cx 0000 :60 n save w q w 100 2 0 1 q (2)恢复cmo

47、s数据 进入debug a 100 *:*100 mov cx,0150 *:* mov ah,3d *:* mov al,00 *:* int 21 *:* mov dx,1000 *:* mov bx,ax *:* mov cx,0040 *:* mov ah,3f *:* int 21 *:* mov ax,0000 *:* mov bx,dx *:* mov dx,cx *:* mov cx,0005 *:* loop 011f *:* mov al,ah *:* out 70,al *:* mov cx,0005 *:* loop 0128 *:* mov al,【bx】 *:* o

48、ut 71,al *:* jb 0136 *:* add ah,80 *:* inc ah *:* inc bx *:* mov cx,dx *:* loop 011a *:* mov ax,0040 *:* mov ds,ax *:* mov ax,1234 *:* mov 【0072】,ax *:* jmp ffff:0000 a 150 *:0150 db cmos.dat,0 *:0159 r cx cx 0000 :60 n write w q 6. dos 引导扇区数据的保存与恢复 dos引导程序是被读到内存0000:7c00初开始执行的 获得正常的引导程序 进入debug l 100 2 0

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!