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

    计算机硬件技术基础实验教程答案重庆大学.docx

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

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

    计算机硬件技术基础实验教程答案重庆大学.docx

    1、计算机硬件技术基础实验教程答案重庆大学计算机硬件技术基础实验教程答案实验一:简单程序设计实验(1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。程序流程图略。 参考源程序:DATA SEGMENTNUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ?NUM4 DW ? DATA ENDSCODE SEGMENTASSUME DS:DATA, CS:CODESTART: MOV AX,DATA ;数据段寄存器初始化MOV DS,AXMOV A

    2、X, WORD PTR NUM1MOV DX, WORD PTR NUM1+2DIV NUM2MOV NUM3,AX MOV NUM4,DXMOV AH,4CH ;正常返回DOS系统INT 21H CODE ENDSEND START(2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X1X2 拆为 X1 和 X2 两 部分,并以 0X1 和 0X2 的形式分别存入 ARY+1 和 ARY+2 单元中。程序流程图略。 参考源程序:DATA SEGMENT ARY DB 2AH,?,?DATA ENDSCODE SEGMENTASSUME DS:DATA, CS:CODE S

    3、TART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET ARY ;取ARY的偏移地址MOV AL,SI ;取16进制数至ALMOV BL,ALAND AL,0F0H ;取16进制数的高四位,即X1SHR AL,4MOV SI+1,AL ;存0X1MOV AL,BLAND AL,0FH ;取16进制数的低四位,即X2MOV SI+2,AL ;存0X2MOV AH,4CH INT 21HCODE ENDSEND START实验二:分支程序设计实验(1)编写一个字符比较程序,比较 3 个无符号字节数 A,B,C 的大小,并根据比较结果 对变量 K 赋值:如果 3 个数不相等,

    4、则 K=0;如果 3 个数中有两个相等,则 K=1; 如果 3 个数都相等,则 K=2。程序流程图略。 参考源程序:DATA SEGMENT ;定义待比较数A、B、C,比较结果KA DB 20H B DB 20H C DB 20H K DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AX MOV AL,ACMP AL,B ;对A、B进行比较,不相等则转到COMP2JNE COMP2 ;相等则比较A、CCMP AL,CJNE K1 ;A、C不相等则K=1JMP K2 ;A、C相等则K=2COMP2:

    5、 MOV BL,B CMP BL,CJE K1 ;对B、C进行比较,相等则K=1CMP AL,CJE K1 ;对A、C进行比较,相等则K=1K0: MOV K,0JMP EXIT K1: MOV K,1JMP EXIT K2: MOV K,2EXIT: MOV AH,4CHINT 21HCODE ENDSEND START(2)编写一个能实现下列表达式的程序:N = A + BA B设 A,B,C 为小于 128 的正整数。 A B + C程序流程图略。 参考源程序:DATA SEGMENTA BA DB 22H ;定义 A、B、C、N B DB 10HC DB 01H N DB ?DATA

    6、ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX,DATAMOV DS,AXMOV AL, A CMP AL, BJG CALCUL ;A 小于或等于 B 则 N=A+BADD AL,B JMP EXITCALCUL: SUB AL, B ADC AL, CEXIT: MOV N, AL MOV AH,4CH INT 21HCODE ENDSEND START实验三 循环程序设计实验(1)将字符串STRN(以“$”结尾)中的每一个字符均加上偶校验位,并统计有多少个字符 因含有奇数个“1”而加上了校验位。统计结果存于N单元中。程序流程图略

    7、。 参考源程序:DATA SEGMENTSTRN DB What$ ;任意定义一个字串,以“$”结尾COUNT EQU $-STRN N DB ?BUF DB COUNT DUP(?) DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX, DATAMOV DS, AX MOV AX, DATA MOV ES, AXLEA SI, STRN LEA DI, BUFMOV CX, COUNT MOV AL, 0LP1: MOV BL, SI ;逐个取字符进行判断AND BL, BL ;自己和自己做与运算JP NEXT ;根据 PF

    8、标志位的变化进行跳转INC ALOR BL, 80H NEXT: MOV DI, BLINC SI INC DI LOOP LP1MOV N, AL MOV AH, 4CHINT 21HCODE ENDSEND START(2)在 FIRST 开始的一片连续的数据区中存放着 100 个数据,编写一个程序,统计第 1个数据0之前的数据个数。 程序流程图略。 参考源程序:DATA SEGMENTFIRST DB 10H,24H,34H, 73H,20H,44H,03H,36H,41H ;任取 9 个数做演示COUNT EQU $-FIRST NUM DB ?DATA ENDSCODE SEGMEN

    9、TASSUME CS:CODE, DS:DATA START: MOV AX,DATAMOV DS,AXMOV DL, 0 ;计数值初始为 0MOV CX,COUNTMOV BX, OFFSET FIRSTLP1: MOV AL, BX ;每次取一个数,与 0 比较CMP AL, 00H JNE NEXTJMP EXIT ;找到 0 则退出NEXT: INC DL ;没找到 0 则计数值加 1INC BX LOOP LP1EXIT: MOV NUM, DL MOV AH, 4CH INT 21HCODE ENDSEND START实验四:子程序设计实验将BUF开始的10个单元中两位十六进制数转

    10、换成ASCII码,并在屏幕上显示出来。要求码型 转换通过子程序HEXASC实现,参数传送采用寄存器传送方式。程序流程图略。 参考源程序: (1)实现方法一:远过程调用 DATA SEGMENTBUF DB 10H,2FH,0D0H,0FEH,33H,0F0H,20H,10H,3DH,0A2HCOUNT EQU $-BUF ;定义任意长度的一段 BUF DATA ENDSSTACK1 SEGMENT STACKDB 100 DUP(?) ;设置足够深度的栈区STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,D

    11、ATA MOV DS,AXMOV SI,OFFSET BUF MOV CX,COUNTAGAIN: MOV AL,SI ;逐个取数MOV BL,ALSHR AL,4AND AL,0FH ;先对高字节部分转换(寄存器 AL 传参)CALL FAR PTR HEXASC ;调用子程序MOV DL,ALMOV AH,02H ;显示高字节部分对应的字符INT 21HMOV AL,BLAND AL,0FH ;再对低字节部分转换(寄存器 AL 传参)CALL FAR PTR HEXASC ;调用子程序MOV DL,ALMOV AH,02H ;显示低字节部分对应的字符INT 21HMOV DL,20HMOV

    12、 AH,02H ;显示空格INT 21HINC SILOOP AGAINMOV AH,4CH INT 21HCODE ENDSCODEB SEGMENT ASSUME CS:CODEBHEXASC PROC FARCMP AL,09H ;判断是不是数字JA HEXATOF ;是字母则转到 HEXATOFADD AL,30H ;是数字则对应到数字的 ASCII 码JMP ENDHEXHEXATOF:ADD AL,37H ;是字母则对应到字母的 ASCII 码ENDHEX: RET HEXASC ENDP CODEB ENDSEND START(2)实现方法二:近过程调用DATA SEGMENTB

    13、UF DB 10H,2FH,0D0H,0FEH,33H,0F0H,20H,10H,3DH,0A2HCOUNT EQU $-BUF ;定义任意长度的一段 BUF DATA ENDSSTACK1 SEGMENT STACKDB 100 DUP(?) ;设置足够深度的栈区STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AXMOV SI,OFFSET BUF MOV CX,COUNTAGAIN: MOV AL,SI ;逐个取数MOV BL,ALSHR AL,4AND AL,0FH ;先对高

    14、字节部分做转换CALL HEXASCMOV DL,AL ;显示高字节部分对应的字符MOV AH,02H INT 21HMOV AL,BLAND AL,0FH ;再对低字节部分做转换CALL HEXASCMOV DL,AL ;显示低字节部分对应的字符MOV AH,02H INT 21HMOV DL,20H ;显示空格MOV AH,02H INT 21HINC SI ;继续循环或退出LOOP AGAINMOV AH,4CH INT 21HHEXASC PROC NEAR CMP AL,09HJA HEXATOF ADD AL,30H JMP ENDHEXHEXATOF:ADD AL,37H END

    15、HEX: RETHEXASC ENDPCODE ENDSEND START实验五:DOS 中断调用实验(1)如果从键盘上依次输入的是一个数字和一个字母,则输出“RIGHT”标记后结束程序, 否则输出标记“ERROR”后转向原出错处重做。试编程实现该功能。程序流程图略。 参考源程序:DATA SEGMENTMSG DB 0AH,0DH,RIGHT,0AH,0DH,$ WRN DB 0AH,0DH,ERROR,0AH,0DH,$DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX,DATAMOV DS,AXAGAIN: MOV AH,

    16、01H ;等待用户输入 1 个字符并显示INT 21HCMP AL,39H JA EMSG CMP AL,30HJB EMSG ;判断输入是否是数字,不是则报错MOV AH,01H ;等待用户输入 1 个字符并显示INT 21H CMP AL,A JB EMSGCMP AL,Z ;判断输入是否是大写字母,不是则继续JB EXIT ;判断是不是小写字母CMP AL,a JB EMSG CMP AL,zJB EXIT ;不是字母则报错,是字母则转到 EXITEMSG: LEA DX,WRN MOV AH,09H INT 21HJMP AGAINEXIT: MOV DX,OFFSET MSGMOV

    17、AH,09H ;显示“RIGHT”并退出INT 21HMOV AH,4CHINT 21H CODE ENDSEND START(2)编写一程序分类统计字符个数:即接收键入的一串字符(字符个数不超过50个,该字 符串用回车作为结束),并按数字、字母和其它字符分类计数,然后将结果存入digit、letter 和other 3个存储单元中,并显示结果。程序流程图略。 参考源程序:DATA SEGMENTMSG1 DB 0AH, 0DH, Number of digit:,20H,$ MSG2 DB 0AH, 0DH, Number of letters:, 20H,$MSG3 DB 0AH, 0DH

    18、, Number of other characters:, 20H, $ BUF DB 50DB 0DB 50 DUP(?) ;设置足够深的栈区DIGIT DB ? LETTER DB ? OTHER DB ?DATA ENDSSTACK1 SEGMENT STACK DB 100 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AXMOV AH,0AH ;等待用户输入字符串并显示MOV DX,OFFSET BUF INT 21HMOV SI, OFFSET BUF

    19、MOV CL,SI+1MOV CH,00H MOV AL,00H MOV AH,00H MOV BH,00HAGAIN: MOV BL,SI+2 CMP BL,30HJB OTH ;ASCII 码小于 30H 则归类为“其它”CMP BL,3AHJB DIG ;ASCII 码大于等于 30H 小于 3AH 则归类为“数字” CMP BL,41HJB OTH ;ASCII 码大于等于 3AH 小于 41H 则归类为“其它” CMP BL,5BHJB LET ;ASCII 码大于等于 41H 小于 5BH 则归类为“字母” CMP BL,61HJB OTH ;ASCII 码大于等于 5BH 小于

    20、61H 则归类为“其它” CMP BL,7BHJB LET ;ASCII 码大于等于 61H 小于 7BH 则归类为“字母”OTH:INC AL;“其它”计数器加 1DIG:JMP ENDLP INC AH;“数字”计数器加 1LET:JMP ENDLP INC BH;“字母”计数器加 1ENDLP: INC SILOOP AGAIN ;继续循环MOV LETTER, BH MOV OTHER, ALMOV DX, OFFSET MSG1MOV AH,09H INT 21HMOV AL, DIGIT CALL DISP;显示“数字”有多少个MOV DX, OFFSET MSG2MOV AH,0

    21、9H INT 21HMOV AL, LETTER CALL DISP;显示“字母”有多少个MOV DX, OFFSET MSG3MOV AH,09H INT 21HMOV AL, OTHER CALL DISP;显示“其它”有多少个MOV AH,4CH INT 21HDISPPROC NEAR;显示子程序MOV DIGIT, AH ;统计各类个数MOV AH,00H MOV DH,0AH DIV DHMOV CH,AH ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21HADD CH,30H MOV DL, CH MOV AH, 02H INT 21HRET D

    22、ISP ENDPCODE ENDSEND START实验六:扩展定时器/计数器接口实验(1)计数器0工作于方式3,编写初始化程序,观察其输出OUT0信号的波形。修改计数初 值,观察OUT0信号的变化情况。 硬件连接方法:8254计数器0的CLK0端接规则的脉冲输入(频率自选),OUT0接示波器的 正极;示波器负极接地。程序流程图略。 参考源程序:DATA SEGMENTDB 100 DUP(?) DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX,DATAMOV DS,AXMOV DX,20FH ;写入计数器0的控制字MOV A

    23、L,00010110B OUT DX,ALMOV DX,20CH ;写入计数器0的计数初值MOV AL,05H OUT DX,ALMOV AH,4CH INT 21HCODE ENDSEND START(2)将计数器1和计数器0级联起来,二者均工作于方式3,编写初始化程序,观察OUT1 和OUT0信号的波形,说明二者的关系。修改计数初值,观察OUT0和OUT1输出波形的变 化情况。 硬件连接方法:8254计数器1的CLK1端接规则的脉冲输入(频率自选),OUT1接8254计数 器0的CLK0,计数器0的输出OUT0接示波器正极;示波器负极接地。程序流程图略。 参考源程序:DATA SEGMEN

    24、T DB 100 DUP(?)DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV DX,20FHMOV AL,00010110B ;写入计数器0的控制字OUT DX,ALMOV DX,20CH ;写入计数器0的计数初值MOV AL,05H OUT DX,ALMOV DX,20FHMOV AL,01010110B ;写入计数器1的控制字OUT DX,ALMOV DX,20DH ;写入计数器1的计数初值MOV AL,02H OUT DX,ALMOV AH,4CH INT 21HCODE ENDSEN

    25、D START实验七:并行输入/输出接口 8255A 简单编程实验(1)利用 8255A 的 B 口输出控制两组发光二级管 L1,L3,L5,L7 和 L2,L4,L6,L8 亮灭交替变 化。分析:按照题目要求,当 8255A 的 B 口输出为 01010101B(55H)时,发光二极管 L1,L3,L5,L7 会被点亮,当 8255A 的 B 口输出为 10101010B (0AAH)时,发光二极管 L2,L4,L6,L8 会被点 亮。因此,通过延时改变 8255A 的 B 口输出,即可实现两组发光二极管的亮灭交替变化。 由于 LED 随时出于准备好的状态,因此 8255A 的 B 口可工作

    26、于方式 0 输出,其它端口未使 用,无需考虑。因此,8255A 的方式控制字为:10000000B(80H)。硬件连接方法:8255A 的 B 口 PB0PB7 分别连接 L1L8。 程序流程图略。参考源程序:.486DATA SEGMENTPORTA DW 208H ;8255A端口A地址 PORTB DW 209H ;8255A端口B地址 PORTC DW 20AH ;8255A端口C地址 PORT_CTR DW 20BH ;8255A控制端口地址DATA ENDSSTACK1 SEGMENT STACK DB 100 DUP(?)STACK1 ENDSCODE SEGMENTASSUME

    27、 CS:CODE, DS:DATA, SS:STACK1START: MOV AX,DATA MOV DS,AXMOV DX, PORT_CTR MOV AL, 10000000B;8255A初始化;控制字OUT DX, ALMOV DX, PORTB MOV AL, 00H OUT DX, AL;8255A端口B清零,LED初始化(全灭)LP0:MOV BL, 01010101B MOV AL, BLOUT DX, AL CALL DELAYNOT ALMOV BL, ALMOV AH, 01H ;调用BIOS的16H功能判断键盘是否有输入INT 16H JNZ EXIT JMP LP0EX

    28、IT: MOV AH, 4CH INT 21HDELAY PROC NEAR ;延时子程序(可通过修改NOP指令数量改变延时时间) MOV ECX, 0FFFFFFFHLP2: NOPLOOPD LP2RET DELAY ENDPCODE ENDSEND START(2)利用 8255A 的 A 口读入 8 个开关 K1K8 的状态,当只有 K1 合上时,L1L8 显示00000001B;当只有 K1 和 K2 合上时,L1L8 显示 00000010B;当只有 K1,K2 和 K3 合上 时,L1L8 显示 00000011B;当只有 K1,K2,K3 和 K4 合上时,L1L8 显示 00

    29、000100B; 直到所有开关合上时,L1L8 显示 00001000B,并结束程序的运行。发光二极管的状态通 过 8255A 的 B 口进行控制。分析:按照题目要求,可以通过查询的方式读取 8255A 的 B 口状态,并根据查询的结果给 A 口送出相应数据,A 口工作在方式 0 的输入状态,B 口工作在方式 0 输出状态,C 口不需要 考虑,所以 8255A 的方式控制字为:10010000B)硬件连接方法:(1)8255A 的 A 口 PA0PA7 对应连接 K1K8;(2)8255A 的 B 口 PB0PB7 对应连接 L1L8; 源代码:DATA SEGMENTLIST DB 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, 0FFH DATA ENDSSTACK1 SEGMENT STACK DB 100 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK1START: MOV AX, DATAMOV DS, AXMOV DX, 20BH ;8255A初始化MOV AL, 1001000


    注意事项

    本文(计算机硬件技术基础实验教程答案重庆大学.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开