太原理工硬件实验报告材料.doc
某某理工大学学生实验报告学院名称专业班级学号学生某某实验日期成绩课程名称计算机硬件技术根底实验题目顺序程序实验一、 实验目的和要求1通过宏汇编MASM上机操作,使学生掌握汇编语言源程序的编辑、汇编、连接和执行的完整过程。2掌握汇编过程中各命令的作用与使用方法,了解汇编和连接的过程。3掌握8086/8088指令系统中已学指令的书写格式、功能与其作用。4结合实例程序掌握汇编语言程序上机过程,熟悉DEBUG程序中常用命令的使用。要求预习汇编程序上机操作的全过程。二、实验内容和原理 1. 编写程序计算Z=A+B-(C-D),其中A=30H,B=20H,C=10H,D=05H均为字节单元无符号数。2.设W、X、Y、Z、V均为16位字单元有符号数,编程计算W=(X*Y-50)/Z,将结果存入变量W,而余数存入变量W+2中。X为非零数,并假设X、Y、Z的值分别为20、10、15三、主要仪器设备 电脑,汇编语言4、 操作方法与实验步骤实验一:data segmentA db 30hB db 20hC db 10hD db 05hZ db ?data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax xor ax,ax mov al,A add al,B sub al,C add al,D mov Z,al mov ax,4ch int 21hcode ends end start实验二:data segmentX dw 20Y dw 10Z dw 15W dw ?,?data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax xor ax,ax mov ax,X mul Y sub ax,50 div Z mov W,ax mov ax,4ch int 21hcode ends end start五、实验数据记录和处理六、实验结果与分析第一个实验结果为AX里的值0045。第二个实验结果为AX里的值000A,同时把值放入W中,余数在W+2中。七、讨论、心得 这个实验帮我熟悉了汇编语言如何使用,虽然参考了书上的程序,但是我也从中学到了一些东西,懂得了自己去调试程序。实验地点指导教师某某理工大学学生实验报告学院名称专业班级学号学生某某实验日期成绩课程名称计算机硬件技术根底实验题目分支和循环程序实验二、 实验目的和要求1通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能与使用方法。2掌握分支程序的结构、单分支和多分支程序的设计方法。3了解循环程序的根本结构和控制循环的方法。二、实验内容和原理要求学生按教师指定题目进展汇编语言程序设计,并上机调试,以实现较复杂的程序设计。1. X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元。2. 求10个学生成绩中的最高成绩,结果存入MAX字节单元中,成绩为字节型。三、主要仪器设备 电脑,汇编语言4、 操作方法与实验步骤实验一:stack segment stack db 50 DUP(0)stack endsdata segment num db 2,5,6 max db ?data endscode segment assume cs:code,ds:data,ss:stackstart:mov ax,data mov ds,ax xor ax,ax mov al,num cmp al,num1 jge next1 mov al,num1next1:cmp al,num2 jge next2 mov al,num2next2:mov max,al mov ax,4c00h int 21hcode endsend start实验一:stack segment stack db 50 DUP(0)stack endsdata segment num db 11,99,22,88,77,66,55,44,33,0 max db ?data endscode segment assume cs:code,ds:data,ss:stackstart:mov ax,data mov ds,ax mov si,offset num xor ax,ax mov cx,10 mov al,siAGAIN:cmp al,si jge next mov al,sinext: INC si loop AGAIN mov max,al mov ax,4c00h int 21hcode endsend start5、 实验数据记录和处理第一X图为实验1第二X图为实验2六、实验结果与分析第一个实验三个数字为2,5,6,最后结果为AX里0006。第二个实验十个数字为11,99,22,88,77,66,55,44,33,0,最后结果为AX里006316进制的99。七、讨论、心得 这个实验还是参考了书上的例子,但是相对上一个实验添加了更多自己的东西,第二个实验比第一个要多考虑到循环的使用,保证AX里放的一直是最大值,如此经过10次循环后可得出成绩的最大值。实验地点指导教师某某理工大学学生实验报告学院名称专业班级学号学生某某实验日期成绩课程名称计算机硬件技术根底实验题目综合程序设计实验一、实验目的和要求1通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能与使用方法。2掌握分支程序的结构、单分支和多分支程序的设计方法。3了解循环程序的根本结构和控制循环的方法。4掌握通过DOS中断调用使用键盘和显示器的方法。二、实验内容和原理编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。三、主要仪器设备 汇编语言,电脑。4、 操作方法与实验步骤data segment sinput db 'start:$'data endscode segmentassume cs:code,ds:datastart:mov ax,data ; mov ds,ax ;假如有数据段前两行需加上 mov ah,9 lea dx,sinput int 21h mov ah,1 int 21h cmp al,96 jge next ;大于等于 add al,32 jmp donenext: sub al,32done: mov dl,al mov ah,2 int 21h mov ah,4ch int 21hcode endsend start五、实验数据记录和处理六、实验结果与分析输入大写字母C时变为小写字母c,输入小写字母c时变成大写字母C。七、讨论、心得 这个实验我依旧想参照书上的例子,但是不知为何却跳过了输入字母的局部,于是我自己写了代码,经过努力终于能将输入大写字母时变为小写字母,输入小写字母时变成大写字母。实验地点指导教师某某理工大学学生实验报告学院名称专业班级学号学生某某实验日期成绩课程名称计算机硬件技术根底实验题目综合程序设计实验一、实验目的和要求1通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能与使用方法。2掌握分支程序的结构、单分支和多分支程序的设计方法。3了解循环程序的根本结构和控制循环的方法。4掌握通过DOS中断调用使用键盘和显示器的方法。二、实验内容和原理编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格完毕,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。完善下面的原程序CODE SEGMENTMAIN PROC FARASSUME CS:CODE START : PUSH DSSUB AX,AXPUSH AXMOV BH,0; 统计数字的个数MOV BL,0; 统计字母的个数MOV DH,0; 统计其它字符的个数MOV CX,10AA1:CMP CX,0JZ STOP ;输入字符超过10个MOV AH,1INT 21H ;从键盘接收一个字符CMP AL,20HJZ STOPCMP AL,0 CC1CMP AL,9JA CC1INC BH自行写出比拟是否为字母的情况CC2:INC DHDEC CXSTOP:MOV DL,BHMOV AH,02INT 21H自行写出输出字母的个数自行写出输出其它字符的个数RETMain endpCode endsEnd 三、主要仪器设备 汇编语言,电脑。4、 操作方法与实验步骤STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT X DB '0' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX SUB AX,AX MOV BX,0 MOV DX,0 MOV CX,10 AA1: CMP CX,0 JZ STOP ;CX里值为空如此停止循环 MOV AH,1 INT 21H ;从键盘承受一个字符 CMP AL,20H JZ STOP ;输入空格如此跳出 CMP AL,'0' CC2 ;<0如此记为特殊字符 CMP AL,'9' JA CC1 ;>9如此进入下一层判断 INC BH ;是数字 JMP NEXT1CC1: CMP AL,'A' CC2 ;<A记为特殊字符 CMP AL,'Z' NEXT ;<Z记为字母 CMP AL,'a' CC2 ;<a记为特殊字符 CMP AL,'z' JA CC2 ;>z记为特殊字符NEXT: INC BL ;是字母 JMP NEXT1CC2: INC DH ;是特殊字符NEXT1: LOOP AA1 ;判断下一个字符STOP: MOV AH,2 MOV DL,BH ADD DL,X INT 21H ;输出数字字数 MOV AH,2 MOV DL,BL ADD DL,X INT 21H ;输出字母字数 MOV AH,2 MOV DL,DH ADD DL,X INT 21H ;输出特殊字符 MOV AX,4C00H INT 21H CODE ENDS END START五、实验数据记录和处理六、实验结果与分析输入字符为ab123= 然后输入空格,得出数字数为3字母数为2特殊字符为1。七、讨论、心得 试验中用到了屡次条件判断是小于JA是大于,根据ASCLL码值表,来对输入的字符进展判断是哪个局部加1,输入空格完毕,最后输出数字。一开始让我觉得不解的是,假如在STOP里去掉ADD DL,X,输出的数字是乱码,加上之后却输出了正常的数字,最后经过查阅,直接输出数字的话,机器会认为是ASCLL码值,而不是输出数字,所以加个0让其变为数字输出,就可以正常显示了。实验地点指导教师