微机原理实验-数据传送及两个多位十进制数相加_第1页
微机原理实验-数据传送及两个多位十进制数相加_第2页
微机原理实验-数据传送及两个多位十进制数相加_第3页
微机原理实验-数据传送及两个多位十进制数相加_第4页
微机原理实验-数据传送及两个多位十进制数相加_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

深圳大学实验报告课程名称:微机原理及应用实验实验项目名称:数据传送及两个多位十进制数相加学院:专业:指导教师:报告人:学号:班级:实验时间: 实验报告提交时间:教务处制一、实验名称:数据传送及两个多位十进制数相加二、实验目的(1)学习数据传送和算术运算指令的用法。(2)熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。三、实验内容将两个多位十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回DATAl处。四、实验电路及连线(硬件实验)此实验属于软件实验,故无硬件实验的电路及连线。五、程序说明(预习)包括程序功能,程序框图,算法说明及所用到的寄存器等。功能:将被加数和加数分别显示,接着运行加法运算,然后将结果显示出来。算法说明:①定义数据段:定义被加数和加数,且要使其用ASCII码以十六进制之间的转换;②定义堆栈段,并给SP_TOP单元赋初值0;③定义代码段,并将源代码放在里面首先,编写主程序;接着,编写显示、回车换行和加法运算的子程序。④程序结束。所用到的寄存:AX、SS、CS、DS、ES、SI、SP、DI程序框图:开始开始显示加数和被加数显示加数和被加数加数和被加数以ASC加数和被加数以ASCⅡ码表示的数字串形式转化为由十六进制表示的数字串形式赋计数值给CX赋计数值给CX清除最低位进清除最低位进执行ADC带进位相加执行ADC带进位相加AAA调整AAA调整结果送被加数区结果送被加数区调整偏移量调整偏移量显示加数和被加数显示加数和被加数CX-1=0CX-1=0十六进制结果转化为ASC十六进制结果转化为ASCⅡ显示结果显示结果结束结束源程序清单(预习);DATASSEGMENT;数据段DATA1DB33H,32H,38H,34H,37H;定义DATA1为被加数DATA2DB34H,35H,39H,37H,31H;定义DATA2为加数DATASENDSSTACKSSEGMENT;堆栈段STADB64DUP(0);为STA预留64个字节的存储空间SP_TOPDB0;定义SP_TOP单元的数值为0STACKSENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATAS,ES:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;设置数据段MOVAX,STACKSMOVSS,AX;设置堆栈段LEASP,SP_TOP;设置栈顶指针MOVSI,OFFSETDATA1;把DATA1偏移量地址赋予SIMOVBX,05CALLDISPL;显示被加数CALLCRLF;回车、换行MOVSI,OFFSETDATA2;把DATA2偏移量地址赋予SIMOVBX,05CALLDISPL;显示加数CALLCRLF;回车、换行MOVDI,OFFSETDATA1;把DATA1偏移量地址赋予DICALLADDA;调用ADDA子程序,实行加法运算MOVBX,05CALLDISPL;显示结果CALLCRLF;回车、换行MOVAX,4C00H;INT21H;调用DOS21H功能,返回CRLFPROCNEAR;回车、显示功能过程定义,属性为NEARMOVDL,0DH;把回车的ASCII码0DH传给DLMOVAH,02H;送DOS的中断调用功能号INT21H;DOS的中断调用MOVDL,0AH;把换行的ASCII码0AH传给DLMOVAH,02H;送DOS的中断调用功能号INT21H;DOS的中断调用RET;返回CRLFENDP;完成过程定义DISPLPROCNEAR;显示功能过程定义,属性为NEARDSL:MOVAH,02;送显示功能号MOVDL,[SI+BX-1];显示字符串中一字符INT21H;DOS的中断调用DECBX;BX减1,修改偏移量JNZDSL;如果BX未减到零,跳到DSL执行指令RET;返回DISPLENDP;完成显示功能子程序定义ADDAPROCNEAR;实行加法运算子程序过程定义,属性为NEARMOVDX,SIMOVBP,DIMOVBX,05TRAN_HEX:SUBBYTEPTR[SI+BX-1],30H;把ASCII码数转化为十六进制SUBBYTEPTR[DI+BX-1],30HDECBX;BX减1,修改偏移量JNZTRAN_HEX;如果BX未减到零,跳到TRAN_HEX执行指令MOVSI,DXMOVDI,BPMOVCX,05;包括进位,共5位CLC;进位标志位CF清零(clearcarryflag)THE_ADD:MOVAL,[SI]MOVBL,[DI]ADCAL,BL;带进位相加,把结果存在AXAAA;进行AAA调整,非结合BCD码的加法调整MOV[SI],AL;结果送被加数区INCSI;SI加1INCDI;DI加1(指向下一位)LOOPTHE_ADD;循环MOVSI,DXMOVDI,BPMOVBX,05TRAN_ASCI:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],30H;使用PTR转换属性并相加,将十六进制数转化为ASCII表示DECBX;BX减1,修改偏移量JNZTRAN_ASCI;如果BX未减到零,跳到TRAN_ASCIRET;返回ADDAENDP;加法子程序定义完成CODESENDS;代码段完成ENDSTART实验源程序清单(实验后以电子报告形式存储到指定位置)源程序路径及文件名:E:\masm\实验三\l3.asm可执行程序路径及文件名:E:\masm\实验三\l3.exe;上机调试情况说明上机调试步骤A.通过dos对pts3.asm文件进行操作。B.编译通过并实现功能。C.使用-T、-G等操作指令,来查看程序运行时的各段地址及三个子程序入口的IP实验结果1.在debug和Emu8086下调试该可执行文件,给出程序运行时的各段地址:DOS:CS=0B8B,DS=0B85,ES=0B75,SS=0B86;EMU8086:CS=F400,DS=0710,ES=0700,SS=0711.2.在debug和Emu8086下调试该可执行文件,三个子程序入口的IP:DOS:DISPL=0047,CRLF=003A,ADDA=0052;EMU8086:DISPL=0046,CRLF=0039,ADDA=0051子程序格式及其调用方法:段内直接调用指令的格式:CRLFPROCNEAR调用方法:指令在汇编时,汇编程序会计算CALL的下一条指令与十、实验总结①在预习时,尽量把源程序看懂,结合书去看。②在实验进行时,对于一些数据作修改,进行调试能够更好的理解程序所执行的内容。十一、思考题:思考题输入一个一位十六进制数字(由0-9,A~F组成),然后显示该数字的十进制值。重复上述过程,直至输入值为Q时结束程序。要求能判断不符合要求的输入,并提示输入不合法。请写出完整程序。DATASEGMENTSTRDB'PLEASEINPUTANUMBER(H):','$'ERROR0DB'SORRY!THENUMBERISILLEGAL!','$'END0DB'THEPROGRAMHASEXITED!','$'DATAENDSSTACKSEGMENTSTACK;堆栈段STADB64DUP(0)SP_TOPDB0STACKENDSCODESEGMENT;代码段ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK;指定段寄存器START:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AX;初始化段计算器和堆栈寄存器LP:LEADX,STRMOVAH,09HINT21HMOVAH,01HINT21HCALLA1CALLTELNUMCALLCRLFCMPAL,51HJNZLPMOVAH,4CHINT21H;主程序结束,返回DOSA1:PROCNEAR;回车、换行于功能PUSHAXMOVDL,0DH;回车(0DH为回车的ASCII码)MOVAH,02H;送DOS的中断调用功能号INT21H;DOS的中断调用MOVDL,0AH;换行(0AH为换行的ASCII码)MOVAH,02H;送DOS的中断调用功能号INT21H;DOS的中断调用POPAXRETCRLFENDPTELNUMPROCNEARPUSHAXCMPAL,30HJBERRORCMPAL,3AHJBA2CMPAL,41HJBWRONGCMPAL,47HJBA3CMPAL,51HJZDOOR0ERROR:LEADX,ERROR0

温馨提示

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

评论

0/150

提交评论