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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理实验.docx

1、微机原理实验微机实验报告信息82陈赞08055087一、 显示程序实验1.1 实验目的(1) 掌握在 PC 机上以十六进制数形式显示数据的方法。掌握部分DOS 功能调用的使用方法。(2) 掌握分支程序及子程序的设计方法。1.2 实验设备PC 机一台。1.3 实验内容及说明计算机输入设备输入的信息一般是由ASCII 码或BCD 码表示的数据或字符,CPU 一般均用二进制数进行计算或用其他信息进行处理,处理结果又必须依照外设的要求变为ASCII 码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。1.4 实验步骤(1) 运行 QTHPCI 软件,根据实验内容编

2、写程序。(2) 使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。(3) “调试”菜单中的“进行调试”命令进入Debug 调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9 连续运行。(4) 更改数据区的数据,考察程序的正确性。1.5 程序原代码DATA SEGMENT MES DB Show a as hex:,0AH,0DH,$SD DB aDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAstart: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES ;show message M

3、OV AH,09H INT 21H MOV SI,OFFSET SD MOV AL,DS:SI AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H MOV AL,DS:SI AND AL,0FH ;取低4位 CMP AL,0AH JB C3 ADD AL,07HC3: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H

4、MOV AX,4C00H ;go back to dos INT 21HCODE ENDSend start1.6 试验结果附图1.7 显示程序流程二、 求和程序设计实验2.1 实验目的(1) 掌握使用运算类指令编程及调试方法。(2) 掌握运算类指令对各状态标志位的影响及其测试方法。2.2 实验设备PC 机一台。2.3 实验内容及说明二进制双精度加法运算.计算Z=X+Y。按提示输入数据,在屏幕显示的运行结果中查看结果是否正确。修改X、Y 的值,可得到不同的结果。2.4 实验步骤(1) 运行 QTHPCI 软件,根据实验内容编写程序。(2) 使用“项目”菜单中的“编译”或“编译连接”命令对实验程

5、序进行编译、连接。(3) “调试”菜单中的“进入调试器”命令进入Debug 调试,F9 运行程序。(4) 按提示输入数据,在屏幕显示的运行结果中查看结果是否正确。修改X、Y 的值,可得到不同的结果。2.5 实验程序*-* * 运算类指令编程实验 * * 按提示输入数据 * * 运行程序,在屏幕显示的运行结果中查看求和结果是否正确 * * 因为用到键盘输入,不要在此窗口直接运行,而是到TD调试器里运行 * *-*STACK1 SEGMENT STACK DW 64 DUP(?)STACK1 ENDSDATA SEGMENTXL DW ? ;请在此处给X低位赋值XH DW ? ;请在此处给X高位赋

6、值YL DW ? ;请在此处给Y低位赋值YH DW ? ;请在此处给Y高位赋值ZL DD ?ZH DD ?SIGN DB 0 ;是否结束输入数据处理标记sign0 DB 0 ;是否出错 BUF DB 100 ;字符缓冲区 DB ? DB 100 DUP(0)ARR DD 2 DUP(0)input DB 0ah,0dh,compute Z=X+Y,then output the result DB 0AH,0DH,if you want to quit please press .q/Q. dB 0ah,0dh,press other key to input x,y,0ah,0dh,$out

7、put db 0ah,0dh,z=x+y=$BUF1 DB 10 DUP(0)BUF0 DB 10 DUP(0)over db over flow error!$dat dw 0ahERROR_MESS DB INPUT ERROR ,PLEASE INPUT AGAIN,0AH,0DH,$input1 db please input x,y(065535),0ah,0dh,X=$input2 db 0AH,0DH,y=$n db ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXL0: LEA D

8、X,INPUT ;输入提示 MOV AH,9 INT 21H MOV AH,08h INT 21h CMP AL,Q JE exit CMP AL,q JE exit LEA BX,WORD PTR xl MOV SIGN,0 MOV SIGN0,0 LEA DX,input1 MOV AH,9 INT 21h reinput: LEA DX,BUF MOV AH,10 INT 21H LEA DI,BUF+2 ;开始处理输入的数据 L1: LEA SI,BUF0 MOV CX,0L2: MOV DL,DI INC DI CMP DL,0DH JNE AA ADD SIGN,1 JMP A0

9、AA: MOV SI, DL INC SI INC CX JMP L2A0: LEA SI,BUF0 MOV BP,CX CALL F10T2 CMP sign0,-1 JE et MOV BX,AX ADD BX,2 MOV BX,DX ADD BX,2a1: CMP sign,2 JE end0 LEA DX,input2 MOV AH,9 INT 21h JMP reinputexit: MOV AH,4CH INT 21Het: LEA DX,error_mess ;出错提示 MOV AH,9 INT 21h JMP L0END0: MOV AX,XL ;X的低位送AX ADD AX,

10、YL ;X的低位加Y的低位 MOV ZL,AX ;存低位和 MOV AX,XH ;X的高位送AX ADC AX,YH ;X的高位加Y的高位,同时加上CF JNC NEXT1 LEA DX,OVER MOV AH,9 INT 21H JMP L0NEXT1: LEA DX,OUTPUT ;输出结果 MOV AH,9 INT 21H MOV AX,zh OR AX,AX JNZ et MOV AX,zl CALL F2T10 JMP L0 * 十进制转化为二进制子程序 *入口参数 SI-要转化的字符串首址 * CX-十进制位数 *出口参数 AL-转化为的二进制数 * * F10T2 PROC PU

11、SH BX MOV Ax,0 MOV SIGN0,0 MOV BL,SI CMP BL,+ JZ m CMP BL,- JNZ NEXT3 MOV SIGN0,1m: DEC CXNEXT4: INC SI MOV BL,SINEXT3: CMP BL,30H JB D1 CMP bl,39h JA d1 SUB bl,30h MOV bh,BYTE PTR 0 mul dat ADD AL,bl JC d1 DEC cx JNE next4 CMP sign0,1 JNE qq NEG axQQ: CWD POP bx RET d1: MOV sign,-1 JMP qqf10t2 ENDP

12、*二进制转化为十进制子程序 *入口参数 AL-要转化的二进制数据 * *出口参数 BUF-存放转化为的 * 十进制字符串 * * F2T10 PROC PUSH BX PUSH DX PUSH SI PUSH AX LEA SI,BUF OR AL,AL JNS PLUS NEG AL MOV SI,BYTE PTR - INC SIPLUS: MOV AH,0 MOV BX,10 CALL RADIX1 MOV SI,BYTE PTR $ MOV DX,OFFSET BUF MOV AH,9 INT 21H POP AX POP SI POP DX POP BX RETF2T10 ENDP*

13、进制转换处理程序 *入口参数 AX-要转化的二进制数据 * BX-要转换成BX进制的数据 *出口参数 * * * RADIX1 PROC PUSH CX PUSH DX MOV CX,0LOP1: MOV DX,0 DIV BX PUSH DX INC CX OR AX,AX JNE LOP1LOP2: POP AX CMP AL,10 JB L11 ADD AL,7L11: ADD AL,30H MOV SI,AL INC SI DEC CX JNE LOP2 POP DX POP CX RETRADIX1 ENDPCODE ENDSEND START2.6 试验结果附图2.7 求和程序设计实验主程序流程图三、实验总结第一个试验只须改动预先设置的数据区的数据即可。第二个加法器的实验,原程序只能实现8位加法,结果范围只能在-128到127之间;需要将结果范围修正到-3276832767。因此需要修改数据范围,此外,将F2T10子程序中的AL修改为AX,从而避免溢出,造成错误的结果。

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

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