《微机原理与接口技术》上机报告学院:机电学院指导教师:胡勇学号:631424210229姓名:鞠其林实验一初级程序的编写与调试实验一、实验目的1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序.2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出.3、掌握各种寻址方法以及简单指令的执行过程.二、实验内容1、设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换.请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试.程序:MOVAX,3000MOVBX,5000MOVSP,2000PUSHAXPUSHBXPOPAXPOPBXHLT2、设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成.程序:MOVAX,0002MOVBX,AXMOVCL,2SHLAX,CLADDAX,BXMOVCL,1SHLAX,CLHLT三、心得体会从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了一点错误,修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的少,还很生疏,我以后一定多加练习,把汇编学好。实验二加法及判断程序的编写与调试一、实验目的1、熟练掌握编写汇编语言源程序的基本方法和基本框架.2、学会编写顺序结构,分支结构和循环结构的汇编程序3、掌握程序中数据的产生与输入输出的方法.二、实验内容1、用汇编语言编写一个加法程序:1325+9839请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果显示输出.程序:DATASEGMENTDATA1DB'5','2','3','1'DATA2DB'9','3','8','9'DATAENDSSTACKSEGMENTPARASTACK'STACK'DB200DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,DATA1LEADI,DATA2MOVCX,4MOVAH,0NEXT:MOVAL,[SI]ADCAL,[DI]ADCAL,AHMOVAH,0AAAADDAL,30HMOV[DI],ALINCDIINCSILOOPNEXTMOVCX,5ADDAH,30HMOV[DI],AHNEXT1:MOVDL,[DI]MOVAH,02INT21HDECDILOOPNEXT1MOVAH,4CHINT21HCODEENDSENDSTART2、假设有一组数据:5,-4,0,3,100,-51,请编写一程序,判断:每个数是否大于0?等于0?还是小于0?并输出其判断结果,即即:1当X0Y=0当X=0-1当X0程序:DATASEGMENTDATA1DB5,-4,0,3,100,-51STRING1DB'Y=1','$'STRING2DB'Y=0','$'STRING3DB'Y=-1','$'DATAENDSSTACKSEGMENTPARASTACK'STACK'DB200DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,DATA1MOVCX,6NEXT:MOVAL,[SI]CMPAL,0JZNEXT1JNSNEXT2JSNEXT3NEXT1:MOVDX,OFFSETSTRING2MOVAH,09HINT21HJMPNEXT4NEXT2:MOVDX,OFFSETSTRING1MOVAH,09HINT21HJMPNEXT4NEXT3:MOVDX,OFFSETSTRING3MOVAH,09HINT21HNEXT4:INCSILOOPNEXTMOVAH,4CHINT21HCODEENDSENDSTART三、心得体会通过程序汇编,熟练掌握运用轻松汇编软件的方法,学会了使用循环位移指令的方法,并巩固了对各项指令运用。某些地方掌握不牢,有待学习提高。实验三大小写字母互换程序的编写与调试一、实验目的:(1)、学习子程序的定义和调用方法。(2)、掌握子程序设计、调试。二、实验内容:对内存中给定的几个无符号字节数,求其最大值和最小值。3、实验步骤:(1)在内存4000H~4007H中写入任意八个字节的数。(2开始运行程序。4、实验运行结果:编程代码如下所示:ORG0100HSTART0:MOVSI,4000HMOVCX,0008MAXMIN:MOVBH,[SI]MOVBL,BHCON2:LODSBCMPAL,BHJNAX1MOVBH,ALJMPX2X1:CMPAL,BLJNBX2MOVBL,ALX2:LOOPCON2MOVAH,4CHINT21H结果截图如下所示:三、心得体会从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了很多错误,修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的少,还很生疏,我以后一定多加练习,把汇编学好。