欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    微机原理实验实验指导书.docx

    • 资源ID:13591714       资源大小:281.35KB        全文页数:40页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微机原理实验实验指导书.docx

    1、微机原理实验实验指导书微型计算机原理与接口技术实验指导书王会海 邓宏贵 编2006年10月实验一 数学表达式计算一、 实验目的(1)掌握算术运算指令的应用方法;(2)理解计算机中除法溢出的含义。二、实验内容(1)设W、X、Y、Z均为16位带符号数;(2)要求计算表达式(W(X*YZ220)/X;(3)将表达式的商和余数存入数据区RESULT单元开始的区域中。三、 编程思路该题目要求掌握乘除法运算中带符号数和无符号数运算的区别。为了实现指定功能,应从一下几个方面考虑:(1)带符号数的乘除法运算应选用的指令;(2)乘除法运算中操作数的长度问题;(3)带符号数的扩展问题。四、程序框图 本题的设计思路

    2、如图1所示。五、参考程序清单DATA SEGMENT W DW -304 X DW 1000 Y DW -12 Z DW 20RESULT DW 2 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA 图1 实验一程序框图START: MOV AX,DATA MOV DS,AX MOV AX,X ;被乘数X取到AX中 IMUL Y ;计算X*Y MOV CX,AX MOV BX,DX ;X*Y转到BX、CX MOV AX,Z ;Z取到AX中 CWD ;Z扩展到DX、AX中 ADD CX,AX ADC BX,DX ;计算X*Y+Z SUB BX,

    3、220 ;计算X*Y+Z-220 SBB BX,0 MOV AX,W ;W取到AX中 CWD ;扩展DX、AX中 SUB AX,CX SBB DX,BX ;计算W-(X*Y+Z-220) IDIV X ;计算(W-(X*Y+Z-220)/X MOV RESULT,AX MOV RESULT+2,DX ;送结果 MOV AH,4CH INT 21H ;返回DOSCODE ENDS END START四、 思考题(1) 在进行除法运算时,如何扩展被除数?(2) 本程序在运算时,数据定义应注意什么问题?参考上述程序,试设计程序,其功能试:内存中连续存放着两个无符号字节数序列VAL1i和VAL2i,求

    4、有符号字序列VAL3i,VAL3i(VAL2i+VAL1i)/2,VAL3i是顺序存放的字序列。其中,i为09的十进制数字。实验二 数据串压缩程序设计一、实验目的(1)掌握汇编语言中数组的操作方法以及串操作指令的应用。(2)掌握汇编语言中双重循环的编程技巧。二、实验内容在数据段中有一个数据存储区,该存储区中存有若干个字节数据,存储的是10个阿拉伯数字字符。要求编写程序实现数据串的压缩,具体要求是:(1)、对于连续出现的数字字符压缩成3个字节,第一个字节存储E5H,第二个字节存储该字符的值,第三个字节存储这些字符出现的次数。(2)、字符仅连续出现一次,则不压缩,直接放到压缩数据区中相应的位置。(

    5、3)、开辟新的数据缓冲区存放压缩后的数据。三、编程思路该题目要求掌握双重循环设计方法。为了实现数据串压缩功能,应从以下几个方面考虑:(1)选择一种合适的算法,搜索字符串,并能计算出字符出现的次数。(2)确定寻找字符串使用的指令。(3)确定操作过程中使用的数据指针。(4)确定双重循环程序的结构。四、程序框图本题的设计思路参见图2所示。 图2 实验二程序框图五参考程序清单DATA SEGMENT BUF DB 1111111110000000000022222222333333333333333333 DB 322222222555555555555677777777777777444444444

    6、9 CN EQU ¥-BUF SEC DB CN DUP(?)DATA ENDS ;数据定义STACK SEGMENT STACK DB 100 DUP (?)STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX ;段寄存器初始化 MOV CX,CN ;外循环的循环次数送CX MOV DI,OFFSET BUF ;DI指向源数据串首单元 MOV SI,OFFSET SEC ;SI指向压缩数据串首单元 CLD ;DF清0LPI: MOV AL,DI

    7、 ;取数据串中一个字节送AL INC DI ;源数据串指针指向下一个单元 MOV BX,CX ;CX暂存到BX中 REPZ SCASB ;在源数据串中搜索和AL中内容不同的字节 SUB BX,CX ;计算AL中内容重复出现的次数 CMP BX,1 JZ NEXT ;出现依次转NEXT MOV DL,0E5H ;否则进行数据压缩 MOV SI,DL ;E5H送第1个字节 INC SI MOV SI,AL ;重复出现字符送死2个字节 INC SI MOV SI,BL ;重复出现次数送第3个字节 INC SI JMP EXIT ;转EXITNEXT: MOV SI,AL ;出现依次的数据直接送压缩串

    8、EXIT: DEC DI ;调整源数据串指针 CMP CX,0 JNZ LP1 ;CX中内容不为0转LP1 MOV AH,4CH INT 21H ;返回DOSCODE ENDS END START六、思考题(1)参考上述程序,试设计程序,其功能是:在TEXT开始的内存中存有一段英文文章,以CTRLZ结束(ASCII码为1AH)。现要求在其中找出单词byte,并全部替换成word。 (2)试设计程序,其功能是:在NUM开始的内存中存有一系列无符号字节数据,删除其中的0,后面的数据依次前移。实验三 统计字符出现次数的程序设计一、 实验目的(1) 掌握汇编语言中数组的操作方法以及串操作指令的应用。(

    9、2) 掌握汇编语言中双重循环的编程技巧。二、 实验内容(1) 在数据段中有一个数据存储区,该存储区中存有若干个字节的数据。(2) 要求编写程序统计数据串中0出现的次数并送到另一个内存单元中。三、 编程思路该题目要求掌握双重循环程序设计方法。为了实现数据串搜索并能统计“0”出现的次数,应从以下几个方面考虑:(1) 选择一种合适的算法,搜索字符串,并能计算字符出现的次数。(2) 确定选找字符串使用的指令。(3) 确定操作过程中使用的数据指针。(4) 缺点双重循环程序的结构。四、 程序框图本题的设计思路参见图3所示。图3 实验三程序框图五、 参考程序清淡DATA SEGMENT STR DB 1,2

    10、,0,0,3,4,5,0,6,7,0,9,0,1,7,0 CN EQU ¥-STR COUNT DB ?DATA ENDS ;数据定义STACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AXMOV ES,AX ;段寄存器初始化MOV SI,OFFSET STR ;SI指向数据串首单元MOV AL,0 ;搜索内容0送AL中MOV DL,0 ;计数器送初值0MOV CX,CN ;循环次数送CX中LP: REPN

    11、Z SCASB ;在数据串中搜索0 JNZ EXIT ;未找到,转EXIT INC DL ;找到计数器加1EXIT: CMP CX,0 JNZ LP ;否则计数结果送COUNT单元 MOV AH,4CH INT 21H ;返回DOSCODE ENDS END START六、思考题(1)在数据段VALUE单元存储一个十进制数,设计程序统计其中有多少个二进制位为1,统计结果放在附加段中的COUNTER单元。 (2)若在数据段VALUE开始的单元存储若干十进制数,统计各个数中有多少个二进制位为1的程序该如何设计?统计结果放在附加段中以 COUNTER为首地质的若干单元中。实验四 键盘处理程序设计一、

    12、 实验目的(1)了解小写字母和大写字母在计算机内的表示方法,并学习如何转换。(2)掌握DOS系统功能调用中01H、09H号调用的用法。(3)掌握多分支和循环程序嵌套使用的编程方法。二、实验内容(1) 接受键盘输入的字符。(2) 将其中的小写字母变为大写字母,存放到输入缓冲区中。(3) 遇到回车符表示本次输入结束。(4) C表示程序结束。三、编程思路 该题目要求将输入的小写字母转换为大写字母,以回车表示本次输入的结束,然后继续下一个字符串的输入,以C结束程序。 通过DOS系统功能调用的01H号功能接受的是相应按键的ASCII码,因此首先需要判断输入的字符是否为C键,若是结束程序;否则接着判断是否

    13、为回车键,是回车键则转下一个字符串的输入;如果不是回车键,则判断输入的字符是否为小写字母,若是则转换为大写字母,然后把字符存入字符缓冲区,准备接受下一个字符。程序结束前显示转换后的结果。四、程序框图本题的设计思路参见图4所示 Y N Y N Y N 图4 实验四程序框图五、参考程序清单CRLF MACRO MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH INT 21HENDMDATA SEGMENT BUF DB 80 DUP(?)DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDS CODE SEGMENT

    14、 ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOV AX,DATA MOV DS,AX MOV ES,AX ;段寄存器初始化 MOV BX,OFFSTE BUF ;BX指向字符缓冲区首单元LP: MOV SI,0 ;SI中送偏移量0LP1: MOV AH,01H INT 21H ;接受键盘输入的按键指 CMP AL,03H JZ EXIT ;若是C,则转程序结束位置 CMP AL,0DH JZ NEXT1 ;若是回车键,则转NEXT1 CMP AL,61H JB NEXT CMP AL,7AH JA NEXT ;接收按键不是小写字母转NEXTSU

    15、B AL,20H ;否则按键ASC码减20HNEXT: MOV BX+SI,AL ;AL中内容送字符缓冲区INC SI ;指针调整JMP LPI ;转LPI处接收下一个字节NEXT: MOV BX+SI,ALMOV AL,0AH ;字符串结尾送换行符MOV BX+SI+1,ALMOV AL,$ ;然后送$MOV BX+SI+2,ALCRLF ;显示回车行MOV DX,BXMOV AH,09HINT 21H ;显示输入的字符串JMP LP ;转LPI处接受下一个字符串EXIT: MOV AH,4CHINT 21H ;程序结束CODE ENDSEND START六、思考题在进行输入数据过程中,通过

    16、DOS系统功能调用的01H号功能接受相应按键的ASC码,若采用BIOS功能调用该如何实现?实验五 画图程序设计一、 实验目的(1)了解PC机显示模式的分类及特点。(2)掌握利用汇编语言在图形方式下的编程方法。二、实验内容编写程序,使PC机在中分辨率下(模式4)显示一个等腰三角形。三、 题目分析(1) 对于图形设计程序设计,首先应通过BIOS INT 10H调用。将屏幕的工作方法方式设置为图形方式。其次选择合适的INT 10H功能调用实现绘画。(2) 本题绘制三角形,只要用写像素子程序画出三条直线,就可画出三角形。关键是三条线的坐标要确定好。四、 程序框图本题设计思路参见图5所示。图5 实验五程

    17、序框图五、 程序清单DATA SEGMENT MESS DB Triangle,0DH,$ CN EQU $-MESSMESS1 DB (0,0)0AH,0DH,$MESS2 DB (0,100)0AH,0DH,$MESS3 DB (100,0),0AH,0DH,$F_AL DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DA,AX ;程序初始化 MOV AH,0FH INT 10H ;取当前显示方式 MOV BYTE PTR F_AL,AL ;保存当前显示方式 MOV AH,0 MOV AL,4 I

    18、NT 10H ;设置新的显示方式(模式4) MOV DX,60 MOV CX,100DONE1: MOV AH,0CH MOV AL,02H INT 10H ;画三角形斜边 INC CX INC DX CMP DX,140 JNZ DONE1 MOV DX,140 MOV CX,180DONE2: MOV AH,0CH MOV AL,2 INT 10H ;画三角形的一条边 DEC CX CMP CX,99 JNZ DONE2 MOV DX,60 MOV CX,100DONE3: MOV AH,0CH MOV AL,02H INT 10H ;画三角形的另一条边 INC DX CMP DX,140

    19、 JNZ DONE3 MOV AH,02H MOV DH,19 MOV DL,13 INT 10H MOV DI,OFFSET MESS MOV CX,CNLOP: MOV AH,0EH MOV AL,DI INC DI MOV BL,3 INT 10H LOOP LOP ;显示“Triangle” MOV DH,17 MOV DL,7 MOV BX,OFFSET MESS1 CALL DISP MOV DH,7 MOV DL,5 MOV BX,OFFSET MESS2 CALL DISP MOV DH,17 MOV DL,23 MOV BX,OFFSET MESS3 CALL DISPLOP

    20、1: MOV AH,06H MOV DL,0FFH INT 21H ;是否有键按下 JNZ OVER JMP LOP1OVER: MOV AH,0 MOV AL,F_AL INT 10H ;恢复原显示模式 MOV AH,4CH INT 21H ;返回DOSDISP PROC NEAR MOV AH,02H INT 10H MOV AH,09H MOV DX,BX INT 21H ;显示坐标值 RET DISP ENDPCODE ENDS END START六、 思考题用直接写屏的方式,画出一个蓝色背景的黄色矩形。提示:直接写屏就是将要显示字符的ASCII码及其属性放置在显示存储器中,在运行程序

    21、时对显示存储器中的内容直接显示。单色显卡只能显示字符,其屏幕被划分成80列25行(编号从0开始),显卡就是在这2000个网络位置(每个网格位置就是一个像素)上显示字符。每个像素点及其属性都在显示存储器中相应的位置进行存储。每个字符的ASCII码及其属性共需要两个字节表示,单色屏幕有2000个字符位置,所以单色显示存储器容量为4KB,位于段地址为B000获得区域,偏移地址从0到0F9FH。在文本方式下彩色显卡和单色显卡类似,只是字符颜色属性更丰富,彩色显示存储器位于段地址为B800H的区域。实验六 双色灯实验一.实验要求编写程序,以8255作为输出口,控制4个双色LED灯(可发红,绿,黄光)红绿

    22、交替闪亮。二.实验目的1.学习单板方式下扩展简单I/O接口的方法以及双色灯的使用。2.进一步学习微处理器的编程技术。三.实验电路及连线将DG1DG4,DR1DR4用导线连至8255的PC0PC7,8255的CS片选接至138译码处的200H207插孔。四.实验说明1.双色led是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。 2本实验要求8255工作于方式0,四个双色灯红绿交替闪亮。五、示例程序D1 EQU 10HD2 EQU 200HDATA SEGMENT

    23、PB DB ?DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH CS POP DS MOV DX,203H ;设置为全输出 MOV AL,80H OUT DX,AL MOV DX,202H MOV AL,00 OUT DX,AL ;清LED MOV DX,202H ;全红 MOV AL,0F0H OUT DX,AL MOV BX,7fH CALL DLYBG: MOV AL,01101001B ;南北绿,东西红

    24、 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03HXH1: AND AL,0F6H ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY OR AL,09H ;绿亮 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH1 OR AL,90H ;南北黄 OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY MOV AL,10010110B ;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03XH2: AND AL,0F9H OUT DX,AL MOV

    25、BX,D1 CALL DLY OR AL,06H OUT DX,AL MOV BX,D1 CALL DLY LOOP XH2 OR AL,60H OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY JMP BGDLY PROC NEAR PUSH CXDDD: MOV CX,0FFFHCCC: LOOP CCC DEC BX CMP BX,0 JNE DDD POP CX RET DLY ENDP CODE ENDSEND START实验七 开关状态显示实验一.实验要求编写程序,设定8255的PA口为开关量输入,PC口为开关量输出,要求能随时将PA口

    26、的开关状态通过PC口的发光二极管显示出来。二.实验目的学习使用8255各个口的不同工作方式。三.实验电路及连线 四.实验说明本实验要求8255工作于方式0,PA口设置为输入,PC口设置为输出,输入量为开关量,通过8255可实时显示在LED灯上。按下HALT或RST键则返回监控。五示例程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV DX,203H ;设

    27、置为A口输入,B口输出 MOV AL,90H OUT DX,AL BG: MOV DX,200H ;将A口状态从B口输出 IN AL,DX MOV DX,202H OUT DX,AL JMP BG CODE ENDSEND START实验八 A/D转换实验一.实验要求编程用查询方式采样电位器输入电压,并将采样到的结果实时地通过8279显示在数码管上。(只须显示一位即可。用0F表示0+5V电压)。二.实验目的1.掌握A/D芯片AD0809的转换性能及编程方法。2.学习A/D芯片与其他芯片(如8279)接口的方法,初步建立系统的概念。三.实验电路及连线CS79接译码处210217这个插孔,A/D的

    28、CS插孔接译码处20820F这个插孔, 0809的IN0接至电位器W1的中心抽头插孔。注意:电位器W1两边的两个插孔已经分别接好电源+5V和地,请不要再接,以防接错,出现短路。四.实验说明本实验中所用A/D转换芯片为逐次逼近型,精度为8位,每转换一次约100微秒,所以程序若为查询式,则在启动后要加适当延时。另外,0809芯片提供转换完成信号(EOC),利用此信号可实现中断采集。有兴趣者可自行编制程序。五示例程序Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00 ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率CODE SEGMENTA

    29、SSUME CS:CODE,DS:codeSTART: push cs pop ds call delay MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL MOV CX,06HXZ: MOV DX,D8279 MOV AL,00H OUT DX,AL LOOP XZ MOV DX,D8279 MOV AL,5eH OUT DX,AL MOV DX,D8279 MOV AL,77H OUT DX,AL ;以上为写(AD ) NOPbg: mov dx,208h mov al,0 out dx,al call delay in al,dx mov cl,04h ror al,cl and al,0fh ;MOV BL,AL ;查表,将键码


    注意事项

    本文(微机原理实验实验指导书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开