微机原理与接口技术实验教案.doc
《微机原理与接口技术实验教案.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验教案.doc(29页珍藏版)》请在三一办公上搜索。
1、微机原理与接口技术实验讲义物理与电子工程学院罗长更显示程序实验3数据传送实验5运算类程序实验6分支程序设计实验17循环程序设计实验20综合程序设计实验22显示程序实验实验目的(1) 掌握在PC机上以十六进制形式显示数据的方法。(2) 掌握部分DOS功能调用使用方法。(3) 熟悉Tdpit集成环境和调试器的使用。实验内容及说明 一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。 (1) 显示单个字符输出 入
2、口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,$为结束字符 (3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS系统 入口:AH=4CH 调用参数:AL=返回码 实验步骤 (1) 运行Tdpit软件,选择文件菜单,点击新建,进入一个源文件编辑界面。根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1所示。 (2) 使用编译菜单中的编译和链接对实验程序进行汇编、连接。 (3) 使用编译菜单中的运行,运行程序,观察运行结果。 (4) 使用编译菜单中的调试,调试程序,观察调试过程中,数
3、据传输指令执行后,各寄存器及数据区的内容。 (5) 更改数据区中的数据,检查程序的正确性。 参考程序清单 DATASEGMENT MESDBShow a as hex:,0AH,0DH,$ SDDBa DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START:MOV AX,DATA MOVDS,AX MOVDX,OFFSET MES;显示提示信息 MOVAH,09HINT 21H MOVDI,OFFSET SD MOVAL,DS:DI ANDAL,0F0H;取高4位 SHRAL,4 图1 CMPAL,0AH;是否是A以上的数 JBC2ADDAL,07HC
4、2:ADDAL,30HMOVDL,AL;显示字符 MOVAH,02H INT21H MOVAL,DS:DI ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07H C3:ADDAL,30H MOVDL,AL;显示字符 MOVAH,02H INT21H MOVAX,4C00H;返回DOS INT21H CODEENDS ENDSTART 数据传送实验 实验目的 (1) 熟悉Tdpit集成环境和调试器的使用。 (2) 掌握与数据有关的不同寻址方式。 实验内容 本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。实验步骤 (1) 运行Tdpi
5、t软件,选择文件菜单,点击新建进行实验程序的编写。 (2) 使用编译菜单中的编译和连接对实验程序进行汇编、连接。 (3) 使用编译菜单中的运行,运行程序,观察运行结果。 (4) 使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。 (5) 更改数据区中的数据,考察程序的正确性。 参考程序:DDATASEGMENT;定义源数据段 MSRDB HELLO,WORLD!$ LENEQU $- MSR DDATAENDS EXDASEGMENT;定义附加数据段 MSDDB LEN DUP(?) EXDAENDS MYSTACK SEGMENT STACK;定义堆
6、栈段 DW 20 DUP(?) MYSTACK ENDS CODESEGMENT;定义代码段 ASSUME CS:CODE,DS:DDATA,ES:EXDA START:MOV AX,DDATA MOV DS,AX;装载数据段寄存器 MOV AX,EXDA MOV ES,AX;装载附加数据段寄存器 MOV SI,OFFSET MSR;设置SI MOV DI,OFFSET MSD;设置DI MOV CX,LEN NEXT:MOV AL,SI;开始传输数据 MOV ES:DI,AL INC SI INC DIDEC CX JNZ NEXT PUSH ESPOP DS;将附加段寄存器指向的段值赋给数
7、据段寄存器 MOV DX,OFFSET MSDMOV AH,9 INT 21H MOV AX,4C00H;利用DOS功能调用返回DOS状态 INT 21H CODEENDS END START 将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示: MOV BX,0 MOV CX,LEN NEXT:MOV AL,MSRBX MOV ES:MSDBX,AL INC BX LOOP NEXT 运算类程序实验实验目的 (1) 掌握运算类指令编程及调试方法。 (2) 掌握运算类指令对各状态标志位的影响及测试方法。 实验内容及说明 80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对
8、表1所示的数据类型进行算术运算。 表11二进制双精度加法运算 本实验要求计算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。 3乘法运算 本实
9、验要求实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,被乘数为54320H,乘数为3H,运算结束后,将乘积在屏幕上显示。 4用减奇数开平方运算 80x86指令系统中有乘除法指令但没有开平方指令,因此,开平方运算是通过程序来实现的。用减奇数法可求得近似平方根,获得平方根的整数部分。我们知道,N个自然数中的奇数之和等于N2,即: 1+3+5=9=32 1+3+5+7=16=42 1+3+5+7+9+11+13+15=64=82 若要做S的开方运算,那麽就可以从S中逐次减去自然数中的奇数1,3,5,7,一直进行到相减数为0或不够减下一个自然数的奇数为止,然后统计减去自然数的奇数个数,它
10、就是S的近似平方根。 本实验要求利用减奇法计算0040H的开平方值,并将运算结果显示在屏幕上。 实验步骤 (1) 运行Tdpit软件,选择文件菜单进行实验程序的编写。 (2) 使用编译菜单中的编译和连接对实验程序进行汇编、连接。 (3) 使用编译菜单中的运行,运行程序,观察运行结果。 (4) 使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。 (5) 更改数据区中的数据,考察程序的正确性。 参考程序两个字节数据相加STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1DBThe res
11、ult is:$X DB 03HY DB 05HDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,00H MOV SI,OFFSET X MOV AL,SI ADD AL,SI+01H AND AL,0FH MOV BL,AL MOVDX,OFFSET MES1 MOVAH,09H INT21H MOVAX,BX CALLSHOW MOVAX,4C00H INT21H SHOWPROCNEAR MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以
12、上的数 JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H RET ENDPCODE ENDS END START;A4-1.asm;二进制双精度加法运算STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1DBThe result is
13、:$XL DW 65A0HXH DW 0015HYL DW 0B79EHYH DW 0021HDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOVDX,OFFSET MES1 MOVAH,09H INT21H MOV AX,XL ADD AX,YL MOVBX,AX MOV AX,XH ADC AX,YH PUSHBX CALLSHWORD POPBX MOVAX,BX CALLSHWORD MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOV
14、BL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的数 JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H POPDX POPAX RET ENDPCODE
15、ENDS END START;A4-2.asm;十进制数的BCD码减法运算STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1DBThe result is:$X DW 0400HY DW 0102HDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,00H SAHF MOV SI,OFFSET X MOV AL,SI SBB AL,SI+02H DAS PUSHF AND AL,0FH POPF MOV BL,AL IN
16、C SI MOV AL,SI SBB AL,SI+02H DAS PUSHF AND AL,0FH POPF MOV BH,AL MOVDX,OFFSET MES1 MOVAH,09H INT21H MOVAX,BX CALLSHWORD MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的数 JBC2 ADDAL,07HC2: ADDAL,
17、30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H POPDX POPAX RET ENDPCODE ENDS END START;A4-3.asm;乘法运算STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1 DB The result is:$ERRMES DB Error ex
18、ist!$DATA1 DB 00H,02H,03H,04H,05HDATA2 DB 03HRESULTDB 06H DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 教案
链接地址:https://www.31ppt.com/p-4157146.html