微机原理与接口课程设计报告模板参考_第1页
微机原理与接口课程设计报告模板参考_第2页
微机原理与接口课程设计报告模板参考_第3页
微机原理与接口课程设计报告模板参考_第4页
微机原理与接口课程设计报告模板参考_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术课程设计报告班级:学号:姓名:201X年X月微机原理与接口技术课程设计报告目 录实验一 显示程序实验2实验二数据传送实验4实验三数码转换程序实验6实验四 运算类程序实验 15实验五 分支程序设计实验 18-18 -实验一显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS功能调用使用方法;3. 熟悉Tddebug调试环境和 Turbo Debugger的使用。二、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需 要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数 据以十六进制数形式显示在屏幕上,并通过DOS功能

2、调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H )。(1) 显示单个字符输出入口: AH=02H调用参数:DL=输出字符(2) 显示字符串入口: AH=09H调用参数:DS:DX=|地址,$'为结束字符(3) 键盘输入并回显入口: AH=01H返回参数:AL=输出字符(4) 返回DOS系统入口: AH=4CH调用参数:AL=返回码三、实验设备PC微机一台四、实验代码DATA SEGMENTMES DB 'Show a as hex:', 0AH,0DH,'$'SD DB 'a'DATA ENDSCODE SEGME

3、NTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, OFFSET MES ;显示提示信息MOV AH, 09HINT 21HMOV DI, OFFSET SDMOV AL, DS:DIAND AL, OFOH ;取高 4位SHR AL,4CMP AL, OAH ;是否是A以上的数JB C2ADD AL, 07HC2: ADD AL, 30HMOV DL, AL ;显示字符MOV AH, 02HINT 21HMOV AL, DS:DIAND AL, 0FH ;取低4位CMP AL, 0AHJB C3ADD AL, 07HC3

4、: ADD AL, 30HMOV DL, AL ;显示字符MOV AH, 02HINT 21HMOV AX, 4C00H ;返回 DOSINT 21HCODE ENDSEND START五、运行结果实验二数据传送实验一、实验目的1. 熟悉Tddebug调试环境和Turbo Debugger的使用;2. 掌握与数据有关的不同寻址方式。二、实验所用设备1. PC微机一台。三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上参考实验程序:DDATA SEGMENT ;定义源数据段MSR DB "HELLO,WORLD!$"LEN EQU $- MS

5、RDDATA ENDSEXDASEGMENT ;定义附加数据段MSD DB LEN DUPEXDA ENDSMYSTACK SEGMENT STACK ;定义堆栈段DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE, DS:DDATA, ES:EXDASTART: MOV AX, DDATAMOV DS, AX ;装载数据段寄存器MOV AX, EXDAMOV ES,AX ;装载附加数据段寄存器MOV SI, OFFSET MSR ;设置 SIMOV DI, OFFSET MSD ;设置 DIMOV CX, LENNEXT:MOV

6、 AL, SI;开始传输数据INC SIINC DIDEC CXJNZ NEXTPUSH ESPOP DS ;将附加段寄存器的段值赋给数据段寄存器MOV DX, OFFSET MSDMOV AH, 9INT 21HMOV AX, 4C00H ;利用DOS功能调用返回DOS状态INT 21HCODE ENDSEND START将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:MOV BX, 0MOV CX, LENNEXT:MOV AL, MSRBXMOV ES:MSDBX, ALINC BXLOOP NEXT四、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序;

7、2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3. 使用Rmrun菜单中的Run,运行程序,观察运行结果;4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。五、实验运行结果实验三数码转换程序实验一、实验目的掌握不同进制数及编码相互转换的程序设计方法。实验所用设备PC微机一台三、实验内容计算机输入设备输入的信息一般是由 ASCII码或BCD码表示的数据或字符,CPU用二进制数 进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD

8、码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如图 3-1所示,数码对应关系如表 3-1所示。图3-1计算机与外设间的数码转换关系1. 将ASCII码表示的十进制数转换为二进制数十进制数可以表示为:Dn x 10n+Dn-1 x 10n-1 +D0 x 100=Di x 10i其中Di代表十进制数1、2、39、0。上式可以转换为:工 Di x 10i=(Dn x 10+Dn-1) x 10)+Dn-2) x 10+D1) x 10+D0Dn开始作乘10加次位的由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位 操作,依次类推,

9、则可求出二进制数结果。本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示在屏幕上。转换过程的参考流程如图3-2所示。表3-1数码转换对应关系十K曲制註MD码二进削机嚣码Ascn0OOOO0000孔H-FH1000 L<X)CIJ1H号H2QD1DDO 1024HFBH300110011JFH40100010034H66H50101OldJ5HuDHfi01100110海H7DH7DiliDiliJ-h:SHSLDOO10003 CHOOHnigItXIl100:1SHA1C10I1HOCH77HBion42H03H7CHc110043H临3

10、9HD110144H21H5 EHE111045H伽r111146trortlFl2 .将十进制数的ASCII码转换为BCD码本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为BCD码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASCII码,则输出“ FF。'提示:一字节ASCII码取其低四位即变为 BCD码。转换部分的实验流程参见 3-3。3 .将十六进制数的ASCII码转换为十进制数十六位二进制数的值域为 0-65535,最大可转换为五位十进制数。五位十进制数可表示为:432ND=qx 10 +QX 10 +qx 10 +qx 10

11、+q因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求 U-D4,并将它们转化 为ASCII码。1CX = N-1F f1-Z> ASCII-'览3QH iiin F-楼Ascn玛曲昭I1L展否0的出匚鞘?1 7| BL = ASCE-30H |.*iVi'.RT :卅叩.”厅丄轉1ft克否?二图3-2十进制ASCII转换为二进制数参考流程图3-3十进制ASCII转换为BCD码参考流程本实验要求将缓冲区中存放的OOOCH的ASCII码转换成十进制数,并将转换结果显示在屏幕上。转换部分的实验流程参见图3-4。4. BCD码转换为二进制码本实验要求将四个二位十

12、进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。转换部分的实验流程参见3-5。四、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序;2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3. 使用Rmrun菜单中的Run,运行程序,观察运行结果;4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。五、实验代码1. 将ASCII码表示的十进制数转换为二进制数DATA SEGMENTSTRING DB

13、NUM DBDATA ENDSCODE SEGMENTASSUMESTART: MOVMOVCALLCALLCALLMOVINTINPUT PROCLEAMOVINTLEAMOVINTRETINPUT ENDPCHANGE PROCLEAMOVMOVMOVMOVNEXT: MULMOVMOVANDADDINCLOOPZERO: MOVRETCHANGE ENDP'In put:','$'6, ?, 6 DUPCS:CODE, DS:DATAAX, DATADS, AXINPUTCHANGELIST_BXAH, 4CH21HDX , STRINGAH , 09H2

14、1HDX,NUMAH , 0AH21HSI, NUM+2CL, NUM+1CH, 0AX, 0DI, 10DIBH, 0BL, SIBL, 0FHAX, BXSINEXTBX, AXDL, 07HDL,0DHADDLIST_BX PROCMOVMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HMOVCH, 4MOVCL, 4NEXT1: ROLBX, CLMOVDL, BLANDDL, 0FHADDDL, 30HCMPDL, 39HJLEPRINTPRINT: MOVAH, 2HINT21HDECCHJNZNEXT1RETLIST_BX ENDPCODE ENDSENDST

15、ART2 .将十进制数的ASCII码转换为BCD码DATA SEGMENTD1DB6,?,6 DUPD2DB5 DUPD3DB'FF$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSET D1MOVAH,0AHINT21HMOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HMOVCL,D1 + 1MOVCH,0MOVSI,0L1: MOVAL,D1SI+2CMPAL,30HJBL2CMPAL,39HJAL2ANDAL,0FHMOVD2SI,A

16、LINCSILOOPL1MOVCL,D1 + 1MOVSI,0L4: MOVDL,D1SI+2MOVAH,2INT21HINCSILOOPL4JMPL3L2: MOVDX,OFFSET D3MOVAH,09HINT21HL3: MOVAH,4CHINT21HCODE ENDSENDSTART六进制数的ASCII码转换为十进制数SEGMENTD1 DB'000C'C1 EQU$-D1D2 DW?DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATASTART: MOVAX,DATAMOVDS,AXMOVCX,C1MOVSI,OFFSET D1MOVB

17、X,10HMOVAX,0L1: MOVDL,SISUBDL,30HCMPDL,9JBEL23 .将十DATASUBDL,7HL2: MOV;十六进制数大与,右小与,减27hDH, 0PUSHDXMULBXPOPDXADDAX,DXINCSIDECCXJNZL1MOVD2,AXMOVBX,10000MOVDX,0DIVBXPUSHDXMOVDL,ALADDDL,30HMOVAH,2INT21HPOPAXMOVBX,1000MOVDX,0DIVBXPUSHDXMOVDL,ALADDDL,30HMOVAH,2INT21HPOPAXMOVBX,100MOVDX,0DIVBXPUSHDXMOVDL,AL

18、ADDDL,30HMOVAH,2INT21HPOPAXMOVBX,10MOVDX,0DIVBXPUSHDXMOVDL,ALADDDL,30HMOVAH,2INT21HPOPAXMOVDL,ALADDDL,30HMOV4. BCD专换为二进制码AH,2DATA SEGMENTD1DB12H,34H,56H,78HC1EQU$-D1D2DBC1 DUP (?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCH,C1MOVCL,4MOVSI,0MOVBH,10L1:MOVAL,D1SIMOVBL,ALANDBL,

19、0FHANDAL,0F0HSHRAL,CLMULBHADDAL,BLMOVD2SI,ALINCSIDECCHJNZL1L2: MOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HMOVAL,D2SIMOVDL,ALANDDL,0F0HSHRDL,CLADDDL,30HCMPDL,39HJNAL3ADDDL,7L3:PUSHAX微机原理与接口技术课程设计报告MOVAH,2INT21HPOPAX4-20 -ANDMOVADDCMPJNAADDL4: MOVINTINCAL,0FHDL,ALDL,30HDL,39HL4DL,7AH,221HSI六、实验运行结果1.

20、2.PF3.微机原理与接口技术课程设计报告-31 -实验四运算类程序实验、实验目的1. 掌握运算类指令编程及调试方法;2. 掌握运算类指令对各状态标志位的影响及测试方法。、实验所用设备1. PC微机一台。三、实验内容4-1所示的数据类型进行算术运80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表 算。二诛.EC 口码无特号+ * + 晋一耳手.Xnr p -r字节匸位敌字)学节(一位数字表4-1数据类型算术运 算表1.二进制双精度加法运算本实验要求计算 X+Y=Z,将结果Z输出到屏幕,其中 X=001565A0H , Y=0021B79EH。实验利用累加器AX ,先求低十六位和,

21、并存入低址存储单元, 后求高16位和,再存入高址存储单元。 由于低位和可能向高位有进位,因而高位字相加语句需用 ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。在80386以上微机中可以直接使用 32位寄存器和32位加法指令完成本实验 的功能。2 .十进制数的BCD码减法运算本实验要求计算 X-Y=Z,其中,X、Y、Z为BCD码,其中X=0400H , Y=0102H。3乘法运算本实验要求实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,被乘数为54320H ,乘数为3H,运算结束后,将乘积在屏幕上显示。4用减奇数开平方运算80x86指令系统中有乘除法指

22、令但没有开平方指令,因此,开平方运算是通过程序来实现的。用减 奇数法可求得近似平方根,获得平方根的整数部分。我们知道,N个自然数中的奇数之和等于 N2,即:21+3+5=9=31+3+5+7=16=421+3+5+7+9+11+13+15=64=8若要做S的开方运算,那麽就可以从 S中逐次减去自然数中的奇数 1, 3, 5, 7,一直进行到相减数 为0或不够减下一个自然数的奇数为止,然后统计减去自然数的奇数个数,它就是S的近似平方根。本实验要求利用减奇法计算 0040H的开平方值,并将运算结果显示在屏幕上。四、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序;2. 使用Com

23、pile菜单中的Compile和Link对实验程序进行汇编、连接;3. 使用Rmrun菜单中的Run,运行程序,观察运行结果;4. 使用Rmrun菜单中的Debug ,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。五、实验代码二进制双精度加法运算DATA SEGMENTXDW65A0H,0015HYDW0B79EH,0021HZDW2 DUPDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,2CLCMOVSI,0L1:MOVAX,XSIA

24、DCAX,YSIMOVZSI,AXINCSIINCSILOOPL1MOVBX,Z2CALLLIST_BXMOVBX,ZCALLLIST_BXMOVAH,4CHINT21HLIST_BXPROCMOVCH,4MOVCL,4NEXT:ROLBX,CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,39HJLEPRINTADDDL,7PRINT:MOVAH,2INT21HDECCHJNZNEXTRETLIST BXENDPCODE ENDSENDSTART五、实验运行结果实验五分支程序设计实验、实验目的1.掌握分支程序的设计方法。、实验所用设备1. PC微机一台。三、实验内容5-1所示。本实验要求通过程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图 求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。图5-1分支结构示意图实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论