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

    8086微机原理及接口技术实验教程chu副本.docx

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

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

    8086微机原理及接口技术实验教程chu副本.docx

    1、8086微机原理及接口技术实验教程chu 副本1.2 数制转换实验1.2.1 实验目的1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解。2. 熟悉程序调试的方法。1.2.2 实验设备PC机一台,TD-PITE实验装置一套。1.2.3 实验内容及步骤计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。计算机与外设间的数制转换关系如图1.11所示,数制对应关系如表1.1所示。图1.11 数

    2、制转换关系1. 将ASCII码表示的十进制数转换为二进制数十进制表示为: (1)Di代表十进制数0,1,2,9;上式转换为: (2)由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。表1.1 数制对应关系表十六进制BCD码二进制机器码ASCII码七段码共阳共阴00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111

    3、011137H78H07H81000100038H00H7FH91001100139H18H67HA101041H08H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF111146H0EH71H程序流程图如图1.12所示。实验参考程序如下。实验程序清单(例程文件名:A2-1.ASM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSDATA SEGMENTSADD DB 30H,30H,32H,35H,36H ;十进制数:00256DATA ENDSCODE SEGMENT ASSUM

    4、E CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AX MOV AX, OFFSET SADD MOV SI, AX MOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, SI SUB AL, 30HA1: IMUL BX MOV DX, SI+01 AND DX, 00FFH ADC AX, DX SBB AX, 30H INC SI LOOP A1A2: JMP A2CODE ENDS END START实验步骤(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统。(2)待转换数据存放于数据段,根

    5、据自己要求输入,默认为30H,30H,32H,35H,36H。(3)运行程序,然后停止程序。(4)查看AX寄存器,即为转换结果,应为:0100 。(5)反复试几组数据,验证程序的正确性。2. 将十进制数的ASCII码转换为BCD码从键盘输入五位十进制数的ASCII码,存放于3500H起始的内存单元中,将其转换为BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制的ASCII码,则对应存放结果的单元内容为“FF”。由表1.1可知,一字节ASCII码取其低四位即变为BCD码。实验程序清单(例程文件名:A2-2.ASM)SSTACK SEGMENT STACK DW 64 DUP

    6、(?) SSTACK ENDS 图1.12 转换程序流程图CODE SEGMENT ASSUME CS:CODESTART: MOV CX, 0005H ;转换位数 MOV DI, 3500H ;ASCII码首地址A1: MOV BL, 0FFH ;将错误标志存入BL MOV AL, DI CMP AL, 3AH JNB A2 ;不低于3AH则转A2 SUB AL, 30H JB A2 ;低于30H则转A2 MOV BL, ALA2: MOV AL, BL ;结果或错误标志送入AL MOV DI+0AH,AL ;结果存入目标地址 INC DI LOOP A1 MOV AX,4C00H INT

    7、21H ;程序终止CODE ENDS END START实验步骤(1)自己绘制程序流程图,然后编写程序,编译、链接无误后装入系统。(2)在3500H3504H单元中存放五位十进制数的ASCII码,即:键入E3500后,输入31,32,33,34,35。(3)运行程序,待程序运行停止。(4)在调试窗口键入D350A,显示运行结果,应为: 0000:350A 01 02 03 04 05 CC (5)反复测试几组数据,验证程序功能。3. 将十六位二进制数转换为ASCII码表示的十进制数十六位二进制数的值域为065535,最大可转换为五位十进制数。五位十进制数可表示为:Di:表示十进制数09将十六位

    8、二进制数转换为五位ASCII码表示的十进制数,就是求D1D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H3514H单元中。实验程序清单(例程文件名:A2-3.ASM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV SI,3500H ;源数据地址 MOV DX,SI MOV SI,3515H ;目标数据地址A1: DEC SI MOV AX,DX MOV DX,0000H MOV CX,00

    9、0AH ;除数10 DIV CX ;得商送AX, 得余数送DX XCHG AX,DX ADD AL,30H ;得Di的ASCII码 MOV SI,AL ;存入目标地址 CMP DX,0000H JNE A1 ;判断转换结束否,未结束则转A1A2: CMP SI,3510H ;与目标地址得首地址比较 JZ A3 ;等于首地址则转A3,否则将剩余地址中填30H DEC SI MOV AL,30H MOV SI,AL JMP A2A3: MOV AX,4C00H INT 21H ;程序终止CODE ENDS END START实验步骤(1)编写程序,经编译、链接无误后,装入系统。(2)在3500H、

    10、3501H中存入0C 00。(3)运行程序,待程序运行停止。(4)检查运行结果,键入D3510,结果应为:30 30 30 31 32。(5)可反复测试几组数据,验证程序的正确性。4. 十六进制数转换为ASCII码由表1.1中十六进制数与ASCII码的对应关系可知:将十六进制数0H09H加上30H后得到相应的ASCII码,AHFH加上37H可得到相应的ASCII码。将四位十六进制数存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址为350AH的内存单元中。自行绘制流程图。实验程序清单(例程文件名为A2-4.ASM)SSTACK SEGMENT STACK DW 64

    11、 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV CX,0004H MOV DI,3500H ;十六进制数源地址 MOV DX,DI A1: MOV AX,DX AND AX,000FH ;取低4位 CMP AL,0AH JB A2 ;小于0AH则转A2 ADD AL,07H ;在AFH之间,需多加上7HA2: ADD AL,30H ;转换为相应ASCII码 MOV DI+0DH,AL ;结果存入目标地址 DEC DI PUSH CX MOV CL,04H SHR DX,CL ;将十六进制数右移4位 POP CX LOOP A1 M

    12、OV AX,4C00H INT 21H ;程序终止CODE ENDS END START实验步骤(1)编写程序,经编译、链接无误后装入系统。(2)在3500H、3501H中存入四位十六进制数203B,即键入E3500,然后输入3B 20。(3)先运行程序,待程序运行停止。(4)键入D350A,显示结果为:0000:350A 32 30 33 42 CC 。(5)反复输入几组数据,验证程序功能。5. BCD码转换为二进制数将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3510H起始的内存单元中,自行绘制流程图并编写程序。实验程序清单(例程文件名为:A2-5.A

    13、SM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODESTART: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510HA1: MOV AL, SI ADD AL, AL MOV BL, AL ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, SI MOV DI, AL INC SI INC DI LOOP A1 MOV AX,4C00H INT 21H ;程序终止CODE ENDS END START实

    14、验步骤(1)编写程序,经编译、链接无误后装入系统。(2)将四个二位十进制数的BCD码存入3500H3507H中,即:先键入E3500,然后输入01 02 03 04 05 06 07 08。(3)先运行程序,待程序运行停止。(4)键入D3510显示转换结果,应为:0C 22 38 4E。(5)反复输入几组数据,验证程序功能。1.2.4 思考题1. 实验内容1中将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大可为多少?为什么?2. 将一个十六位二进制数转换为ASCII码十进制数时,如何确定Di的值?3. 在十六进制转换为ASCII码时,存转换结果后,为什么要把DX向右

    15、移四次?4. 自编ASCII码转换十六进制、十六进制小数转换二进制、二进制转换BCD码的程序,并调试运行。1.3 运算类编程实验1.3.1 实验目的1. 掌握使用运算类指令编程及调试方法。2. 掌握运算类指令对各状态标志位的影响及其测试方法。3. 学习使用软件监视变量的方法。1.3.2 实验设备PC机一台,TD-PITE实验装置一套。1.3.3 实验内容及步骤80X86指令系统提供了实现加、减、乘、除运算的基本指令,可对表1.2所示的数据类型进行算术运算。表1.2 数据类型算术运算表数制二进制BCD码带符号无符号组合非组合运算符、操作数字节、字、多精度字节(二位数字)字节(一位数字)1. 二进

    16、制双精度加法运算计算XYZ,将结果Z存入某存储单元。实验程序参考如下。本实验是双精度(2个16位,即32位)加法运算,编程时可利用累加器AX,先求低16位的和,并将运算结果存入低地址存储单元,然后求高16位的和,将结果存入高地址存储单元中。由于低16运算后可能向高位产生进位,因此高16位运算时使用ADC指令,这样在低16位相加运算有进位时,高位相加会加上CF中的1。实验程序清单(例程文件名为:A3-1.ASM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSPUBLIC XH, XL, YH, YL, ZH, ZL ;设置全局变量DATA SEGMENT

    17、XL DW ? ;X低位XH DW ? ;X高位YL DW ? ;Y低位YH DW ? ;Y高位ZL DW ? ;Z低位ZH DW ? ;Z高位DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AX MOV AX, XL ADD AX, YL ;X低位加Y低位 MOV ZL, AX ;低位和存到Z的低位 MOV AX, XH ADC AX, YH ;高位带进位加 MOV ZH, AX ;存高位结果 JMP START ;在此行设置断点,以观察变量值CODE ENDS END START实验步骤(1)

    18、编写程序,经编译、链接无误后装入系统。(2)程序装载完成后,点击变量区标签将观察窗切换到变量监视窗口。(3)点击,将变量XH,XL,YH,YL,ZH,ZL添加到变量监视窗中,然后修改XH,XL,YH,YL的值,如图2.13所示,修改XH为0015,XL为65A0,YH为0021,YL为B79E。(4)在JMP START语句行设置断点,然后运行程序。(5)当程序遇到断点后停止运行,查看变量监视窗口,计算结果ZH为0037,ZL为1D3E。(6)修改XH,XL,YH和YL的值,再次运行程序,观察实验结果,反复测试几组数据,验证程序的功能。 图1.13 变量监视窗口 思考题:1. 求累加和程序设计

    19、,在偏移地址为1000H开始依顺序填入16个字(16个16位数),利用程序求和,存放在偏移地址2000H;2. 多字节加法程序设计,参考原程序,编写个两个64位数的减法程序,结果保存到具体内存单元,调试并记录。 2. 十进制的BCD码减法运算计算XYZ,其中X、Y、Z为BCD码。实验程序参考例程。实验程序清单(例程文件名为A3-2.ASM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSPUBLIC X, Y, Z ;定义全局变量DATA SEGMENTX DW ?Y DW ?Z DW ?DATA ENDSCODE SEGMENT ASSUME CS:C

    20、ODE, DS:DATASTART: MOV AX, DATA MOV DS, AX MOV AH, 00H SAHF MOV CX, 0002H MOV SI, OFFSET X MOV DI, OFFSET ZA1: MOV AL, SISBB AL, SI+02H DAS PUSHF AND AL, 0FH POPF MOV DI, AL INC DI INC SI LOOP A1 JMP START ;设置断点,以方便观察变量。CODE ENDS END START实验步骤(1)输入程序,编译、链接无误后装入系统。(2)点击将变量X,Y,Z添加到变量监视窗中,并为X,Y赋值,假定存入4

    21、0与12的BCD码,即X为0400,Y为0102。(3)在JMP START语句行设置断点,然后运行程序。(4)程序遇到断点后停止运行,观察变量监视窗,Z应为0208。(5)重新修改X与Y的值,运行程序,观察结果,反复测试几次,验证程序正确性。3. 乘法运算实现十进制数的乘法运算,被乘数与乘数均以BCD码的形式存放在内存中,乘数为1位,被乘数为5位,结果为6位。实验程序参考例程。实验程序清单(例程文件名为A3-3.ASM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSDATA SEGMENTDATA1 DB 5 DUP(?) ;被乘数DATA2 DB

    22、? ;乘数RESULT DB 6 DUP(?) ;计算结果DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX CALL INIT ;初始化目标地址单元为0 MOV SI,OFFSET DATA2 MOV BL,SI AND BL,0FH ;得到乘数 CMP BL,09H JNC ERROR MOV SI,OFFSET DATA1 MOV DI,OFFSET RESULT MOV CX,0005HA1: MOV AL,SI+04H AND AL,0FH CMP AL,09H JNC ERROR DEC

    23、 SI MUL BL AAM ;乘法调整指令 ADD AL,DI+05H AAA MOV DI+05H,AL DEC DI MOV DI+05H,AH LOOP A1A2: MOV AX,4C00H INT 21H ;程序终止;=将RESULT所指内存单元清零=INIT: MOV SI,OFFSET RESULT MOV CX,0003H MOV AX,0000HA3: MOV SI,AX INC SI INC SI LOOP A3 RET;=错误处理=ERROR: MOV SI,OFFSET RESULT ;若输入数据不符合要求则RESULT所指向内存单元全部写入E MOV CX,0003H

    24、 MOV AX,0EEEEHA4: MOV SI,AX INC SI INC SI LOOP A4 JMP A2CODE ENDS END START实验步骤(1)编写程序,编译、链接无误后装入系统。(2)查看寄存器窗口获得CS的值,使用U命令可得到数据段段地址DS,然后通过E命令为被乘数及乘数赋值,如被乘数:01 02 03 04 05,乘数:01,方法同实验内容1。(3)运行程序,待程序运行停止。(4)通过D命令查看计算结果,应为:00 01 02 03 04 05;当在为被乘数和乘数赋值时,如果一个数的低4位大于9,则查看计算结果将全部显示为E。(5)反复测试几组数据,验证程序的正确性。

    25、1.4 分支程序设计实验1.4.1 实验目的1. 掌握分支程序的结构。2. 掌握分支程序的设计、调试方法。1.4.2 实验设备PC机一台,TD-PITE实验装置一套。1.4.3 实验内容设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.14所示。 (a) (b) (c)图1.14 源数据块与目的数据块在存储中的位置情况对于两个数据块分离的情况,如图1.14(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”

    26、而遭到破坏,可有如下结论:当源数据块首地址目的块首地址时,从数据块末地址开始传送数据,如图1.14(b)所示。当源数据块首地址目的块首地址时,从数据块首地址开始传送数据,如图1.14(c)所示。实验程序流程图如图1.15所示。图1.15 程序流程图实验程序清单(例程文件名为:A4-1.ASM)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV CX, 0010H MOV SI, 3100H MOV DI, 3200H CMP SI, DI JA A2 ADD SI, CX ADD D

    27、I, CX DEC SI DEC DIA1: MOV AL, SI MOV DI, AL DEC SI DEC DI DEC CX JNE A1 JMP A3A2: MOV AL, SI MOV DI, AL INC SI INC DI DEC CX JNE A2A3: MOV AX,4C00H INT 21H ;程序终止CODE ENDS END START1.4.4 实验步骤1. 按流程图编写实验程序,经编译、链接无误后装入系统。2. 用E命令在以SI为起始地址的单元中填入16个数。3. 运行程序,待程序运行停止。4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。思考题:1、将源数据首址改为3100H,目的数据地址改为310A,再加以验证(注意单步调试);2、将源数据首址改为310AH,目的数据地址改为3100,再加以验证(注意单步调试)。1.5 循环程序设计实验1.5.1 实验目的1. 加深对循环结构的理解。2. 掌握循环结构程序设计的方法以及调试方法。1.5.2 实验设备PC机一台,TD-PITE实验装置一套。1.5.3 实验内容及步骤1. 计算S12334


    注意事项

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

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




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

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

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


    收起
    展开