《计算机应用实验报告(共22页).doc》由会员分享,可在线阅读,更多相关《计算机应用实验报告(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验一 乘法运算实验一、 实验目的:1、 了解调试程序DEBUG的常用命令和功能。2、 掌握多字节乘法运算程序的编写方法。3、 学会程序调试方法。二、 实验原理 序号命令功 能0?显示Debug命令列表。1 a汇编8086/8087/8088记忆码。2 c比较内存的两个部分。3 d显示部分内存的内容。4 e从指定地址开始,将数据输入到内存。5 f使用指定值填充一段内存。6 g运行在内存中的可执行文件。7 h执行十六进制运算。8 i显示来自特定端口的1字节值。9 l将文件或磁盘扇区内容加载到内存。10 m复制内存块中的内容11/n为l或w命令指定文件,或者指定正在测试的
2、文件的参数。12 o向输出端口发送1个字节的值。13 p执行循环、重复的字符串指令、软件中断或子例程。14 q停止Debug会话。15 r显示或改变一个或多个寄存器。16 s在部分内存中搜索一个或多个字节值的模式。17 t执行一条指令,然后显示所有寄存器的内容、所有标志的状态和Debug下一步要执行的指令的解码形式。18 u反汇编字节并显示相应的原语句。19 w将被测试文件写入磁盘。20 xa分配扩展内存。21 xd释放扩展内存。22 xm映射扩展内存页。23 xs显示扩展内存的状态。三、实验内容:将两个无符号数相乘,将结果数存入规定地址。被乘数和乘数的存放地址及数据如下:名称地址数据被乘数2
3、000:00002000:00012A30乘数2000:00022000:0001151B乘积2000:00042000:0007注意:数据低位在前,高位在后。四、实验报告内容:1、实验用源程序:开机选择“开始”“运行”输入“command”输入“debug”调出debug应用程序。Debug源程序:D 2000:0000 ;查看部分内存内容E 2000:0000 2A 30 15 1B ;写入数据D 2000:0000 ;查看输入后的数据A 回车 ;写程序 MOV AX,2000 MOV DS,AX MOV AX,0000 MOV BX,0002 MUL BX ;让AX乘以DX,结果存入DX
4、:AX MOV 0004,AX MOV 0007,DX INT 20H ;正常中断程序 Ctrl+M ;退出编程,由键盘输入 G ;运行程序 D 2000:0000 ;查看程序运行结果2、 实验结果分析输出结果显示为72-61 18-05结果正确。实验中遇到的问题,在debug里输入程序要细心,如果输入有误为保证结果的正确应重新打开debug程序。实验中发现输入的大小写对程序的结果没有影响。实验二 除法运算实验一、 实验目的:1、了解调试程序DEBUG的常用命令和功能。2、掌握多字节除法运算程序的编写方法。3、学会程序调试方法。二、 实验内容:将两个无符号数相除,将结果数存入规定地址。被除数和
5、除数的存放地址及数据如下:名称地址数据被除数除数2000:001000132000:001400152A3B4C5D7C5D商余数2000:001600172000:00180019数据低位在前,高位在后。三、 实验报告内容:1、 实验用源程序按照实验一中的方法调出debug: Debug源程序:D 2000:0000 ;查看部分内存内容E 2000:0000 5D 7C 5D 4C 3B 2A ;写入数据D 2000:0000 ;查看输入后的数据A ;写程序 MOV AX,2A3B MOV DX,4C5D MOV BX,7C5D MOV AX,0010 MOV DX,0012 MOV BX,
6、0014 DIV BX ;被除数DX:AX除BX,商存入AX,余数存到DX MOV 0016,AX MOV 0018,DX INT 20H ;正常中断程序 Ctrl+M ;退出编程,由键盘输入 G ;运行程序 D 2000:0000 ;查看程序运行结果2、 实验结果分析实验正确结果:7D-FF 9E-11实验中应注意的问题,在输入数值时应高低位颠倒输入,程序运算时是先进后出。遇到的问题:当输入正序时得到的结果是EE-56 E7-6F(为错误结果)。 实验三 数据转换实验一、 实验目的:1、进一步掌握DEBUG使用方法。2、掌握数制转换程序的编写方法。3、学会调试循环程序和子程序方法。二、 实验
7、内容:将单元2000:0000003中的8位十进制数35,26,38,74(数据高位在前,低位在后),转换成二进制数,存入单元2000:00040007中。在编写程序时,要充分利用循环程序和调用子程序的方法来简化程序设计,并注意循环的地址及子程序入口地址的设置方法。三、 实验报告内容:1、 实验用源程序STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 D1 DB 10 ; D2 DB ; D3 DB 38H ; D4 DB 74H DATAS ENDS CODES SEGMENT ;
8、代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV AX,2000H MOV DS,AX MOV AX,2635H MOV DI,0000H MOV DI,AX MOV DI,0002H MOV AX,7438H MOV DI,AX MOV BL,10 MOV BX,0010 MOV BX,AL DO1 MACRO ADD1,ADD2 MOV SI,CX MOV DI,0000H MOV CX,4 NEXT: MOV AL,DI SHR AL,4 MUL BL PUSH AX MOV AL,DI AND AL,
9、0FH POP DX XOR AH,AH XOR DH,DH ADD AL,DL MOV SI,CL+4 MOV DI+4,AL INC DI LOOP NEXT ENDM DO1 0H 4H DO1 1 5 DO1 2 6 DO1 3 7 MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START专心-专注-专业实验四 显示字符串实验一、 实验目的:1、掌握宏汇编语言源程序的编辑方法。2、学会用MASM及LINK程序将源程序文件转换成可执行文件的方法。3、学会调用DOS软中断功能来显示字符串的方法。二、 实验步骤:1、 利用全屏幕编辑程序来编辑源程序,文件
10、扩展名为ASM,操作如下:A NE 盘号:文件名.ASM2、 利用MASM程序将源程序文件汇编成目标文件,目标文件扩展名为OBJ,操作如下: AMASM 盘号:文件名.ASM 盘号:文件名.OBJ在编辑中发生错误,要用NE程序来修改源程序文件。3、 用LINK程序将目标文件转换成可执行文件,可执行文件扩展名为EXE,操作如下: ALINK 盘号:文件名.OBJ 盘号:文件名.EXE4、在DOS环境下执行可执行文件。三、 实验内容:按照宏汇编语言源程序格式的要求,编写一个文件,显示如下字符串:I like microcomputer very much.四、 实验报告内容:1、 实验用源程序 S
11、TACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 MSG1 DB I like microcomputer very much.,$ DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV DX,OFFSET MSG1 MOV AH,9 INT 21H MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START2、 实验
12、结果分析实验显示出了“I like microcomputer very much.”实验五 显示字符串实验一、 实验目的:1、进一步掌握字符串的显示方法。2、掌握键盘信号的输入和分析方法。3、进一步熟悉源程序的编写方法。二、 实验内容:先使计算机提问下列问题:Do you like this lesson(Y/N)?如果用户回答N,计算机回答:You should change your interest.如果用户回答Y,计算机回答:You are good student. 三、 实验报告:1、 实验用源程序:STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?)
13、;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 MSG1 DB Do you like this lesson(Y/N)?,$ MSG2 DB 10,You should change your interest.,$ MSG3 DB 10,You are good student.,$ DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX;请在这里添加您的代码 MOV DX,OFFSET MSG1 MOV
14、AH,9 INT 21H MOV AH,1 INT 21H CMP AL,Y JZ Y1 CMP AL,y JZ Y1 CMP AL,N JZ Y2 CMP AL,n JZ Y2 Y1: MOV DX,OFFSET MSG3 MOV AH,9 INT 21H JMP DONE Y2: MOV DX,OFFSET MSG2 MOV AH,9 INT 21H DONE: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START实验六 数据排序实验一、 实验目的:1、掌握比较数据大小的方法。2、掌握由大到小排列数据的方法。3、掌握显示某一数据区的方法。二、 实验
15、内容:先在数据区输入十个随机排列的数据,然后用气泡排序法把数据由大到小排列好,并显示在屏幕上。然后改变数据的内容,再用同样的程序来排列,并显示出结果。第一次排列的数据为:41H,70H,03H,53H,88H,16H,20H,3FH,74H,8EH第二次排列的数据为:10H,78H,23H,04H,1AH,7AH,35H,4BH,9FH,0BH显示结果:班级,学号,名字排序好的数据。 三、 实验报告内容:1、 实验用源程序STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) STACKS ENDS DATAS SEGMENT ;数据段 MSG1 DB Do you l
16、ike this lesson(Y/N)?,$ MSG2 DB 10,You should change your interest.,$ MSG3 DB 10,You are good student.,$ DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV DX,OFFSET MSG1 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,Y JZ Y1 CMP AL,y JZ Y1 CMP AL,N JZ
17、Y2 CMP AL,n JZ Y2 Y1: MOV DX,OFFSET MSG3 MOV AH,9 INT 21H JMP DONE Y2: MOV DX,OFFSET MSG2 MOV AH,9 INT 21H DONE: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START实验七 显示字符串实验一、 实验目的:1、掌握显示菜单的方法。2、学会分析键盘输入数据的方法。3、掌握编写宏指令和宏调用的方法。二、 实验步骤:先在屏幕上显示下列菜单 What item do you want to know?1. My name2. My age3. My i
18、nteresting work4. My familyPlease input the number:然后根据输入的数据,分别回答你的姓名,年龄,感兴趣的工作和家庭成员,具体回答内容由同学自己拟定。在程序中尽量采用宏指令,并注意程序设计的技巧。三、 实验报告内容:1、 实验用源程序 STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) STACKS ENDS DATAS SEGMENT ;数据段 M01 DB What item do you want to know?,$ M02 DB 10,28 DUP(8), 1. My name ,$ M03 DB 10,28
19、 DUP(8), 2. My age ,$ M04 DB 10,28 DUP(8), 3. My interesting work ,$ M05 DB 10,28 DUP(8), 4. My family ,$ M06 DB 10,28 DUP(8),Please input the number: ,$ M07 DB 10,28 DUP(8), Li Juan ,$ M08 DB 10,28 DUP(8), 22 ,$ M09 DB 10,28 DUP(8), play balls. ,$ M10 DB 10,28 DUP(8), My parents and me. ,$ DATAS EN
20、DS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX PRT MACRO X MOV DX,OFFSET X MOV AH,9 INT 21H ENDM IPT MACRO MOV AH,1 INT 21H ENDM IFGO MACRO X,Y CMP AL,X JZ Y ENDM PRT M01 PRT M02 PRT M03 PRT M04 PRT M05 PRT M06 IPT IFGO 1,Y1 IFGO 2,Y2 IFGO 3,Y3 IFGO 4,Y4
21、Y1: PRT M07 JMP DONE Y2: PRT M08 JMP DONE Y3: PRT M09 JMP DONE Y4: PRT M10 DONE: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START实验八 时钟显示实验一、 实验目的:1、了解计算机中时钟数据的存取方法。2、掌握时钟显示的编写方法。3、进一步掌握BIOS和DOS中子程序的调用方法。二、 实验内容:在计算机屏幕的右上角显示时钟值,直到按下一个键再返回DOS。三、 实验报告内容:1、 实验用源程序:DATA SEGMENT WHOUR DB 0 ;秒表的时、分、秒、毫秒 WM
22、IN DB 0 WSEC DB 0 WMSEC DB 0 OLD1CH DD 0 SIGNAL DB 0 COUNT DW 0;- CHOUR DB 0 ;闹钟的时、分、秒 CMIN DB 0 CSEC DB 0;- SPACE DB 2000 DUP ( ) PATTERN DB 6 DUP ( ),0C9H,26 DUP (0CDH),0BBH,6 DUP ( ) DB 6 DUP ( ),0BAH,26 DUP (20H),0BAH,6 DUP ( ) DB 6 DUP ( ),0C8H,26 DUP (0CDH),0BCH,6 DUP ( );- DBUFFER DB 8 DUP (:
23、),12 DUP ( ) DBUFFER1 DB 20 DUP ( ) DBUFFER2 DB 11 DUP (:),15 DUP ( ) STR1 DB 0DH,0AH, INPUT M TO NEXT-STATE, INPUT Q TO EXIT: $,0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKS;- PUSHA1 MACRO PUSH DS PUSH AX PUSH BX PUSH CX PUSH DX ENDM POPA1 MACRO POP DX POP CX POP BX POP
24、AX POP DS ENDM;图形化界面设计 START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,0003H ;设置显示方式为40*25彩色文本方式 INT 10H LEA DX,STR1 ;显示提示信息 MOV AH,9 INT 21H MOV BP,OFFSET SPACE MOV DX,0B00H MOV CX,1000 MOV BX,0000H MOV AX,1300H INT 10H ;显示字符串,定义显示方式;-;主程序 LP1: MOV AH,1 ;从键盘输入单个字符 INT 21H CMP AL,M ;AL=M? JNE LP5 CALL DATE ;显示系统日期 LP2: MOV AH,1 ;从键盘输入单个字符 INT 21H CMP AL,M ;AL=M? JNE LP5 CALL TIME ;显示系统时间 LP3: MOV AH,1 ;从键盘输入单个字符 INT 21H CMP AL,M ;AL=M? JNE LP4 CALL STOPWATCH ;显示秒表 LP4: MOV AH,1 ;从键盘输入单个字符 INT 21H CMP AL,M ;AL=M?