《西安电子科技大学微机原理大作业.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学微机原理大作业.docx(26页珍藏版)》请在优知文库上搜索。
1、西安电子科技大学微机原理大作业,载机原理大作必第一次上机一、实验目的1 .熟练掌握8086/8088的各种寻址方式及应用。2 .掌握DEBUG调试程序中的一些常用命令的使用方法,为以后的实验打下基础二、实验仪器586微机1台三、实验内容1.关于数据的寻址方式练习8086/8088提供多种方式实现操作数寻址,大体可分为7种:a.立即寻址b.寄存器寻址C,直接寻址d.寄存器间接寻址e.寄存器相对寻址f.基址变址寻址g.基址变址且相对寻址掌握8086/8088的这些寻址方式,是学习汇编语言编程的关键。指令SRC寻址方式SRC的地址AX推算值AX实际值MOVAX,CX寄存器寻址00050005MOVA
2、X,500H立即寻址05000500MOVAX,TABLE直接寻址1541:0004A5A4A5A4MOVAX,ES:BXJ寄存器间接寻址1542:0004C5C4C5C4MOVAX,BX+05H寄存器相对寻址1541:0009AAA9AAA9MOVAX,SS:BX+03H寄存器相对寻址153F:0007B8B7B8B7MOVAX,TABLEBX寄存器相对寻址1541:0008A9A8A9A8MOVAX,07HIBX寄存器相对寻址154k000BACABACABMOVAX,BP寄存器间接寻址I53F:OOO3B4B3B4B3MOVAX,TABLEBP寄存器相对寻址1541:0007A8A7A8
3、A7MOVAX,08HBP寄存器相对寻址153F:000BBCBBBCBBMOVAX,BP+06H寄存器相对寻址153F:0009BAB9BAB9MOVAX,DS:BP+03H寄存器相对寻址1541:0006A7A6A7A6MOVAX,BP+05H寄存器相对寻址153F:0008B9B8B9B8MOVAX,ES:SI+O3H寄存器相对寻址1542:0005C6C5C6C5MOVAX,DI+06H寄存器相对寻址1541:0007A8A7A8A7MOVAX,DI1+O5H寄存器相对寻址1541:0006A7A6A7A6MOVAX,TABLESI寄存器相对寻址1541:0006A7A6A7A6MOV
4、AX,SI寄存器间接寻址1541:0002A3A2A3A2MOVAX,TABLEDI寄存器相对寻址1541:0005A6A5A6A5MOVAX,S1+O5H寄存器相对寻址1541:0007A8A7A8A7MOVAX,BXDI+01H基址变址且相对寻址1541:0006A7A6A7A6MOVAX,BXSI+O3H基址变址且相对寻址1541:0009AAA9AAA9MOVAX,TABLEBXSI基址变址且相对寻址154k000AABAAABAAMOVAX,ES:BXJDIJ基址变址寻址1542:0005C6C5C6C5MOVAX,BPDI+02H基址变址且相对寻址153F:0006B7B6B7B6
5、MOVAX,TABLE(BPIDI基址变址且相对寻址1541:0008A9A8A9A8MOVAX,ES:BPSI基址变址寻址1542:0005C6C5C6C5MOVAX,BPSI+05H基址变址且相对寻址153F:000ABBBABBBAMOVAX,03HBPDI基址变址且相对寻址153F:0007B8B7B8B7MOVAX,BPSI基址变址寻址153F:0005B6B5B6B5MOVAX,BP+02HDI+03H基址变址且相对寻址153F:0009BAB9BAB9MOVAX,TABLEBP+02H1DI+03H基址变址且相对寻址154k000DAEADAEAD第二次上机一、实验目的1 .熟练
6、掌握汇编语言程序设计的方法及上机步骤。2 .掌握算术运算中,十进制数调整指令的应用。3 .掌握子程序的设计方法。4 .掌握DoS功能的调用方法。二、实验仪器586微机1台三、实验内容1 .编写求十进制数02121424与21736543之和的程序,并将和以十进制数的形式送屏幕显示。STACKSEGMENTSTACKSTACKMOVES,AXDW100HDUP(?)MOVAX,STACKSTACKENDSMOVSS,AXDATASEGMENTLEASI,ADDlADDlDD02121424HLEADI,ADD2ADD2DD21736543HLEABX,SUMSUMDD?MOVAL,SIDATAE
7、NDSADDALJDICODESEGMENTDAAASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKMOVBX,ALMOVAL,SI+HSTART:MOVAX,DATAADCAL,(DI+1MOVDS,AXDAAMOVBX+1,ALMOVAL,SI+2ADCAL,DI+2DAAMOVBX+2,ALMOVAL,SI+3ADCAL,DI+3DAAMOVBX+3,ALMOVDL,00ADCDL,00CALLDISPSUMMOVAH,4CHINT21HDISPSUMPROCNEARPUSHAXPUSHBXPUSHCXPUSHSIMOVSI,4PUSHDXMOVCX,51.AB
8、:PUSHCXPUSHBXMOVAL,DLMOVCL,4SHRAL,CLADDAL,30HMOVAH,02MOVDUALINT21HANDBL,OFHADDBL,30HMOVAH,02MOVDL,BLINT21HPOPBXPOPCXDECSIMOVDL,BXSI1.OOPLABPOPDXPOPSIPOPCXPOPBXPOPAXRETDISPSUMENDPCODEENDSENDSTARTMOVBL,DL2.有个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。MOV AX,STACKMOV SS,AXLEA DX,STRING1MOV AH,09HINT 21HMOV CX,6L
9、EA SI,DATAlLI:MOV AX,SIADD SI,2CALL DISPAXCALL DISPCRLOOPLlMOV CX,5LEA SI,DATAlADD SI, 10STACKSEGMENTSTACKDB256DUP(?)STACKENDSDATASEGMENTDATAIDW7800H,6832H,0000H,87HJ275H,0EC34HSTRING1DBinputnumber:,ODH,OAH,$STRING2DBThenumbersfromlargetosmallis:,0DH,0AH;$DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:
10、DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXLPl:PUSHCXPUSHSIMOVAH,02HLP2:MOVAX,SIMOVDL,ALCMPAX,SI-2INT21HJBENOXCHGPOPAXXCHGAX,SI-2ANDAX,OFHMOVSI,AXCALLCHANGNOXCHG:DECSIMOVAH,02HDECSIMOVDL,ALLOOPLP2INT21HPOPSIPOPDXPOPCXPOPCXLOOPLPlPOPAXLEADX,STRING2RETMOVAH,09HDISPALENDPINT21HCHANGPROCMOVCX,6CMPAL,1
11、0LEASI,DATAlJNGECHANGlL2:MOVAXJSIADDAL,7ADDSI,2CHANGI:ADDAL,30HCALLDISPAXRETCALLDISPCRCHANGENDPLOOPL2DISPAXPROCMOVAH,4CHXCHGAL,AHINT21HCALLDISPALDISPALPROCXCHGAH,ALPUSHAXCALLDISPALPUSHCXRETPUSHDXDISPAXENDPPUSHAXDISPCRPROCMOVCL,4PUSHAXSHRAL,CLPUSHDXCALLCHANGMOVAH,2MOVDL,OAHPOPAXINT21HRETMOVAH,2DISPCR
12、ENDPMOVDL,ODHCODEENDSINT21HENDSTARTPOPDX第三、四次上机一、实验目的1.增强和提高汇编语言程序设计的能力,掌握模块化程序设计的方法.2 .熟练掌握DOS常用功能的调用方法.二、实验仪器586微机一台三、实验内容编写如下程序,并在机器上调试成功。程序采用菜单式选择,可以接收用户从键盘输入的四个命令(1-4),各命令功能分别为:(1)按下“1”键,完成字符串小写字母变成大写字母。(2)按下“2”键,完成找最大值(3)按下“3”键,完成排序(4)按下“4”键,显示时间(5)按下“5”键,结束程序运行,返回系统提示符。;宏定义显示字符串DISPLMACROSTR!FunctiontodisplaystringsPUSHDXPUSHAX1.EADX,STRMOVAH,09HINT21HPOPAXPOPDXENDM判断用户是否选择继续ISCONTINUEMACROL;MaCrotojudgewhethertocontinue,LisamarkDISPS15,10,SMENUMOVAH,08HINT2IHCMPAL,IBHJNEL;若用JE会导致编译,跳不了那么远JMPMAINENDM设置光标宏一-CURSORMACROCURX,CURYPUSHAXPUSHBXPUSHDXQX必须保护,始终指向输入缓冲区MOVAH.02HMOVDH,CUR