南昌大学微机原理与接口技术实验报告.doc_第1页
南昌大学微机原理与接口技术实验报告.doc_第2页
南昌大学微机原理与接口技术实验报告.doc_第3页
南昌大学微机原理与接口技术实验报告.doc_第4页
南昌大学微机原理与接口技术实验报告.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

实 验 报 告实验课程: PC机原理与接口技术 姓 名: 学 号: 专业班级: 2016年 6月目录实验一 熟悉DOS环境和汇编软件的使用实验二 DEBUG的使用实验三 顺序结构程序设计实验实验四 选择结构程序设计实验实验五 循环结构程序设计实验实验六 综合程序设计实验实验一:熟悉DOS环境和汇编软件的使用一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点:机房五、实验目的:1、熟悉DOS环境和DOS基本操作。2、掌握汇编程序的使用方法:MASM,LINK,EDIT(TC),DEBUG六、实验内容:(一)、熟悉DOS环境1、 MS-DOS的启动(二)、熟悉一些常用的DOS命令 1、更改盘符。 2、建立子目录(文件夹)。 3、显示/更改当前目录。 4、显示磁盘目录的内容。(三)、熟悉调试程序DEBUG.EXE的应用,练习DEBUG的常用命令1汇编语言源程序的建立程序要求是:在屏幕上显示“Hello, world !”。设定源程序的文件名为hello.asm。 在DOS状态下键入以下命令:tc输入以下源代码并保存DATA SEGMENT BUF DB Hello, world !$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET BUF MOV AH,9 INT 21H MOV AH,4CH INT 21HCODE ENDS END START 2 将源程序文件汇编成目标程序文件masm hello.asmMASM宏汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。(2)若源程序经汇编后没有语法错误,则产生扩展名为.OBJ的目标程序文件。(3)若源程序中使用了宏指令,则汇编程序将展开宏指令。源程序建立以后,在DOS状态下,采用宏汇编程序MASM对源程序文件进行汇编。 3用连接程序生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过连接以后,才能成为可执行文件(即扩展名为.EXE)。 link hello.obj如果汇编过程中有错误产生,则汇编程序将显示出错行号和错误信息。最后显示的部分是警告错误及严重错误数。 当程序中没有定义堆栈段或虽然定义但不符合要求时,LINK在最后一行会给出类似 “LINK : warning L4021: no stack segment”的警告信息,表示用户程序没有定义堆栈段。该警告信息不影响可执行程序的生成和正常运行,因为若用户程序没有定义堆栈段,程序运行时会自动使用系统提供的默认堆栈。4程序的执行当我们建立了正确的可执行文件以后,就可以直接在DOS状态下执行该程序。hello.exe 如下图所示。如果使用测试数据均可运行并能看到正确结果,则说明该程序编写正确。但若得不到正确结果或结果无法看到(没有结果输出的情况下),则需要使用调试工具来调试程序了。7、 写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。 由于是第一次实验,对整个编程环境和实验内容都不是很熟悉,但经过这次实验,对这 些都有一些大致的了解,特别是学会了如何调试程序,也对从汇编课上学习到的理论知识有了更深刻的认识,经过自己动手编程,对汇编语言更加熟悉,通过将理论用于实践,也对学习汇编知识有很大帮助。实验二:DEBUG的使用一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点:机房五、实验目的:1、熟悉DEBUG基本操作。六、实验内容: 1、DEBUG程序的启动在DOS环境下,键入debug2、DEBUG的主要命令(1)汇编命令A(2)反汇编命令U(3) 运行命令G(4) 追踪命令T(5)显示内存单元内容的命令D(6)修改内存单元内容的命令E略(7)检查和修改寄存器内容的命令R(8)命名命令N略(9)装入命令L略(10) 写命令W略(11) 退出DEBUG命令Q 略七、实验小结及心得体会 通过本次实验,了解DEBUG调试程序常用命令的基本格式、主要功能和使用方法。熟悉进入或退出DEBUG调试程序运行界面的步骤。掌握用DEBUG调试程序进行程序编辑、调试、运行、结果检查的基本方法。进一步汇编语言上机环境及基本操作。感觉它比其他高级语言确实要复杂,但是能更一步体会计算机是如何操作的!通过对debug的运用,我们了解到了很多关于电脑方面的知识,也知道了debug的强大功能。我们应多加练习,以便熟悉的掌握这方面的知识。实验三 顺序结构程序设计实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点:机房五、实验目的:1、掌握顺序程序的设计方法。六、实验内容:1. 编写程序实现:从键盘输入两个1位的十进制数,计算这两个数之和,并将结果在屏幕上显示出来。 提示:数据段的格式可定义为: data SEGMENT infor1 DB Please input the first data(10):$ infor2 DB 0ah,0dh,please input the second data(10):$ infor3 DB 0ah,0dh,the result is:$ data ENDS code segment assume cs:code start: mov cx,2 mov bl,0 next: mov ah,1 int 21h sub al,30h jc next cmp al,9h ja next add al,bl daa mov bl,al mov dl,13 mov ah,2 int 21h mov dl,10 int 21h loop next mov cl,4 mov dh,2 next1: rol bl,cl mov dl,bl and dl,0fh add dl,30h mov ah,2 int 21h dec dh jnz next1 mov ah,1 int 21h mov ah,4ch int 21h code ends end start2编写程序实现:从键盘输入09中任意一个自然数,将其平方值在屏幕上显示出来(要求使用查表法)。输出INFOR1信息(09H)接收第一个输入数(01H)接收第一个输入数-30H输出INFOR2信息(09H)接收第二个输入数(01H)接收第二个输入数-30H输出INFOR3信息(09H)俩加数相加并修正和的十位数+30H后输出(02H)和的个位数+30H后输出(02H)退出DATAS SEGMENT TABLE DB 00H,01H,04H,09H,16H,25H,36H,49H,64H,81H DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV AH,07H INT 21H AND AL,0FH MOV DL,AL XOR DH,DH MOV BX,OFFSET TABLE ADD BX,DX MOV AL,BX MOV CL,04H MOV BL,AL SHR AL,CL MOV DL,AL ADD DL,30H MOV AH,02H INT 21H AND BL,0FH MOV DL,BL ADD DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21H CODES ENDS END START七、实验心得 (1)了解了编制汇编语言程序的步骤:分析题意,确定算法;根据算法画出程序框图;根据框图编写程序;上机调试程序。(2)理解了调试过程的反复性,发生错误时,一步步往回验证,直到找到错误,修改后,继续重新执行。(3)通过单步执行命令t跟踪调试,提高了对寄存器根据指令变化的理解;同时对debug命令格式、功能有了基础的了解。实验四 选择结构程序设计实验一、实验目的: 1. 掌握分支程序的设计方法。 2. 了解小写和大写字母的ASCII码表示及其转换方法,了解数字及其他字符的ASCII码表示方法。二、实验仪器: PC机一台三、实验内容 1、从键盘输入一字符,判断该字符是小写字母、大写字母、数字还是其它字符。若输入为小写字母,则显示“You Input a Lowercase Letter!”; 若输入为大写字母,则显示“You Input a Uppercase Letter!”; 若输入为数字,则显示“You Input a Digit!”; 若输入为其它字符,则显示“You Input Other Letter!”。 2、在屏幕上显示“Are you really want to exit?”,然后从键盘输入一字符,若输入“Y”或“y”,则显示“Thank you for your using!”; 若输入“N”或“n”,则显示“Lets continue!”; 若输入其它字符,则显示“You press an error key!”后程序结束。四、实验程序与流程图实验步骤(1)完成汇编语言源程序的编辑和连接过程。(2)利用DEBUG进行程序调试和运行。实验程序(1):dseg segmentmsglf db 0ah, 0dh, $msgup db You Input a Uppercase Letter!, 0ah, 0dh, $msglo db You Input a Lowercase Letter!, 0ah, 0dh, $msgnum db You Input a Digit!, 0ah, 0dh, $msgot db You Input Other Letter!, 0ah, 0dh, $dseg endscseg segmentassume ds:dseg, cs:csegbegin:mov ax, dsegmov ds, axmov ah, 1int 21hmov bl, allea dx, msglfmov ah, 9int 21hmov al, blcmp al, 0jl OtherCcmp al, 9jg NotNumlea dx, msgnumjmp OutputNotNum:cmp al, Ajl OtherCcmp al, Zjg NotUplea dx, msgupjmp OutputNotUp:cmp al, ajl OtherCcmp al, zjg OtherClea dx, msglojmp OutputOtherC:lea dx, msgotOutput:mov ah, 9int 21hmov ah, 4chint 21hcseg endsend begin开始显示提示信息“please press any key to input a letter 及功能号为1的单字符序列实验程序(2)DATA SEGMENT INFOR1 DB 0AH,0DH,Are you really want to exit?:$ INFOR2 DB 0AH,0DH,Thank you for your using!$ INFOR3 DB 0AH,0DH,Lets continue!$ INFOR4 DB 0AH,0DH,You press an error key!$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET INFOR1 MOV AH,09H INT 21H MOV AH,01H INT 21H CMP AL,Y JE YES CMP AL,N JE NO CMP AL,y JE YES CMP AL,n JE NO JMP OTHE YES: MOV DX,OFFSET INFOR2 MOV AH,09H INT 21H JMP PEND NO: MOV DX,OFFSET INFOR3 MOV AH,09H INT 21H JMP PEND OTHER: MOV DX,OFFSET INFOR4 MOV AH,09H INT 21H JMP PEND PEND: MOV AH,4CH INT 21H CODE ENDS END START实验五 循环结构程序设计实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点:机房五、实验目的:1、掌握循环程序的设计方法。2、掌握比较指令、转移指令和循环指令的使用方法。3、进一步掌握调试工具的使用方法。六、实验内容1、试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07H)。 提示:用2号功能号输出07H就会响铃一次。七、实验报告要求 1、画出流程图,编写源程序,调试成功。 2、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。DATA SEGMENT TIP DB PLEASE INPUT A NUMBER:,$DATA ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA DX,TIP MOV AH,09H INT 21H MOV AH,01H INT 21H AND AX,01H MOV CX,AX BE:MOV DL,07H MOV AH,02H INT 21H LOOP BECODES ENDS END START 输入数字后听到对应次数的响铃八、实验心得: 本次实验主要是循环结构的程序。通过本次实验,学习汇编语言中循环结构类型的程序的编辑、编译与连接,更好的掌握分支程序的结构。通过本次实验,我对循环结构有了一定的理解,尤其是LOOP循环指令,对于cmp指令和JZN、JZ等指令也有了一定的了解实验六 综合程序设计实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点:机房五、实验目的:1、掌握综合程序的设计方法。六、实验内容1、编写一个完整的8086汇编语言程序,从附加段中首地址为ADR1(变量名)连续存放的100个字型无符号整数中找出最大数,并将此数及其偏移地址分别放入变量MAX和MAXM中2、有一个首地址为ARRAY的N个字的数组,请编程序使该数组中的数按照从大到小的次序排序。(采用冒泡排序算法)七、实验报告要求 1、画出流程图,编写源程序,调试成功。 2、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。DATA SEGMENTMOV AX,ES:SIADR1 DW 100 DUP(?)LOP1:CMP AX,ES:SIMAX DW ?JAE LOP3MAXM DW ?MOV AX,ES:SIDATA ENDSMOV ES:MAXM,SICODE SEGMENTLOP3:ADD SI,2ASSUME CS:CODE,DS:DATA,ES:DATALOOP LOP1MAIN PROC FARMOV ES:MAX,AX MOV AX,DATAMOV AH,4CHMOV ES,AXINT 21HMOV SI,OFFSET ADR1MAINENDPMOV CX,100CODE

温馨提示

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

评论

0/150

提交评论