资源描述:
《汇编实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一汇编语言程序的上机过程一、实验目的掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。二、实验内容1、输入卜列完整的程序STACKSEGMENTSTACKDB200DUP(?)STACKENDSDATASEGMENTBUFDB'HOWAREYOU!$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXLEADX,BUFMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART(
2、木程序的正确运行结果是在屏幕显示“HOWAREYOU!”)2、完成课本P193习题5.1。三、实验步骤(1)利用EDIT编辑源程序;(2)汇编源程序;(3)连接目标程序文件;(4)运行可执行文件。四、实验报告要求写出以上两个实验内容的题目、源码、具体实验步骤和实验结果。实验二DEBUG的使用技术一、实验目的(1)熟悉DEBUG有关命令的使用方法。(2)利川DEBUG掌握有关指令的功能。(3)利用DEBUG运行简单的程序段。二、实验内容(1)进入和退出DEBUG程序。(2)学会DEBUG屮的D命令、E命令、R命令、T命令、A命
3、令、G命令等的使丿I」。对于U命令、N命令、W命令等,也应试一下。(3)学习使用DEBUG程序的基本用法,进一步熟悉常用的单、双操作数指令和各种寻址方式的功能及使用格式。三、实验步骤(1)DEBGU的基木命令,单步执行如下程序,检查每条指令执行后目的地址及有关寄存器的内容。STACKSEGMENTSTACKDB200DUP(0)STACKENDSDATASEGMENTBUF1DB0,1,2,3,4,5,6,7,&9BUF2DB10DUP(0)BUF3DB10DUP(0)BUF4DB10DUP(0)DATAENDSCODESE
4、GMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUF1MOVDI,OFFSETBUF2MOVBX,OFFSETBUF3MOVBP,OFFSETBUF4MOVCX,10LOPA:MOVAL,[SI]MOV[DI],ALINCALMOV[BX],ALADDAL,3MOVDS:[BP],ALINCSIINCDIINCBPINCBXDECexJNELOPAMOVAH,4CHINT21HCODEENDSENDSTART(1)用DEBUG的A
5、命令,键入如下程序段:MOVBX,8275HMOVAX,3421HADDBX,92A5HADCAX,2F65HADDBX,EAE6HADCAX,9C88H再用T命令单步执行,并观察每条指令执行后有关寄存器特别是TP寄存器的内容及标志位的变化。(2)用A命令、T命令、I)命令、R命令、E命令完成下列指令,并检查执行后的结果。执行前:(AX)=1,(DS)=3000H,(32000H)=976。指令:MOVAX,[2000](3)完成课本P193习题5.9的程序。四、实验报告要求写出以上实验内容具体的操作步骤。包括所用的命令,以
6、及杏看结果的方法和具体结果。实验三分支程序设计一、实验目的1、学习判断分支程序设计方法。2、学习DOS调用的基本方法。二、实验内容1、若在三个连续的字单元存放着彼此相等的代码。现知道其中一个字中的内容发生了变化,试编写程序找岀变化了的代码及地址,并要求将此代码送入字变量A屮,其地址送入字变量B中。2、编写一个向用户提供字符ASCII码的程序。要求:若用户需要知道某一字符的ASCII码,则从键盘键入该字符。此时,程序将该字符的ASCII码按十六进制数形式在显示器输出,显示格式如下:(下而横线上的字符山用户键入,若键入“冋车”时
7、,贝怀显示ASCII码,结束运行,返回DOS状态)三、参考程序第一题参考程序:STACKSEGMENTSTACKDB200DUP(O)STACKENDSDATASEGMENTBUFDW550H,666H,550H;三个被测试代码ADW0BDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AX;第一个字单元的内容与第二个单元的内容比较,MOVAX,BUF不相等则转L1CMPAX,BUF+2JNELIMOVAX,BUF+4;第三个字
8、单元的代码发生了变化,MOVA,AXMOVB,OFFSETBUF+4故(BUF+4)一〉A,BUF+4一〉B,(转EXIT)JMPEXITLI:CMPAX,BUF+4;第一个字单元的内容与第三个单元的内容比较,JNEL2不相等则转L2MOVAX,BUF+2MOVA,AX;第二个字单元的代码