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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理与接口技术实验报告.docx

1、微机原理与接口技术实验报告微机原理与接口技术实验报告学 院: 自 动 化 学 院 班 级: 电 0 9 2 班 姓 名: 王蕾 学 号: 40963006 2011年11月27日第一部分 32位微机原理实验实验一 显示程序实验一、实验目的1.掌握在PC机上以十六进制形式显示数据的方法;2.掌握部分DOS功能调用使用方法;3.熟悉轻松汇编的调试环境和使用。二、实验设备PC微机一台。三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DO

2、S功能调用(INT 21H)。(1) 显示单个字符输出 入口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,$为结束字符 (3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS系统 入口:AH=4CH 调用参数:AL=返回码四、实验程序代码DATA SEGMENT MES DB Viva la Vida!, 0AH,0DH,$ SD DB b DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX

3、MOV DX, OFFSET MES ;显示提示信息 MOV AH, 09H INT 21H MOV DI, OFFSET SD MOV AL, DS:DI AND AL, 0F0H ;取高四位 SHR AL,4 CMP AL, 0AH ;是否是A以上的数 JB L1 ADD AL, 07H L1: ADD AL, 30H MOV DL, AL ; 显示字符 MOV AH, 02H INT 21H MOV AL, DS:DI AND AL, 0FH ;取低四位 CMP AL, 0AH JB L2 ADD AL, 07H L2: ADD AL, 30H MOV DL, AL ; 显示字符 MOV

4、 AH, 02H INT 21H MOV AX, 4C00H ;返回DOS INT 21H CODE ENDS END START 五、实验调试运行步骤1.运行轻松汇编软件,按实验流程图编写实验代码,保存并编译,对语法错误进行修改,直至显示“编译成功!”。2.单击“生成”按钮,显示“连接成功!”。3单击“运行”按钮,查看显示结果是否正确,如果不正确单击“调试”按钮,进行调试。4.更改DB中的数据,观察程序的正确性(将“0D9H,07H,8BH,0C5H, 0EBH,04H,9DH,0F9H”改为“0E3H,0CH,3AH,0F1H,0CDH,01H,4DH,0B6H” ,截图见“六、实验运行结

5、果”中所示)。5.更改DB中的数据,观察程序的正确性(将“a”改为“f”,截图见“六、实验运行结果”中所示)。六、实验运行结果实验二 数据传送实验一、实验目的1.熟悉轻松汇编的调试环境和使用; 2.掌握与数据有关的不同寻址方式。二、实验设备PC微机一台。三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。四、实验程序代码 DDATA SEGMENT ;定义原数据段 MSR DB hello,word!$ LEN EQU $-MSR DDATA ENDS EXDA SEGMENT ; 定义附加数据段 MSD DB LEN DUP(?) EXDA ENDS MYS

6、TACK SEGMENT STACK ;定义堆栈段 DW 20 DUP(?) MYSTACK ENDS CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DDATA,ES:EXDA START: MOV AX,DDATA ;装载数据段寄存器 MOV DS,AX MOV AX,EXDA MOV ES,AX MOV SI,OFFSET MSR MOV DI,OFFSET MSD MOV CX,LEN NEXT: MOV AL,SI ;开始传送数据 MOV ES:DI,AL INC SI INC DI DEC CX JNZ NEXT PUSH ES ;将附加数据段的内容给数

7、据段 POP DS MOV DX,OFFSET MSD ;显示字符串 MOV AH,9 INT 21H ;返回DOS MOV AX,4C00H INT 21H CODE ENDS END START五、实验调试运行步骤1.运行轻松汇编软件,按实验流程图编写实验代码,保存并编译,对语法错误进行修改,直至显示“编译成功!”。2.单击“生成”按钮,显示“连接成功!”。3单击“运行”按钮,查看显示结果是否正确,如果不正确单击“调试”按钮,进行调试。4.更改DB中的数据,观察程序的正确性(将“hello,world!”改为“China is great!”,截图见“六、实验运行结果”中所示)。六、实验运

8、行结果实验三 数码转换程序实验一、实验目的掌握不同进制数及编码相互转换的程序设计方法。二、实验设备PC微机一台。三、实验内容计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如下图所示:1将ASCII码表示的十进制数转换为二进制数十进制数可以表示为:Dn10n+Dn-110n-1+D0100=Di10i 其中Di代表十进制数1、2、39、0。 上式可以转换为:Di10i=

9、(Dn10+Dn-1)10)+Dn-2)10+D1)10+D0 由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数结果。 本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示在屏幕上。2将十进制数的ASCII码转换为BCD码 本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变为BCD码。3将十六进制数的ASCII码

10、转换为十进制数 十六位二进制数的值域为0-65535,最大可转换为五位十进制数。五位十进制数可表示为:ND=D4104+D3103+D2102+D110+D0 因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转换结果显示在屏幕上。4BCD码转换为二进制码本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。四、实验程序代码1将ASCII码表示的十进制数转换为二进制数DATAS SEGMENT MAX

11、DB 11 LEN DB ? STRI DB 11 DUP (?) DATAS ENDS EXTRA SEGMENT NUM DB 11 DUP (?) EXTRA ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:EXTRA START: MOV AX,DATAS ;装载数据段寄存器 MOV DS,AX MOV AX,EXTRA ;装载附加段寄存器 MOV ES,AX LEA DX,MAX ;从键盘上输入字符串 MOV AH,0AH INT 21H MOV CH,0 MOV CL,LEN ;字符串长度给CL LEA SI,STRI ;字符串开始偏移

12、地址给SI XOR AX,AX LEA DI,NUM MOV BL ,0FFH NEXT: MOV AL,SI ;将字符串的十进制ASCII码转换二进制数存到附加数据段 CMP AL,30H JB SAVE_TO_ES CMP AL,39H JA SAVE_TO_ES SUB AL,30H MOV BL,AL SAVE_TO_ES: MOV ES:DI,BL INC DI INC SI LOOP NEXT CALL DISPLAY_FUN MOV AH,4CH INT 21H DISPLAY_FUN PROC ;将二进制数显示 XOR CX,CX XOR AX,AX LEA DI,NUM MO

13、V CX,05H X: XOR BX,BX MOV BL,ES:DI CMP BL,0FFH JZ DISPLAY_FF MOV AL,04H DISPLAY_NORMAL: SHL BL,1 TEST BL,10H JNZ DISPLAY_IT MOV DL,30H JMP DISPLAY_NOW DISPLAY_IT: MOV DL,31H DISPLAY_NOW: PUSH AX MOV AH,02H INT 21H POP AX DEC AL JNZ DISPLAY_NORMAL JMP DISPLAY_END DISPLAY_FF: MOV DH,2 DISPLAY_FF_LOOP:

14、 MOV DL,46H MOV AH,02H INT 21H DEC DH JNZ DISPLAY_FF_LOOP DISPLAY_END: INC DI LOOP X RET DISPLAY_FUN ENDP CODES ENDS END START2将十进制数的ASCII码转换为BCD码DATA SEGMENT STRING DB INPUT:,$ STRING1 DB OUTPUT:,$ MSR DB 6,?,6 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX

15、,STRING MOV AH,09H INT 21H MOV DX,OFFSET MSR MOV AH,0AH INT 21H MOV DL,0AH MOV AH, 02H INT 21H MOV DL,0DH MOV AH, 02H INT 21H LEA DX,STRING1 MOV AH,09H INT 21H MOV CL,MSR+1 MOV SI,0002H MOV BX,OFFSET MSR A1: MOV AL,BX+SI CMP AL,40H JNC B1 SUB AL,30H MOV CH,0 PUSH CX MOV CL,4 MOV DH,AL SHL DH,CL A2:

16、ROL DH,1 MOV DL,DH AND DL,01H ADD DL,30H MOV AH,02H INT 21H DEC CL JNZ A2 POP CX INC SI DEC CL JNZ A1 B1: JZ B2 MOV DL,46H MOV AH,02H INT 21H INC SI DEC CL JNZ A1 B2: MOV AX,4C00H INT 21H CODE ENDS END START3将十六进制数的ASCII码转换为十进制数 DATAS SEGMENT STRI DB FFFF MEM DB 25 DUP(?) DATAS ENDS CODES SEGMENT AS

17、SUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX LEA SI ,STRI LEA DI,MEM MOV CX ,4 XOR AX,AX GET_STR: ;将数据以二进制形式保存到中 MOV AL,SI ;取一个字节 CMP AL,39H JA ABOVE ;如果为十以上的数字,跳转到 SUB AL ,30H JMP INC_REG ABOVE: SUB AL,37H INC_REG: MOV DI,AL INC SI INC DI LOOP GET_STR MOV CX,3 ;将中的数据每位的码保存 LEA DI ,MEM MOV A

18、L,DI MOV AH,0 MOV BX,10H MUL_10H: MUL BX INC DI ADD AL,DI ADC AH,0 LOOP MUL_10H LEA DI,MEM ;/10000 XOR DX,DX MOV BX,10000 DIV BX ADD AX,30H MOV DI+5,AL MOV AX,DX ;/1000 XOR DX,DX MOV BX,1000 DIV BX ADD AX,30H MOV DI+6,AL MOV AX,DX ;/100 XOR DX,DX MOV BX,100 DIV BX ADD AX,30H MOV DI+7,AL MOV AX,DX ;/

19、10 XOR DX,DX MOV BX,10 DIV BX ADD AX,30H MOV DI+8,AL ;/1 ADD DX,30H MOV DI+9,DL ;DISPLAY MOV CX,5 PLAY_LOOP: ;显示 MOV DL,DI+5 MOV AH,02H INT 21H INC DI LOOP PLAY_LOOP MOV AH,4CH ;返回 INT 21H CODES ENDS END START4BCD码转换为二进制码DATAS SEGMENT STRI DB 13H,21H,18H,31H ;分别对应十进制数13?21,18?31的BCD码 MEM DB 20 DUP(?

20、) DATAS ENDS ;STACKS SEGMENT ;STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS ;,SS:STACKS START: MOV AX,DATAS MOV DS,AX LEA SI ,STRI LEA DI, MEM XOR AX,AX MOV BX ,04H ZHUANHUAN: MOV CX ,2 MOV AL,SI ;取一个字节 C1: ROL AL,4 ;每次循环四位,求对应的ASCII码,保存到MEM单元 MOV DH,AL AND DH,0FH ADD DH,30H MOV DI,DH INC DI LO

21、OP C1 INC SI DEC BX JNZ ZHUANHUAN MOV CX,8 ;送屏幕显示 LEA DI,MEM XIANSHI: MOV BX,2 C2: MOV DL,DI MOV AH,02H INT 21H INC DI DEC BX JNZ C2 MOV DL,0AH ;显示空格 MOV AH,02H INT 21H LOOP XIANSHI MOV AH,4CH INT 21H CODES ENDS END START五、实验调试运行步骤1.运行轻松汇编软件,按实验流程图编写实验代码,保存并编译,对语法错误进行修改,直至显示“编译成功!”。2.单击“生成”按钮,显示“连接成

22、功!”。3单击“运行”按钮,查看显示结果是否正确,如果不正确单击“调试”按钮,进行调试。4.更改DB中的数据,观察程序的正确性,截图见“六、实验运行结果”中所示六、实验运行结果1将ASCII码表示的十进制数转换为二进制数2将十进制数的ASCII码转换为BCD码3将十六进制数的ASCII码转换为十进制数4BCD码转换为二进制码实验四 运算类程序实验一、实验目的1.掌握运算类指令编程及调试方法; 2.掌握运算类指令对各状态标志位的影响及测试方法。二、实验设备PC微机一台。三、实验内容80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对下表所示的数据类型进行算术运算。1.二进制双精度加法运

23、算 .本实验要求计算X+Y=Z,将结果Z输出到屏幕,其中X=001565A0H,Y=0021B79EH。 实验利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。在80386以上微机中可以直接使用32位寄存器和32位加法指令完成本实验的功能。2十进制数的BCD码减法运算本实验要求计算X-Y=Z,其中,X、Y、Z为BCD码,其中X=0400H,Y=0102H。四、实验程序代码二进制双精度加法运算DATAS SEGMENT STRI DB

24、 13H,21H,18H,31H ;分别对应十进制数13?21,18?31的BCD码 MEM DB 20 DUP(?) DATAS ENDS ;STACKS SEGMENT ;STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS ;,SS:STACKS START: MOV AX,DATAS MOV DS,AX LEA SI ,STRI LEA DI, MEM XOR AX,AX MOV BX ,04H ZHUANHUAN: MOV CX ,2 MOV AL,SI ;取一个字节 C1: ROL AL,4 ;每次循环四位,求对应的ASCII码,保存

25、到MEM单元 MOV DH,AL AND DH,0FH ADD DH,30H MOV DI,DH INC DI LOOP C1 INC SI DEC BX JNZ ZHUANHUAN MOV CX,8 ;送屏幕显示 LEA DI,MEM XIANSHI: MOV BX,2 C2: MOV DL,DI MOV AH,02H INT 21H INC DI DEC BX JNZ C2 MOV DL,0AH ;显示空格 MOV AH,02H INT 21H LOOP XIANSHI MOV AH,4CH INT 21H CODES ENDS END START十进制数的BCD码减法运算STACKS S

26、EGMENT STACK ;堆栈段 DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段;请在这里定义您的数据 X DW 0400H Y DW 0102H Z DW ? DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX;请在这里添加您的代码 LEA SI,X LEA DI, Y LEA BX,Z CLC MOV CX,2 L1: MOV AL,BYTE PTRSI SBB AL,BYTE PTRDI A

27、AS MOV BYTE PTRBX,AL INC SI INC DI INC BX DEC CX JNZ L1 MOV BX,Z CALL DISPLAY1 MOV AX,4C00H ;退出程序 INT 21H DISPLAY1 PROC MOV CX,16 C2: ROL BX,1 MOV DL,BL AND DL,01H ADD DL,30H MOV AH,02H INT 21H LOOP C2 RET DISPLAY1 ENDP CODES ENDS END START五、实验调试运行步骤1.运行轻松汇编软件,按实验流程图编写实验代码,保存并编译,对语法错误进行修改,直至显示“编译成功!

28、”。2.单击“生成”按钮,显示“连接成功!”。3单击“运行”按钮,查看显示结果是否正确,如果不正确单击“调试”按钮,进行调试。4.更改DB中的数据,观察程序的正确性,截图见“六、实验运行结果”中所示。六、实验运行结果实验五 分支程序设计实验一、实验目的掌握分支程序的设计方法。二、实验设备PC微机一台。三、实验内容程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如下图所示。本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。 实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。当循环结束操作时,将BH,BL分别送屏幕显示。参考实验流程如下图所示。四、实验程序代码DATA SEGMENT MES DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV SI,OFFSET MES MOV CX,7 ;将缓存区的变量 最大值放入AH,最小值放入AL MOV BL,

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

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