- 12
- 0
- 约2.78千字
- 约 6页
- 2018-02-19 发布于浙江
- 举报
微机原理实验的--子程序与宏指令
27.编制计算N(N50)个偶数之和(2+4+6+…)的子程序和接收键入N及将结果显示在主程序。子程序代码:stack segment stack stack;定义堆栈段dw 32 dup(?);堆栈段有32字空间stack endsdata segment;定义数据段input db please input N:,$n db 5,0,5 dup(?);定义变量数据区nobfdb 8 dup(?)data endscode segment;定义代码段start proc far ;定义一个过程startassume ss:stack,cs:code,ds:datapush dssub ax,ax;未通过过程DOS返回做准备push axmovax,datamovds,axmovdx,offset inputmov ah,9;9号功能调用,显示器显示“please input N:”int 21hmovdx,offset nmov ah,10;10号功能调用,键盘输入并显示数据nint 21hmovsi,offset n+2mov cl,n+1mov ch,0call a;调用子程序acall sum;调用子程序sumshl ax,1;乘2movbx,segobfmoves,bxmovdi,offset obf+1call b;调用子程序bcall HH;调用子程序HHmovdx,offsetobfmov ah,9int 21hRETstart endpsum proc;定义子程序sum,sum为自然数相加子程序push cx;保护现场push bxmovcx,axmov bx,0movax,bxsm:adc bx,1;把bx,1和CF相加adcax,bx;把ax,bx和CF相加loop smpop bx;恢复现场pop cxRETsum endpa proc;定义子程序a,a为键盘输入的十进制数转化成16进制子程序mov ax,0c0: push cxmov cx,10mul cx;乘法指令调用and byte ptr[si],0fh;十进制的asc码转换成BCD码add al,[si]adc ah,0incsi;越过负号指向数字pop cxloop c0RETa endpb proc;定义过程c,b为16进制转换成asc码push axpush bxpush cxpush dxpush dior ax,ax;判断数的负号jns plus;为正转到plusmov byte ptres:[di],-;为负送负号至输出数据区inc di;求负数的绝对值neg axplus:mov cx,0;将ax中2进制转换成10进制mov bx,10c1:mov dx,0div bxpush dx;余数进栈inc cx;十进制位数加1or ax,ax;商不为0继续除以10jnz c1c2:pop ax;将十进制转换成asc码add al,30hstosbloop c2mov al,$stosbpop dipop dxpop cxpop bxpop axRETb endpHH proc;定义过程HHmov dl,0ah;换行mov ah,2int 21hmov dl,0dh;换行mov ah,2int 21hRETHH endpcode endsend start截图如下:宏指令代码:sum macro A;定义宏sum,sum为自然数相加子程序push cx;保护现场push bxmovcx,Amov bx,0movax,bxsm:adc bx,1;把bx,1和CF相加adcax,bx;把ax,bx和CF相加loop smpop bx;恢复现场pop cxendmstack segment stack stack;定义堆栈段dw 32 dup(?);堆栈段有32字空间stack endsdata segment;定义数据段input db please input N:,$n db 5,0,5 dup(?);定义变量数据区nobfdb 8 dup(?)data endscode segment;定义代码段start proc far ;定义一个过程startassume ss:stack,cs:code,ds:datapush dssub ax,ax;未通过过程DOS返回做准备push axmovax,datamovds,axmovdx,offset inputmov ah,9;9号功能调用,显示器显示“please input N:”int 21hmovdx,offset nmov ah,10;10号功能调用,键盘输入并显示数据nint 21hmovsi,offset n+2mov cl,n+1mov ch,0call a;调用
您可能关注的文档
- 建的筑节能门窗.ppt
- 建筑工程领域分包工程的质量控制的问题研究.doc
- 建筑工程类事业单的位考试必过习题.pdf
- 廉洁风险的防控.ppt
- 建筑物围护结构的传热系数的检测.doc
- 建筑物理学科现的状与发展趋势.pdf
- 建筑消防设施设备知的识培训..ppt
- 建筑的学电脑配置讲座.ppt
- 建筑工程质量通病防的治措施.ppt
- 建设工程基的本法律知识重点.doc
- TCL 家用空调RF-26L N1Y-E2使用说明书.pdf
- IntechOpenIntechOpen 电子技术手册 TFT-LCD Driver IC Design 说明书.pdf
- 功率因数控制器BR7000-1-TH-S485用户手册.pdf
- 3D打印机E3DPElite用户手册.pdf
- 智云数码稳定器SMOOTH-Q5 Ultra说明书用户手册(语言:Türkçe).pdf
- RockwellAutomation罗克韦尔中压变频器 eHIM Operator Interface Terminal 技术数据用户手册说明书.pdf
- Cadence凯德教程OrCAD17.4入门指南.pdf
- Banner Engineering不锈钢激光传感器Q4X入门指南.pdf
- BannerEngineering急停安全模块ES-UA-5A and ES-VA-5A用户手册.pdf
- VPI光子集成电路设计光子集成电路VPIcomponentMaker™用户手册.pdf
最近下载
- 施工现场各类设备机械安全监理实施细则(参考).doc VIP
- 华东交通大学2015-2016第一学期电牵专业《电机与拖动》期末A卷.doc VIP
- 储气罐专业定期检查表.docx VIP
- JB_T 14788-2024《连续延伸带式输送机》.pdf VIP
- GB 265-1988 运动黏度.pdf
- 山东省青岛市胶州市2024-2025学年七年级上学期期末历史试题(含答案).pdf VIP
- 基于概念整合理论研究母语对二语写作的影响-外国语言学及应用语言学专业论文.docx VIP
- 中国旅游地理第四章旅游区划.ppt VIP
- 《陆上风力发电机组钢混塔架施工关键材料技术规程》.pdf VIP
- 2025年AI图像识别服务合同协议合同.docx VIP
原创力文档

文档评论(0)