微机原理实验--子程序与宏指令

微机原理实验--子程序与宏指令

ID:24190330

大小:58.50 KB

页数:4页

时间:2018-11-13

微机原理实验--子程序与宏指令_第1页
微机原理实验--子程序与宏指令_第2页
微机原理实验--子程序与宏指令_第3页
微机原理实验--子程序与宏指令_第4页
资源描述:

《微机原理实验--子程序与宏指令》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、27.编制计算N(N<50)个偶数之和(2+4+6+...)的了•程序和接收键入N及将结果显示在主程序子程序代码:stacksegmentstack'stack1;定义堆栈段dw32dup⑺;堆栈段有32字空间stackendsdatasegment;定义数掘段inputdb'pleaseinputndb5,0,5dup⑺;定义变量数据区nobfdb8dup(?)dataendscodesegment;定义代码段startprocfar;定义一■个过程startassumess:stack,cs:co

2、de,ds:datapushdssubax,ax;未通过过程DOS返回做准备pushaxmovax,datamovds,axmovdx,offsetinputmovah,9;9号功能调用,显示器显示“pleaseinputN:’’int21hmovdx,offsetnmovah,10;10号功能调用,键盘输入并AA示数据nint21hmovsi,offsetn+2movcl,n+lmovch,0calla;调用子程序acallsum;调用子程序sumshlax,l;乘2movbx,segobfmove

3、s,bxmovdi,offsetobf+1callb;调川子程序bcallHH;凋用子程序HHmovdx,offsetobfmovah,9int21hRETstartendpsumproc;定义了•程序sum,sum为自然数相加了•程序pushex;保护现场pushbxmovcx,axmovbx,0movax,bxsm:adcbx,l;把bx,1和CF相加adcax,bx;把ax,bx和CF相加loopsmpopbx;恢复现场popexRETsumendpapmc;定义了程序a,a为键盘输入的

4、•进制

5、数转化成16进制了•程序movax,0cO:pushexmovex,10mulex;乘法指令调JIJandbyteptr[si],Ofh;

6、•进制的asc码转换成BCD码addal,[si]adcah,0incsi;越过负号指向数字popexloopcORETaendpbproc;定义过程c,b为16进制转换成asc码pushaxpushbxpushexpushdxpushdiorax,ax;判断数的负号jnsplus;为正转到plusmovbyteptres:[dj],LI;为负送负号至输出数据区i

7、ncdi;求负数的绝对值negaxplus:movcx,0;将ax屮2进制转换成10进制movbx,10cl:movdx,0divbxpushdx;余数进栈incex;十进制位数加1orax,ax;商不为0继续險以10jnzclc2:popax;将十进制较换成ascfi'iaddal,30hstosbloopc2moval/S1stosbpopdipopdxpopexpopbxpopaxRETbendpHHproc;定义过程HHmovdl,Oah;换行movah,2int21hmovdl,Odh;换行

8、movah,2int21hRETHHendpcodeendsendstart截阁如下:C:、>2.exepleaseinputN:642宏指令代码:summacroA;定义宏sum,sum为自然数相加了•程序pushex;保护现场pushbxmovcx,Amovbx,0movax,bxsm:adcbx,l;把bx,1和CF相加adcax,bx;把ax,bx和CF相力卩loopsmpopbx;恢复现场popexendmstacksegmentstack'stack1;定义堆栈段dw32dup⑺;堆栈段有

9、32字空间stackendsdatasegment;定义数据段inputdb!pleaseinputN:?$,ndb5,0,5dup⑺;定义变景数拋区nobfdb8dup(?)dataendscodesegment;定义代码段startprocfar;定义一■个过程startassumess:stack,cs:code,ds:datapushdssubax,ax;未通过过程DOS返M做准备pushaxmovax,datamovds,axmovdx,offsetinputmovah,9;9号功能凋用,显

10、示器显示“pleaseinputN:int21hmovdx,offsetnmovah,10;10号功能调用,键盘输入并AA示数据nint21hmovsi,offsetn+2movcl,n+lmovch,0calla;调用子程序aSUMax;宏展开sumshlax,l;乘2movbx,segobfmoves,bxmovdi,offsetobf+1callb;调川子程序bcallHH;调用子程序HHmovdx,offsetobfmovah,9int21hst

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

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

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