汇编--宏指令设计

汇编--宏指令设计

ID:26225079

大小:220.00 KB

页数:12页

时间:2018-11-25

汇编--宏指令设计_第1页
汇编--宏指令设计_第2页
汇编--宏指令设计_第3页
汇编--宏指令设计_第4页
汇编--宏指令设计_第5页
资源描述:

《汇编--宏指令设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、实验目的和内容1.掌握宏指令库的设计方法,并设计程序来调用其中的宏指令。2.编程实现32位二进制数除以16位二进制数,并把结果用十进制数形式显示在屏幕上。要求采用宏指令库实现。二、实验原理及基本技术路线图(方框原理图)宏指令是源程序中一段有独立功能的程序代码。宏指令由宏定义伪指令定义,它只需在源程序中定义一次,便可以多次被调用。当源程序被汇编时,汇编程序对每个宏调用进行宏扩展。宏扩展就是用宏定义体替换宏指令名,并用实参数替换形式参数。宏调用中实参数个数和形式参数个数不等时,若实参数个数大于形式参数个数,在替换时多余的实参数不予考虑;若实参数个数小于形式参数个数,则多余的形式参数作为空(字

2、符)或零(数字)处理。应保证用实参数替换形式参数后,所展开的是有效的汇编语句,否则汇编程序会提示错误。为了使宏指令能让多个程序共享,可以把它们组织到一个文件中,并存放在磁盘上,把这种文件称为宏指令库。可以用EDIT等任何文本编辑程序创建宏指令库,库名由用户自己起,而且对库的扩展名没有特殊要求。库中的宏指令以源代码形式出现。-12-开始将被除数的高字送DX将被除数的低字送AX被除数/除数:余数送DX,商送AX将AX内的16位二进制数转换为十进制的ASCII码清屏输出计算结果结束程序流程图三、所用仪器、材料(设备名称、型号、规格等)1.操作系统平台:Windows72.汇编环境:Microsof

3、tMASM5.03.文本编辑器:记事本四、实验方法、步骤1.将MASM5的文件置于D:assembly目录下;2.将masm.exe和link.exe所在目录(D:assemblyMASM5)添加到Path环境变量中;3.在D:assembly下新建一个div.asm文件,打开div.asm,输入汇编程序代码;4.新建一个宏指令库macro.lib,输入源代码,保存;5.运行一个命令行窗口,将当前目录切换到D:assembly,然后输入命令:masmdiv.asm[Enter],来汇编程序,根据汇编结果查看程序代码是否有语法错误,如有,则更正保存后重新汇编,直至没有错误为止(特别是

4、对宏指令库的检查),此时会生成div.obj文件;6.输入命令:linkdiv.obj[Enter],观察输出结果,如果没有错误,则生成div.exe;-12-7.输入命令:debugdiv.exe[Enter],调试程序,并记录运行过程;8.完成实验报告。五、实验过程原始记录(数据、图表、计算等)1.新建一个宏指令库macro.lib:2.新建名为div.asm的文件,输入汇编程序代码:MACRO.LIB文件源码:;------------------------------------12-;功能:保存寄存器DX、CX、BX、AX;----------------------------

5、-------PUSHREGMACROPUSHDXPUSHCXPUSHBXPUSHAXENDM;-----------------------------------;功能:恢复寄存器AX、BX、CX、DX;-----------------------------------POPREGMACROPOPAXPOPBXPOPCXPOPDXENDM;-----------------------------------;功能:清屏;-----------------------------------CLRSCRNMACROPUSHREGMOVAH,6MOVAL,0MOVBH,1FHMOVCX

6、,0MOVDX,184FHINT10HPOPREGENDM;-----------------------------------;返回操作系统;-----------------------------------RETURNMACROMOVAX,4C00HINT21HENDM;-----------------------------------;功能:把16位二进制数转换为十进制数的-12-;ASCII值,ASC为5个字节的十进制数缓冲区,;BIN为要转换的二进制数。;-----------------------------------BIN_DECMACROASC,BINPUSHR

7、EG;保存寄存器内容PUSHDILEADI,ASC;保存输出结果字符串的首地址XORDX,DXMOVAX,BINMOVBX,10000DIVBX;求万位数ADDAL,30HMOV[DI],AL;存放万位数的ASCII码INCDIMOVAX,DXXORDX,DXMOVBX,1000DIVBX;求千位数ADDAL,30HMOV[DI],AL;存放千位数的ASCII码INCDIMOVAX,DXXORDX,DXMOV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。