微机原理实验指导书(学生_第1页
微机原理实验指导书(学生_第2页
微机原理实验指导书(学生_第3页
微机原理实验指导书(学生_第4页
微机原理实验指导书(学生_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 昆明理工大学 微机原理及程序设计实验指导书段绍米 编 昆明理工大学信息工程与自动化学院自动化系2013年10月微机原理实验实验要求及运行环境1、 实验要求与注意事项:交纸质版实验报告,实验要求:实验成绩百分制(总分100分)实验过程(50分)提前预习,写好实验报告,标好注释,修改好程序;10分个人按要求独立完成,填好实验结果,对实验程序进行讲解,按时交实验报告20分不做与本实验无关的事(如玩游戏、聊天、打电话、听音乐等)5分不得缺席,实验签名(两份),按要求填写设备号实验名称等,不带他人签名5分带走自己的垃圾,保持实验室卫生,电脑设备桌椅摆设整齐,保管好个人物品5分按秩序进出实验室,不拥挤,

2、注意安全,爱护设备,保证设备完好5分实验报告(50分)报告纸要统一,全部手写并填写好表头,包括:实验名称、姓名、学号、班级任课老师等2分实验目的、实验内容3分程序框图5分程序清单5分读懂程序加注释(每句注释13+分段注释7)20分实验结果,实验中经老师检查过5分程序修改,实验要求的完成及结果(可用蓝/黑在原程序上标明,并加注释)10分交电子版实验报告,实验要求:实验成绩百分制(总分100分)实验过程(50分)提前预习,标好程序注释,修改好程序;10分个人按要求独立完成,填好实验结果,对实验程序进行讲解,按时交实验报告20分不做与本实验无关的事(如玩游戏、聊天、打电话、听音乐等)5分不得缺席,实

3、验签名(两份),按要求填写设备号实验名称等,不带他人签名5分带走自己的垃圾,保持实验室卫生,电脑设备桌椅摆设整齐,保管好个人物品5分按秩序进出实验室,不拥挤,注意安全,爱护设备,保证设备完好5分实验报告(50分)报告按统一格式要求填写,包括:课程名称、姓名、学号、班级任课老师等10分实验报告包括实验目的、实验内容、程序框图、程序清单、实验要求5分读懂程序加注释(每句注释13+分段注释7)20分实验结果,实验中经老师检查过5分程序修改,实验要求的完成及结果(可用其他颜色标明添加的程序,与原程序不同,并加注释)10分2、实验运行环境在电脑中装ASM Masm for windows 集成实验环境2

4、008。双击图标打开ASM MasM for windows 集成实验环境运行工作界面,输入实验程序代码,调试、改错、保存、运行、查看结果,进行记录。运行结果显示:实验一 两个多位十进制数相加的实验一、 实验目的1、学习数据传送和算术运算指令的用法。2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。二、 实验内容将两个多位十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。三、 程序框图 显示被加数和加数被加数和加数以ASCII码表示的数字串形式转化为由十六进制表示的数字串形式 计数值

5、5CX 清除最低位进位 执行ADC带进位相加 AAA调整 结果送被加数区 调整偏移量 N CX1=0? Y 十六进制的结果转化为ASCII码表示的数字串 显示结果结束四、 程序清单CRLF MACRO ;宏定义,宏名:CRLF MOV DL, 0DH ;把0DH给DL MOV AH, 02H ; 把02H给AH INT 21H ;系统功能调用实现回车功能 MOV DL, 0AH ;把0AH给DL MOV AH, 02H ; 把02H给AH INT 21H ;系统功能调用实现换行功能 ENDM ;宏定义结束本段实现回车换行功能 DATA SEGMENT;数据段定义,段名DATA DATA1 DB

6、 33H, 39H, 31H, 37H, 34H; 变量DATA1中装入加数 DATA2 DB 36H, 35H, 30H, 38H, 32H; 变量DATA2中装入被加数 DATA ENDS;数据段定义结束本段实现了两个数据的定义 STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA START: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TO

7、P MOV SP, AX MOV SI, OFFSET DATA2 MOV BX, 05 CALL DISPL CRLF MOV SI, OFFSET DATA1 MOV BX, 05 CALL DISPL CRLF MOV DI, OFFSET DATA2 CALL ADDA MOV SI, OFFSET DATA1 MOV BX, 05 CALL DISPL CRLF MOV AX, 4C00H INT 21H DISPL PROC NEAR DS1: MOV AH, 02 MOV DL, SI+BX-1 INT 21H DEC BX JNZ DS1 RET DISPL ENDP ADDA

8、 PROC NEAR MOV DX, SI MOV BP, DI MOV BX, 05 AD1: SUB BYTE PTR SI+BX-1 , 30H SUB BYTE PTR DI+BX-1 , 30H DEC BX JNZ AD1 MOV SI, DX MOV DI, BP MOV CX, 05 CLC AD2: MOV AL, SI MOV BL, DI ADC AL, BL AAA MOV SI , AL INC SI INC DI LOOP AD2 MOV SI, DX MOV DI, BP MOV BX, 05 AD3: ADD BYTE PTR SI+BX-1, 30H ADD

9、BYTE PTR DI+BX-1, 30H DEC BX JNZ AD3 RET ADDA ENDP CODE ENDS END START五、 实验要求1 读懂源程序,写出源程序注释。2 写出实验结果。3 把源程序修改为任意两个六位十进制相加。并思考如果最高位有进位怎么办?实验二 字符匹配程序一、实验目的掌握提示信息的使用方法及键盘输入信息的用法。二、实验内容编写程序,实现两个字符串比较。如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NO MATCH”。三、程序框图段寄存器及堆栈初始化 显示“请输入字符串1”使用INT 21H的0A号子功能,接收键入的字符串显示“请输入字符

10、串2”指针SI指向串1的首字符SI指向的字符串和串2中所有字符作比较 Y 相等? N SI+1,指向串1中下一字符 N 串1中的字符已取完? Y显示“NO MATCH” 显示“MATCH” 返回DOS四、程序清单CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM DATA SEGMENTMESS1 DB MATCH,0DH,0AH,$MESS2 DB NO MATCH,0DH,0AH,$MESS3 DB INPUT STRING1:,0DH,0AH,$ MESS4 DB INPUT STRING

11、2:,0DH,0AH,$MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP (?)DATA ENDSSTACK SEGMENT STACKSTA DB 50 DUP (?)TOP EQU LENGTH STASTACK ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TO

12、P MOV AH,09H MOV DX,OFFSET MESS3 INT 21H MOV AH,0AH MOV DX,OFFSET MAXLEN1 INT 21H CRLF MOV AH,09H MOV DX,OFFSET MESS4 INT 21H MOV AH,0AH MOV DX,OFFSET MAXLEN2 INT 21H CRLF CLD MOV SI,OFFSET STRING1 MOV CL,SI-1 MOV CH,00H KKK: MOV DI,OFFSET STRING2 PUSH CX MOV CL,DI-1 MOV CH,00H MOV AL,SI MOV DX,DI R

13、EPNZ SCASB JZ GGG INC SI POP CX LOOP KKK MOV AH,09H MOV DX,OFFSET MESS2 INT 21H JMP PPP GGG: MOV AH,09H MOV DX,OFFSET MESS1 INT 21HPPP: MOV AX,4C00H INT 21HCODE ENDSEND START五、实验要求1 读懂源程序,写出程序注释。2 写出实验结果。3 修改源程序,使其实现,当两个字符串中所有字符都匹配(注意字符串的长度和顺序)时才显示“MATCH”,否则显示“NO MATCH”。实验三 排序实验一、实验目的掌握用汇编语言编写排序程序的思

14、路和方法。二、实验内容从首地址为1000H开始存放50个数,要求设计程序将这些数由小到大排序,排序后的数,仍放在该区域中。三、程序框图 入口 段寄存器和堆栈初始化 显示“请输入段址” 调GETNUM,键入段址送ES显示“请输入偏移量” 调GETNUM,键入偏移量SIDS也指向附加段外循环次数SORTNUM1送CX偏移指针BX清0 A从SI+BX单元取数AL 交换单元指针AH=BL CX入栈 计算内循环次数送CX内循环控制变量DX初始化 DX值+1 比较AL与DX指示单元的值 N AL较大? Y DX指示单元的值赋给AL,并修改指针AH NCX1=0? Y 交换SI+BX单元和AH指针指示的单元

15、的值偏移指针BX+1 CX 出栈NA CX1=0? Y显示“SORT OK!”循环调DISP1,将排序后的数依次显示出来 返回DOS四、程序清单CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENTORG 160HDATA1 DB 0ah,09h,08h,07h,06h,05h,04h,03h,02h,01hSORTNUM EQU 10 MESS1 DB INPUT SEGMENT VALUE:$ MESS2 DB INPUT OFFSET VALUE:$MESS3 DB SO

16、RT OK!,0DH,0AH,$ERROR DB INPUT ERROR!,0DH,0AH,$DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?) TOP DW ? STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP MOV AH,09H MOV DX,OFFSET MESS1 INT 21H CALL GETNUM MOV ES,DX CRLF MOV AH,09H MOV DX,OFFSET MES

17、S2 INT 21H CALL GETNUM MOV SI,DX PUSH ES POP DS; DS= ES MOV CX,SORTNUM DEC CX XOR BX,BXIII: MOV AL,SI+BX MOV AH,BL PUSH CX MOV CX,SORTNUM SUB CX,BX DEC CX MOV DX,BX JJJ: INC DX PUSH BX MOV BX,DX CMP AL,SI+BX JBE UUU MOV AL,SI+BX MOV AH,DLUUU: POP BX LOOP JJJ MOV CL,SI+BX MOV SI+BX,AL MOV DL,AH PUSH

18、BX MOV BX,DX MOV SI+BX,CL POP BX INC BX POP CX LOOP III PUSH DS MOV AX,DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET MESS3 INT 21H POP DS MOV CX,SORTNUMVVV: MOV AL,SI CALL DISP1 CRLF INC SI LOOP VVV MOV AX,4C00H INT 21HDISP1 PROC NEAR PUSH CX MOV BL,AL MOV DL,BL MOV CL,04 ROL DL,CL AND DL,0FH CALL DISPL M

19、OV DL,BL AND DL,0FH CALL DISPL POP CX RETDISP1 ENDPDISPL PROC NEAR ADD DL,30H CMP DL,3AH JB DDD ADD DL,27HDDD: MOV AH,02H INT 21H RET DISPL ENDP GETNUM PROC NEAR PUSH CX XOR DX,DXGGG: MOV AH,01H INT 21H CMP AL,0DH JZ PPP CMP AL,20H JZ PPP SUB AL,30H JB KKK CMP AL,0AH JB GETS CMP AL,11H JB KKK SUB AL

20、,07H CMP AL,0FH JBE GETS CMP AL,2AH JB KKK CMP AL,2FH JA KKK SUB AL,20HGETS: MOV CL,04 SHL DX,CL XOR AH,AH ADD DX,AX JMP GGGKKK: MOV AH,09H MOV DX,OFFSET ERROR INT 21HPPP: PUSH DX CRLF POP DX POP CX RETGETNUM ENDP CODE ENDSEND START五、 实验要求1 读懂程序,写出程序注释。2 写出实验结果。3 修改程序,使其实现从大到小的排序 实验四 接收年、月、日信息显示的程序一

21、、实验目的掌握响铃符方法,并且掌握年、月、日的输入方法。二、实验内容先显示“WHAT IS THE DATA (MM/DD/YY)?”并响铃一次,然后接收键盘输入的月/日/年信息,并显示。三、程序框图入口 段寄存器和堆栈初始化 显示“WHAT IS THE DATA” 输出响铃字符 调GETNUM,接收键入的月值,日值及年值 调DISP显示年值 输出字符“” 调DISP显示月值 输出字符“”调DISP显示日值 返回DOS四、程序清单CRLFMACROMOVAH,02HMOVDL,0DHINT21HMOVAH,02HMOVDL,0AHINT21HENDMDATASEGMENTMESSDB WHA

22、T IS THE DATA(MM/DD/YY)?,0DH,0AH,$ERRORDBINPUT ERROR!,0DH,0AH,$DATAENDSSTACKSEGMENTSTADW32 DUP(?)TOPDW?STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSP,TOPMOVAH,09HMOVDX,OFFSET MESSINT21HMOVAH,02HMOVDL,07HINT21HCALLGETNUMPUSHDXCALLGETNUMPUSHDXCALLGETNUM

23、MOVAX,DXCALLDISPMOVAH,02HMOVDL,INT21HPOPDXPOPAXCALLDISPPMOVAH,02HMOVDL,INT21HMOVAX,DX CALLDISPP INT21HDISPPPROCNEARMOVBL,ALMOVDL,BLMOVCL,04MOVDL,CLANDDL,0FHCALLDISPLMOVDL,BL ANDDL,0FHCALLDISPLMOVDL,BLANDDL,0FHCALLDISPLRETDISPPENDPDISPLPROCNEARADDDL,30HCMPDL,3AHJBDDDADDDL,27HDDD:MOVAH,02HINT21HRETDIS

24、PLENDPDISPPROCNEARPUSHBXPUSHCXPUSHDXPUSHAXMOVAL,AHCALLDISPPPOPAXCALLDISPPPOPDXPOPCXPOPBXRETDISPENDPGETNUMPROCNEARPUSHCXXORDX,DXGGG:MOVAH,01HINT 21HCMPAL,0DHJZPPPCMPAL,20HJZPPPSUB AL,30HJBKKKCMPAL,11HJBKKKSUB AL,07HCMP AL,0FHJBEGETSJBKKKCMPAL,2FHJAKKKSUB AL,20HGETS:MOVCL,04HSHL DX,CLXORAH,AHADDDX,AXJ

25、MPGGGKKK:MOVAH,09HMOVDX,OFFSET ERRORINT 21HPPP:PUSHDXCRLFPOPDXPOPCXRETGETNUMENDPCODEENDSENDSTART程序CRLF MACRO ;宏定义MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDM ;回车换行DATA SEGMENT ;数据段定义MESS DB WHAT IS THE DATE(MM/DD/YY),0DH,0AH,$ERROR DB 0DH,0AH,INPUT ERROR!,0DH,0AH,$NIAN DW 0000HDATA END

26、SSTACK SEGMENT ;堆栈段定义STA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TOP MOV AH,09H MOV DX,OFFSET MESS INT 21H ;09功能显示字符串MOV AH,02HMOV DL,07HINT 21H ;02功能调用,响铃SSS : CALL GETNUMPUSH DX ;日CALL GETNUMPUSH DX ;月CALL GETNUMMOV NIAN,DX ;年POP DX

温馨提示

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

评论

0/150

提交评论