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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理讲义.docx

1、微机原理讲义 微型计算机原理实验讲义 徐 州 师 范 大 学 物 理 系 二00三年二月DEBUG主要命令DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。1、 DEBUG程序的调用在DOS的提示符下,可键入命令: C:DEBUGd:pathfilename.extparm1parm2其中,文件名是被调试文件的名字。如用户键入文件名,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的d指定驱动器,path为

2、路径,parm1和parm2则为运行被调试文件时所需要的命令参数。在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。2、 DEBUG的主要命令1) 显示存储单元的命令D(DUMP),格式为:-Daddress或-Drange例如,按指定范围显 18E4:0100 示存储单元内容的方法为: -D 100 120C7 06 04 02 38 01 C7 06-06 02 00 02 C7 06 08 02 G.8.G. .G. . 18E4:0110 02 02 BB 04 02 E8 02 00-CD 20 50 51 56 57 8B 37 .;.H.M POVW. 7

3、 18E4:0120 8B 其中0100至于20上DEBUG显示的单元内容。左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。2) 修改存储单元内容的命令有两种。输入命令E(enter),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:-E ADDRESS list例如,-E DS :100 F3 XYZ 8D , 该命令可以用这五个字节来替代存储单元DS:01

4、00到此为止104的原先的内容。第二种格式则是采用个单元相继修改的方法。命令格式为:-E address例如,-e cs:100则可能显示为: 18E4:0100 89。-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键可接着显示下一个单元的内容,如下:18E4:0100 89.78 1B.这样,用户可以有断修改相继单元的内容,直到用Enter键结束该命令为止。填写命令F(Fill),其格式为:-F range list例如:-F DS:0100 0110 5 F3XYZ8D使04BA:01000105单元包含指定的六个字节的内容。如果list中的字节数超过指定的范围,

5、则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。3) 检查和修改寄存器内容的命令R(Register),它有三种格式如下:显示CPU内所有寄存器内容和标志位状态,其格式为:-R例如,-r AX=0000 BX=0000 CX=010A DX=0000 SP=FFFF BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC 18E4:0100 C70604023801 MOV WORD PTR 0204,0138 DS:0

6、204=0000 其中标志位状态的含义见下表标志名OFDFIFSFZFAFPFCF标志为1OVDNEINGZRACPECY标志为0NVUPDIPLNZNAPONC显示和修改某个寄存器内容,其格式为:-R register name例如,键入-r ax系统将响应如下:AX F1F4:即AX寄存器的当前内容为F1F4,如不修改则enter键,否则,可键入欲修改的内容,如:-r bxBX 0369 : 059F则把BX寄存器的内容修改为059F。显示和修改标志位状态,命令格式为:-RF系统将响应,如: OV DN EI NG ZR AC PE CY-此时如不修改内容可按enter键,否则,可键入欲修

7、改的内容,如:OV DN EI NG ZR AC PE CY-PONZDENV即可,可见键入的顺序可以是任意的。4) 汇编命令A(Assemble),其格式为: -Aaddress该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意;DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后就加以说明,如100D。 例:-A CS:1005) 反汇编命令U(Unassemble),有两种格式。从指定地址开始,反汇编32个字节,其格式为: -Uaddress例如: -U 100 18E4:0100 C70604023801 MOV WOR

8、D PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70608020202 MOV WORD PTR0208,0202 18E4:0112 BB0402 MOV BX,0204 18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI 18E4:011E 8B37 MOV SI,BX如果地址被省略,则

9、从上一个U命令的最后一条指令的下一个单元开始显示32个字节。对指定范围内的存储单元进行反汇编,格式为:-Uramge例如: -U100 10C 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70608020202 MOV WORD PTR0208,0202或 -U100 112 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR02

10、06,0200 18E4:010C C70608020202 MOV WORD PTR0208,0202可见这两种格式是等效的。6) 运行命令G(G0),其格式为 G=address1address2address3.其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志的内容,和下一条将要执行的指令。7) 跟踪命令T(Trace),有两种格式;逐条指令跟踪-T=address从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。多条指令跟踪-T

11、=addressvalue从指定地址起执行N条指令后停下来,N由VALUE指定。8) 命名命令N(Name),其格式为:-N filespecs filespecs命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入或存盘。filespecS的格式可以是:d:path filename.ext例如, -N myprog-L-可把文件myprog装入存储器。9) 装入命令L(Load),有两种功能。把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:-Laddressdrive sector sector装入指定文件,其格

12、式为:-Laddress此命令装入已在CS:5CH中格式化了的文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。10) 写命令W(Write),有两种功能。把数据写入磁盘的指定扇区。其格式为:-W address drive sector sector把数据写入指定的文件中。其格式为:-Waddress此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX中。11) 退出DEBUG命令Q(Quit),其格式为:-Q它退出DEBUG,返回DOS。本命令并无存盘功能,如需存盘应先使用

13、W命令。实验一 DEBUG调试程序的使用一、实验目的掌握DEBUG的调试程序命令的使用方法。二、实验仪器及系统 微型计算机三、预习要求.、阅读DEBUG主要命令一节内容。、熟悉DOS的基本命令和DEBUG有关命令。四、实验内容用DEBUG命令,汇编和调试程序。下面是“在屏幕上循环显示数字字符09”的程序 START: MOV BL,3OH FOLLOW:MOV AL,BL INC BL CMP BL,3AH JA START MOV DL,AL MOV AH,02H INT 2IH MOV DL,20H MOV AH,02H INT 21H MOV CX,0FFFFH WAITING:LOOP

14、 WAITING JMP FOLLOW1、 用汇编命令汇编源程序操作过程如下:A: WJYL DEBUG-A CS:1000DC8:0100 MOV BL,300DC8:0102 MOV AL,BL0DC8:0104 INC BL0DC8:0106 CMP BL,3A0DC8:0109 JA 01000DC8:010B MOV DL,AL0DC8:010D MOV AH,020DC8:010F INT 210DC8:0111 MOV DL,200DC8:0113 MOV AH,020DC8:0115 INT 210DC8:0117 MOV CX,FFFF0DC8:011A LOOP 011A0

15、DC8:011C JMP 01020DC8:011E -2、 用反汇编命令,验证输入程序是否正确。操作和DEBUG的回答如下:-UCS:1000DC8:0100 B030 MOV BL,300DC8:0102 88D8 MOV AL,BL0DC8:0104 FEC3 INC BL0DC8:0106 80FB3A CMP BL,3A0DC8:0109 77F5 JA 01000DC8:010B 8802 MOV DL,AL0DC8:010D B402 MOV AH,020DC8:010F CD21 INT 210DC8:0111 BZZC MOV DL,200DC8:0113 B402 MOV

16、AH,020DC8:0115 CDZ1 INT 210DC8:0117 B9FFFF MOV CX,FFFF0DC8:011A E2FE LOOP 011A0DC8:011C EBE4 JMP 0102-3、 验证输入程序正确后,用命名命令和写盘命令,将在内存的调试程序存入磁盘操作过程和DEBUG的回答如下:-N DSP0_ 9 ;设置文件标识符-R BX ;设置文件长度高位字BX 0000 :0-R CX ; 设置文件长度低位字CX 0000:20-W ;写入磁盘Writing 020 bytes -4、 用运行命令连续运行汇编语言程序操作过程和运行结果如下: -G=100 11E ;从汇编

17、起始地址连续执行程序 0,1,2,3,4,5,6,7,8,9,0,执行程序后,在屏幕上循环显示数字字符0,9。5、 重新启动DOS系统,用DEBUG的命名命令和装入命令,将DSPO_9文件装入内存,操作过程如下: -N DSPO_9 ;设置文件标识符 -L ;将DISP0_9文件装入内存 -UCS:100 ;用反汇编检查读入文件 6、 退出DEBUG -Q A: WJYL 7、 汇编和运行下列汇编语言源程序。练习一:产生定音的音响程序。CS:100 MOV DX,1F40 IN AL,61 AND AL,FE XOR AL,02 OUT 61,AL MOV CX,0216 LOOP 010E

18、DEC DX JNE 0107INT 20 注:更换CX常数可以产生不同的音调,更换DX常数可以改变不同的持续时间。练习二、响铃程序。 CS:100 MOV BX,0010 MOV AH,02 MOV DL,07 INT 21 MOV CX,6000 LOOP 0100 DEC BX JNZ 0103 INT 20 注:更换BX的常数可以改变响铃次数,更换CX的常数可以改变响铃间隔时间。五、实验注意事项 汇编语言主要是在DEBUG下使用,要熟悉debug的操作命令,实验过程中程序调试以程序分析为基础。六、思考题 程序运行的结束地址是否可以任意定,练习二中如何改变cx的大小可以延长响铃时间间隔。

19、七、实验总结 列出练习一和练习二汇编指令序列清单。实验二 程序调试方法一、实验目的1、 进一步熟悉DEBUG调试程序主要命令的用法。2、 熟悉8088指令系统中主要命令的功能及用法。二、实验仪器及系统 微型计算机三、预习要求.、再次熟悉DEBUG主要命令和DOS的基本命令。、分析讲义中的汇编语言程序。四、实验内容 (一).1、 用DEBUG中A命令输入下列程序段(从CS:100开始):MOV SI,1000MOV AL,SIMOV BL,5SIMOV 5SI,AL MOV SI,BL HLT2、 用反汇编命令U检查输入是否正确。3、 为DS:1000单元和DS:1005单元赋初始值8E和E8。

20、4、 用跟踪命令单步执行上面程序,逐条检查执行结果并作记录: 单步执行步数单步执行结果123455、 分析执行过程及结果,说明该程序的功能。6、 用键断点方式再运行该程序段,并记录执行结果:执行前执行后(二)、按上面步骤及要求调试下列程序段。 MOV SP,CFE0 MOV AX,1234 MOV BX,5678 PUSH AX PUSH BX POP AX POP BX HLT(三)、按上面步骤及要求调试下列程序段。 MOV AX,3536 AND AH,0F MOV CL ,04 SHL AH,CL AND AL,0F OR AL,AE HLT 说明:记录单步执行结果中包括有关寄存器和状态

21、标志情况。(四)、用键断点方式调试下列程序段。 MOV AX,1000 ADD AX,1004 MOV 100B,AX MOV AX,1002 ADC AX,1006 MOV 100A,AX HLT附:DS:1000100B内存单元内容初值如下: EF,CD,AB,B9,21,43,65,87,00,00,00,00要求:1、用键断点方式两次运行该程序段(自行选择合适的断点位置)。2、分别记录每次运行结果(有关寄存器、存储单元内容)。3、指出该段程序的功能。执行命令执行结果1:2:五、实验注意事项 汇编语言主要是在DEBUG下使用,要熟悉debug的操作命令,实验过程中程序调试以程序分析为基础

22、。程序的起始地址是码段的100。六、思考题 根据程序调试的结果验证堆栈指令push和pop的执行过程。七、实验报告要求:1、 实验目的明确。2、 详尽记录每个实验内容的步骤及结果。3、 总结本实验收获。实验三 汇编语言程序的编辑、汇编、连接、调试及运行一、实验目的4、 掌握汇编语言源程序的基本结构。5、 学习汇编程序及连接程序的使用方法。6、 学习用DEBUG调试汇编语言程序的方法。二、预习要求 把本次实验的程序段补充成完整的汇编语言源程序,复习DEBUG主要命令用法。三、实验仪器及系统 微型计算机四、实验内容1、 补充修改下列程序段,使之成为结构完整的汇编语言源程序。在内存中BUFF开始区域

23、有10个字节带符号数,要求把其中正负数分开,分别存入PLUS开始和MINUS开始的内存区域,程序如下:START:MOV SI,OFFSET BUFF MOV DI,OFFSET PLUS MOV BX,OFFSET MINUS MOV CX,COUNTGOON:LODS BUFF TEST AL,80H JNZ MINU STOSB JMP AGAINMINU:XCHG BX,DI STOSB XCHG BX,DIAGAIN:DEC CX JNZ GOON HLT2、 用编辑软件Q.EXE将补充修改后的源程序输入计算机,并存入磁盘。注:文件名要以 .ASM为扩展名。例:A:WJYL Q ab

24、c. asm3、 用汇编程序MASM.EXE对源程序进行汇编,检查并修改其中的语法错误,直到生成目标文件(.0BJ文件)。命令格式:MASM 源文件名例:A:WJYL MASM abc. asm4、 用连接程序LINK.EXE对目标程序(.OBJ文件)进行连接,以产生可执行文件,即.EXE文件。命令格式:LINK 目标文件名例:A:WJYL LINK abc5、 用调试程序DEBUG将.EXE文件调入内存进行调试。命令格式:DEBUG 主文件名.EXE例:A:WJYL debug abc. exe-u 0-G=0 -D DS:00006、 调试完毕后,退出DEBUG .在DOS下运行程序,观察

25、现象。-Q A:WJYL abc. exe五、实验注意事项 本次实验是一个完整的汇编语言源程序的编辑和调试过程,和前面程序段的debug调试有所不同。六、思考题 完整的汇编语言源程序的编辑和调试过程,和前面程序段的debug调试有何相同之处以及有何不同之处。七、实验要求1、 操作要求:正确输入自己的源程序并存盘,正确使用MASM.EXE和LINK.EXE文件以生成可执行文件,熟练使用DEBUG命令对可执行程序进行调试,记录调试情况。2、 报告要求:写明实验步骤,每步操作中遇到问题及解决办法,记录调试情况,打印调试好并修改过的源程序。实验四 汇编语言程序设计与调试一、实验目的 1、学习汇编语言程

26、序的设计方法。 2、学习DOS功能调用的使用方法。 3、进一步掌握源程序的汇编、连接及运行方法。3、 熟练掌握用DEBUG调试程序的方法。二、实验仪器及系统 微型计算机三、预习要求 按程序设计步骤,编写符合功能要求的源程序,并考虑实验步骤。四、实验内容1、 编写一完整的汇编语言源程序,要求完成如下功能: (1)、先在屏幕上显示“What day is today?” (2)、等待输入17某数字并回车,如果输入正确,则换行显示: Today is xxx! 其中xxx是星期数的英文缩写;如果输入错误,则换行显示:Wrong! INPUT AGAIN 并重新显示“What day is today

27、?”等待输入 。 (3)、输入正确并正确显示后退回DOS状态。2、 将编好的源程序用编辑软件输入计算机并存盘。3、 将源程序进行汇编、连接,生成可执行的程序并进行调试。4、 在DOS环境下,运行调试好的程序,观察运行结果。五、实验注意事项 本次实验要求编写一个完整的汇编语言源程序并且机调试,所以编写程序是本次实验的关键。字符输入和显示器的字符输出均有dos功能号可以直接调用。六、思考题 要是要求输入正确并正确显示后不退回DOS状态而再次提问“What day is today?”等待输入,程序应如何修改 。七、实验要求1、 操作要求:正确输入源程序,并对其中进行汇编、连接和调试,记录调试过程,

28、打印调试正确的源程序和运行结果。2、 报告要求:提供程序流程图,源程序清单及运行结果,总结调试程序的经验和体会。附:1、 推荐数段定义格式:data segmemt buff db 0ah,0dh,what day is today?$ dis1 db 0ah,0dh,today is dis2 db 3 dup(?),!$ dis3 db 0ah,0dh,wrong!Input again !$ tab db mun, tue , wed ,thu , fri , sat , sun data ends2、 DOS功能调用方法(1) O9H号功能调用向显示器送一字符串方法:MOV ah,09

29、h MOV DX,OFFSET BUFF INT 21H(2) 01H号功能调用从键盘接收一字符送AL,并在显示器上显示该字符。 MOV AH,01H INT 21H实验五 使用8253输出方波一、实验目的 掌握8253的使用方法二、实验仪器及系统 微型计算机,微机原理实验箱三、 实验内容以1MHz的信号为时钟信号,利用8253产生一个周期为1ms的方波和一个周期为1ms,占空比为1:10的波形。四、预习要求 熟悉8253的使用方法,分析参考程序五、实验连线1、 8MHz晶振输出(J22-1)接分频电路J60-1;2、 8253的CLK0(J37-4)接8MHz晶振8分频输出J60-5(1MHz);3、 8253GATE0(J37-3),GATE1(J37-6)连+5V;4、 8253的/CS(J37-1)接I/O译码输出J40-1;5、 8253的CLK1(J37-7)

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

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