实验一南昌航空大学两个多位十进制数相减实验_第1页
实验一南昌航空大学两个多位十进制数相减实验_第2页
实验一南昌航空大学两个多位十进制数相减实验_第3页
实验一南昌航空大学两个多位十进制数相减实验_第4页
全文预览已结束

下载本文档

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

文档简介

微机原理实验南昌航空大学实验报告学生姓名:学号:专业班级:电子信息工程实验类型:n验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称实验一、多位十进制数相减实验二、实验目的(1)学习数据传送和算术运算指令的用法。(2)熟悉在PC机上建立、汇编、连接、调试和运行汇编语言的过程。三、实验要求将两个多位十进制数相减,要求被减数、减数均以ASCII码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。实验程序框图如下图所示:四、实验程序DATASEGMENTDATA1DB33H,39H,31H,37H,38H;第一个数据(作为被减数)DATA2DB36H,35H,30H,38H,32H;第二个数据(作为减数)MES1DB'-','$'MES2DB'=','$'DATAENDSSTACKSEGMENT;堆栈段STADB20DUP(?);定义由20个字节组成的数据缓冲区(数组),每个字节的初值不确定TOPEQULENGTHSTA返回利用DUP定义的数组元素的个数到TOP,TOP=20;段使用设定语句,确定段寄存器与段的对应关系:从现在开始:CS段使用设定语句,确定段寄存器与段的对应关系:从现在开始:CS寄存器对应CODE段,DS寄存器对应数据段,SS寄存器对应STACK段,ES寄存器对应数据段.CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA;START:MOVAX,DATA段使用设定语句是伪指令,它不能设置段寄存器的值,只能通过指令语句给DS,ES,SS赋值,CS段使用设定语句是伪指令,它不能设置段寄存器的值,只能通过指令语句给DS,ES,SS赋值,CS由系统自动赋值。MOVES,AXMOVAX,STACKMOVSS,AX堆栈指针寄存器赋值MOVAX,TOP堆栈指针寄存器赋值MOVSP,AXMOVSI,OFFSETDATA1被减数送SIMOVBX,05位数5送BX中,作为显示子程序的循环控制变量CALLDISPL;调用显示子程序,显示被减数DOS功能调用:AH=09H,显示字符串到屏幕,DX::要显示的内容。显示“-”号DOS功能调用:AH=09H,显示字符串到屏幕,DX::要显示的内容。显示“-”号LEADX,MES1INT21HMOVSI,OFFSETDATA2减数送SIMOVBX,05CALLDISPL调用显示子程序,显示减数DOS功能调用:AH=09H,显示字符串到屏幕,DX::要显示的内容。显示“=”号DOS功能调用:AH=09H,显示字符串到屏幕,DX::要显示的内容。显示“=”号LEADX,MES2INT21HMOVSI,OFFSETDATA1被减数送SIMOVDI,OFFSETDATA2减数送DICALLSUBA;调用减法子程序,进行减法运算MOVSI,OFFSETDATA1运算结果送SIMOVBX,05;CALLDISPL调用显示子程序,显示运算结果DOS功能调用:AH=02H,显示一个字符到屏幕,DX::要显示的内容:CR(回车)的ASCII码0DMOVDL,0DHDOS功能调用:AH=02H,显示一个字符到屏幕,DX::要显示的内容:CR(回车)的ASCII码0DMOVAH,02HINT21HDOS功能调用:AH=02H,显示一个字符到屏幕,DX::要显示的内容:LF(换行)的ASCII码0A。MOVDL,0AHDOS功能调用:AH=02H,显示一个字符到屏幕,DX::要显示的内容:LF(换行)的ASCII码0A。MOVAH,02HINT21HDOS功能调用:AH=4CH,退出程序INT21HDOS功能调用:AH=4CH,退出程序MOVAX,4C00HINT21HDISPLPROCNEAR;显示子程序(显示5个字符:BX=5)DSI:MOVAH,02AH=02H,显示一个字符到屏幕MOVDL,[SI+BX-1];显示字符串中一字符INT21HDECBX;修改偏移量JNZDSIBX不等于0,继续显示RETDISPLENDPSUBAPROCNEAR保护数据地址MOVDX,SI把被减数数据地址送到DX保护数据地址MOVBP,DI把减数数据地址送到BP将ASCII码表示的数字转化为十六进制表示的数字将ASCII码表示的数字转化为十六进制表示的数字SU1:SUBBYTEPTR[SI+BX-1],30HSUBBYTEPTR[DI+BX-1],30HDECBX将5位数据进行转换JNZSU1;恢复数据地址MOVSI,DX恢复数据地址MOVDI,BPMOVCX,05;置循环初始值,包括进位,共5位CLC;清进位位SU2:MOVAL,[SI]被减数送SIMOVBL,[DI]减数送DISBBAL,BL;带进位相减AAS;非组合BCD码的减法调整MOV[SI],AL;结果送被减数区INCSI指向下一位INCDI;指向下一位恢复数据地址LOOPSU2;CX=0?循环恢复数据地址MOVSI,DXMOVDI,BP ADD BYTEPTR[DI+BX-1],30H DEC BX JNZ SU3 RET SUBA ENDP CODE ENDS END START实验步骤先进入DOS系统,按照路径进入EDIT编写上述程序1.ASM,并保存;用MASM编

温馨提示

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

评论

0/150

提交评论