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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理实验指导书1Word格式文档下载.docx

1、在提示符“”下,键入 “U 2000”,将从2000内存单元开始的内容反汇编,屏幕上显示2000 BF0035 MOV DI, 35002003 B91000 MOV CX, 00102006 B8000 MOV AX, 0000 2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令, 则键入“A 200A” ,屏幕显示 169C:200A ,然后再键入MOV BYTEDI, AL,就把错误的程序改正了。(2)显示和修改数据用修改内存单元命令 “E 地址” 在指定内存单元中存入一个数。如要在3500为首址的单元中存入14H和25H两个数据,可在

2、提示符“”下,键入:“ 3500”显示 169C:3500 键入14,按空格键 25,按空格键用显示内存命令 “D 地址” 检查指定单元的内容在提示符“”下,键入 “D3500”显示 1489:3500 14 25 48 02 1489:3510 * * * * 3570 * * * * 若某单元内容有错则可用命令: “E 地址 ”进行修正。用显示和修改命令 “R ”或“R 寄存器名”显示寄存器或修改其内容在提示符“”下,键入 “R”显示 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE DS=169C ES=169C SS=169C CS=169C IP=200

3、0要修改IP的内容时,键入命令 “R IP”后, 显示 IP 2000,在2000之后键入新内容。(3)程序运行程序的运行方式有单步运行、断点运行和连续运行几种方式。单步运行 输入DEBUG跟踪命令“T”或“T=地址”或“T=地址 指定次数”,可从指定地址处运行该单元中的一条指令,以后只要连续输入“T”命令就能连续执行一条一条指令。如在提示符“”下,键入 “T=2000 ”显示 :AX=0000 BX=0000 CX=001D DX-0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=169C ES=169C SS=169C CS=169C IP=2000 NV断点

4、运行用运行命令 “G=地址 地址断点 地址断点”执行指定地址的程序在提示符“”下,键入 “G=2000 2011 ”2011 F4 HLT 表示这段程序已经执行完毕。连续运行输入DEBUG命令“G=地址”,执行指定地址的程序(4)用显示内存命令检查运行结果在提示符“”下,键入命令 “D 地址”,根据其中的内容判断程序运行是否正确。如检查以上程序执行后的结果,在提示符“”下,键入“ D 3500”,可显示3500 00 01 02 03 04 153510 (二)数码转换程序及其调试1、 将ASCII码表示的十进制数转换为二进制数1)程序设计的算法及其程序十进制数据可表示为:DI代表十进制数1,

5、2,3,9,0 上式可转换为: 由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始乘10加次位的操作,将结果再乘10再加下一次位,如此重复,则可求出二进制数结果来。程序流程及参考程序如图1-1。这里我们规定:被转换的ASCII码十进制数存放在3500H3504H单位中。而转换结果存放在3510H3511H单元中。2)实验步骤(1)输入程序并检查无误。(2)在3500H3504H单元存入十进制数12的ASCII码,即E3500H,并输入3030303132H。(3)G=2000,运行程序,并用CTRL+C来中断程序返回监控状态。(4)用D3510来查看结果,应为:3510 0

6、C 00(5)反复试几组数,考查程序的正确性。地址(H) 助记符 注释2000 MOV SI,3500 ;源地址2003 MOV DI,3510 ;结果地址2006 MOV BX,000A ;乘数 102009 MOV CX,0004 ;计数200C MOV AH,00 ;AH 清零200E MOV AL,SI ;取被转换数2010 SUB AL,30 ;ASCII码变十进制数2012 IMUL BX ;高位(AX)*(BX)送AX2014 ADD AL,SI+01 ;取下一位1017 SUB AL,30 ;ASCII码减30变十进制数2019 INC SI ;源地址指针+1201A LOOP

7、 2012 ;CX-1,若CX不等于零则继续201C MOV DI,AX ;若CX不等于零则存结果201E INT 3 图1-12 将十进制数的ASCII码转换为BCD码1)程序流程和程序设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换成BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制数的ASCII码,则对应存放结果的内容为“FF”。一字节ASCII码取其低四位即变为BCD码,程序流程图及考程序如图1-2所示。(1) 输入程序并检查无误。(2) 在3500H3504H单元中存入五位十进制数的ASCII码,即E3500,并输入31,32

8、,33,34,35。(3) G=2000,运行以上程序。(4) D350A,显示结果为:0000:350A 01 02 03 04 05 CC(5) 反复试几组数,考查程序的正确性。2000 MOV CX,0005;循环计数器赋初值2003 MOV DI,3500;ASCII码首址2006 MOV BL,FF; 错误标志送BL2008 MOV AL,DI;送ASCII码至AL200A CMP AL,3A; 比较AL与3AH200C JNB 2014; 不低于3A则转2014200E SUB AL,30; 低于3A则取ASCII码的低四位2010 JB 2014; 低于30则转20142012

9、MOV BL,AL; 否则AL内容送BL,取代FF2014 MOV AL,BL; 结果或错误标志送AL2016 MOV DI+0A,AL2019 INC DI201A LOOP 2006201C INT 3图1-23 将十六位二进制数转换为ASCII码表示的十进制数1)程序及其流程十六位二进制数的值域为065535,最大可转换为五位十进制数。算法:五位十进制数可表示为:Di:表示十进制数09。 因此,将十六位二进制数转换为五位ASCII码表示表示的十进制数,就是求D1D4,并将它化为ASCII码。程序流程图如图1-3所示,设源数据存于35003501H单元中,结果数存于35103514H单元中

10、。(2) 在35003501H单元中存放0C00,运行程序并检查结果,应看到35103514H单元中的数依次为3030303132。(3) 反复试几组数,并运行程序、观察结果。2000 MOV DX,3500;取二进制数2004 MOV SI,3515; 目标首址在35102007 DEC SI2008 MOV AX,DX200A MOV DX,0000200D MOV CX,000A 2010 DIV CX; ; 除102012 XCHG AX,DX2014 ADD AL,302016 MOV SI,AL2018 CMP DX,0000201B JNE 2007201D CMP SI,351

11、0 ; 填余下高位为02021 JZ 202A;2023 DEC SI2024 MOV AL,302026 MOV SI,AL2028 JMP 201D202A INT 3图1-34、 十六进制数转换为ASCII码1) 程序及其流程经过CPU处理后的十六进制数存放在起始地址为3500H的内存单元中,把它们转换成ASCII码之后,再分别存入起始地址为350AH的内存单元中。 从表2-1中可知,十六进制数加30H即可得到0H9H的ASCII码,而要得到AHFH的ASCII码,则需再加7H。程序流程图及参考程序如图1-4所示。(2) 在35003501H单元中存入四位十六进制数203B,即E3500

12、,并输入3B,20。(3) G=2000,运行以上程序350A 42 33 30 32 CC输入数据与结果ASCII码对应顺序相反。(5) 反复试几组数。考查程序的正确性。2000 MOV CX,00042003 MOV DI,35002006 MOV DX,DI200A AND AX,000F ;取低四位值200D CMP AL,0A; ; 判是否“0”-“9”200F JB 2013 ; 是“0”-“9”转20132011 ADD AL,07; 是“A”-“F”,加72013 ADD AL,30; 转换为ASCII码2015 MOV DI+0A,AL2018 INC DI2019 PUSH

13、 CX ;保护循环计数器内容201A MOV CL,04; 移位次数送CL201C SHR DX,CL201E POP CX201F LOOP 20082021 INT 3图1-44 BCD码转换为二进制数设四个二位十进制数的BCD码存放在起始地址为3500H,的单元中,转换出的二进制数码存入起始地址为3510H的内存单元中,程序流程图及参考程序如图1-5所示。2006 MOV AL,DI2008 ADD AL,AL ;乘2200A MOV BL,AL200C ADD AL,AL ;200E ADD AL,AL ;2010 ADD AL,BL ;乘102012 INC DI2013 MOV A

14、H,002015 ADD AL,DI; BCD码十位与个位加2017 MOV DI+0F,AX;存结果 图1-5201A INC DI201B LOOP 2006201D INT 3(2) 在35003507单元中存入四个十进制数(12,34,56,78)的BCD码,即E3500 输入01,02,03,04,05,06,07,08。(4) D3510,显示结果为3510 0C 00 22 00 38 00 4E 00四、思考题1、 图1-1程序,将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大又可为多少?为什么?2、 将一个十六位二进制数转换为ASCII码十进制数时

15、,如何确定D1的值?3、 在十六进制数转换为ASCII码时,存转换结果后,为什么要把DX向右移四次?4、 自编ASCII码十六进制、十进制小数二进制、二进制BCD码的程序,并调试运行。实验二 程序设计和PC机上程序调试操作实验一、实验目的掌握常用程序设计的基本技巧和方法。学会和熟悉使用MASM汇编程序和LINK连接程序。掌握使用PC机上编程和调试程序的方法。二、实验设备PC机一台,装有DOS基本系统和MASM宏汇编软件三、实验内容及步骤(一)按要求编写程序并在DEBUG下建立、汇编和调试程序1、 四字节二进制数的加法1)程序设计要求两个字的被加数存放于3500H3503H单元,加数存于3504

16、H3507H单元(存放格式为高位存高地址单元,低位存低地址单元),两数之和(如不超过四字节)存放于3508H350BH单元。()编写程序。()在DEBUG下输入程序并检查(程序可存放于2000H8000H单元)。()在3500H3507H单元中存入被加数014527和加数146758。()运行程序后,检查3508H350BH单元中内容。()反复选择几组被加数和加数,检查结果,验证程序正确性。2、数据块的搬移1)程序设计思想和要求将内存中一数据区中数据(源数据块)传送到另一数据区(目的数据块)。源数据块和目的数据块区在内存中的位置有两种情况:两区重叠和不重叠,如下图所示。对于两个数据块不重叠的情

17、况,数据的传送可从数据块的首址开始,也可从数据块的末址开始;对于两个数据块重叠的情况,则要加以分析,否则重叠部分会因搬移而遭破坏。处理方法可以是:在源数据块首址目的数据块首址时,从数据块的首址开始传送,在数据块首址目的数据块首址时,从数据块的末址开始传送。若源数据块首址存放于SI 中,目的数据块首址存放于DI 中,块字节数存放于CX中。要求设计的程序能够实现不同情况下的数据块传送。源数源据块数据目的块数据目的数块)实验步骤()在DEBUG下键入程序并检查(程序可存放于2000H8000H单元)。()确定源数据块和目的数据块区不重叠时的首址,确定数据块个数为16个。并在源数据区送入任意个数据。(

18、)运行程序后,检查目的数据区的内容。()确定源数据块和目的数据块区重叠时, 源区首址目的区首址时的首址, 以及数据块个数为16个,并在源数据区送入任意个数据。运行程序后,检查目的数据区的内容。()确定源数据块和目的数据块区重叠时, 源区首址目的区首址时的首址, 以及数据块个数为16个,并在源数据区送入任意个数据。3、无序数据块的递增排序)程序设计思想和要求在首址为3000H 的数据区中存放着一组无符号数, 数据的长度存于3500H单元内,要求用冒泡法对该区中的数据按递增次序排列。冒泡法的基本思想是从最后一个数(或从第一个数)开始,依次把相邻两个数比较,即第个数与第个数比较,若大则交换,否则不交

19、换,直到个数都比较完为止。此时,其中最小数排在最前列。然后将剩下的-1个数再按前述方法进行,找到N-1个数中最小的数。以后重复进行,直到全部按序排列。()编写程序。()在DEBUG下键入程序并检查(程序可存放于2000H8000H单元,只要不与数据区重叠即可)。()确定数据个数并输入3500H单元中,在首址为3500H的数据区中存入任意无符号数。()运行程序并检查运行结果。()反复修改数据个数和数据区中的数,运行程序、观察结果,验证程序的正确性。4、求数的平方根减奇数法是一种求取近似平方根和平方根的整数部分的方法。有公式:n(2K-1)=N2=1若要求数S的平方根S, 则可以从S中减去奇数1、

20、3、5直到减为零或不够减下一个奇数为止,然后统计减去的奇数个数,它就是S的近似平方根。被开方数为一个足够大的二进制数, 存于首址为4000H的单元内,它的方根存放在以4500H为首的单元内。()在DEBUG下输入程序并检查(程序可存放于2000H8000H单元,和数据存放单元不要重叠)。()在4000H为首的单元中存入一个任意大的数。()运行程序并检查运行结果。()反复修改被开方数,运行程序、观察结果,验证程序的正确性。5、思考题 如果二进制加数和被加数不限于四字节而为任意字节时,程序应作如何改动? 修改原有的无符号数的排序程序为带符号数的排序程序。 被开方数是一压缩型的BCD码十进制数时,程

21、序应作如何修改?(二)MASM汇编程序和LINK连接程序的使用操作在DEBUG中,使用A命令建立程序,一般不能使用标号和伪指令,并不能保存汇编语言源程序,适用于简单程序。MASM宏汇编程序可以将编辑程序建立的源程序文件进行汇编,汇编后在盘上建立目标文件、列表文件和交叉参考文件。而目标文件经LINK程序连接以后成为可执行的文件,它可以在DOS下执行也可在DEBUG下调试。1、计算机钢琴程序1)实验内容根据乐曲中不同的音符是由输出不同频率的声波而产生的原理,通过设置PC机中 8253定时器不同的计数值,可由扬声器发出不同的曲调。 以下是实现PC机作为一架可弹奏的钢琴演奏预定的曲调。程序中采用了IN

22、T 21H软中断调用了DOS的常用子程序。源程序为:DATA SEGMENTMESS DB Push any key to stop!,0dH,0aH,$TABLE DW 524,588,660,698,784,880,988,1048,1176,1320,0TABLEL DB 31H,31H,32H,31H,34H,33H,3BH DB 31H,31H,32H,31H,35H,34H,3BH DB 31H,31H,38H,36H,34H,33H,32H,3BH DB 36H,36H,36H,34H,35H,34H,3BH,0AAHDATA ENDSSTACK SEGMENT PARA STA

23、CK STACKSTA DB 256 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATA, SS: STACK, ES: DATASTART PROC FAR DIV WORD PTR TABLE+BX PUSH DS MOV BX, AX XOR AX, AX MOV AL, 10110110B PUSH AX OUT 43H, AL MOV AX, DATA MOV AX, BX MOV DS, AX OUT 42H, AL MOV ES, AX MOV AL, AH MOV AH, 09H OUT 42H, AL LEA DX,

24、MESS IN AL, 61H INT 21H OR AL, 03HKK: LEA SI, TABLEL OUT 61H, AL CALL DELAY IN AL, 61H AND AL, 0FCH OUT 61H, AL QQ: INC SISING: MOV AH, 06H JMP SING MOV DL, 0FFH FINISH: RET INT 21H START ENDP JNE FINISH MOV AL, SI DELAY PROC NEAR ; 延时子程序 CMP AL, 3BH PUSH CX JNE DDD PUSH AX CALL DELAY MOV AX, 500H ;

25、 大循环次数 JMP QQ X1: MOV CX, 0FFFFH ; 小循环次数DDD: CMP AL, 0AAH X2: DEC CX JE KK JNZ X2 SUB AL, 31H DEC AX SHL AL, 01H JNZ X1 MOV BL, AL POP AX MOV AX, 0000H POP CX MOV DX, 12H RET MOV BH, 00H DELAY ENDP CODE ENDS END START(1)利用EDIT 全屏幕编辑程序或TURBO PASCAL中的编辑功能输入以上程序,以文件名为 PLAYPIA.ASM存盘。(2)在DOS系统下执行子目录MASM中的执行文件MASM.EXE ,用宏汇编程序将PLAYPIA.ASM.汇编成目标文件PLAYPIA.OBJ。操作过程如下:显示 键入 C:MASM MASM MICROSOFT(R) COPYRIGHT(C)SOURCE FILENAME .ASM PLAYPIA OBJECT FILENAME PLAYPIA.OBJ SOURCE LISTINGNUL.LST PLAYPIA CROSS-REFERENCENUL.CRF WARNIING ERRORS 0

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

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