网站大量收购独家精品文档,联系QQ:2885784924

04-2程序设计课件.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04-2程序设计课件

4.6 MSM宏汇编语言程序设计;汇编语言程序设计的过程通常都包括以下步骤:;1. 顺序程序 2. 分支程序 3. 循环程序 4. 子程序;4.6.1 顺序程序;例1. 试编制一程序,计算下列公式的值,并存放在FUN存贮单元中。;DATA SEGMENT VARX DW 123H VARY DW 456H VARZ DW 789H FUN DW ? DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP (0) STACK1 ENDS COXEG SEGMENT ASSUMZ CS: COSEG, DS: DATA, SS: STACK1;START: MOV AX,DATA MOV DS,AX MOV AX,VARX ADD AX,VARY ;AX ? x + y MOV BX,AX SAL AX,1 ;?2 SAL AX,1 ;?4 ADD AX,BX ;AX ? 5?(x+y) SAL AX,1 ;AX ? 10?(x+y) MOV BX,VARZ DEC BX ;Z–1 MOV CX,BX SAL BX,1 ;2(Z–1) ADD BX,CX ;3(Z–1) SUB AX,BX SAR AX,1 MOV FUN,AX MOV FUN,AX MOV AH,4CH ;返回DOS 1NT 21H COSEG ENDS END START;;例2 求AX和BX中两个无符号数之差的绝对值,结果放在ANS中。;1. 循环程序一般由下列4部分组成:;初始化部分;初始化部分; ? MOV CX,0 LOP: AND AX,AX JZ STP SAL AX,1 JNC MOD INC CX MOD: JMP LOP STP: ?;1. 子程序说明部分:要求语言简明、确切;例:今有一子程序说明如下:;2.子程序本身常以过程形式存放在代码段中,常以一个标号开始,以返回指令结束。如:;3. 信息的保护;4. 参数的传递;参数传递的方法一般有三种:;5.子程序设计举例;解:减奇数法求平方根:因为N个1开始的连续自然数的奇数之和等于N2,即;在本题中,可将开平方的运算作为一 个子程序,入口参数为被开方数,通过AX传送给子程序,待子程序结束时,平方根在CL中(出口参数)。;SQR-PROC;DATA SEGMENT DA1 DW 1234H, 5678H, 3456H, 0A53H COUNT EQU ($ – DA1) / 2 DFG DB COUNT DUP (0) DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP (0) STACK1 ENDS COSEG SEGMENT ASSUME CS: COSEG, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX, COUNT MOV SI, OFFSET DA1 MOV DI, OFFSET PFG;LOP: MOV AX, [SI] PUSH CX CALL SQR - PROC MOV [DI], CL POP CX ADD SI, 2 INC DI LOOP LOP MOV AH, 4CH INT 21H SQR-PROC PROC MOV CL, 0 MOV DX, 1 SQR: SUB AX, DX JB EXIT INC CL ADD DX, 2 JMP SQR EXIT: RET SQR-PROC ENDP COSEG ENDS END START;(2). 利用堆栈传递参数;MAIN SEGMENT ASSUMF CS: MAIN, DS: DATA, SS: STACK1 STR: MOV AX, DATA MOV DS, AX MOV AX, SIZE ARY1 PUSH AX ;SUM过程的入口参数1进栈 MOV AX, OFFSET ARY1 PUSH AX ;SUM过程的入口参数2进栈 CALL SUM ? MOV AX,SIZE ARY2 PUSH AX MOV AX,OFFSET ARY2 PUSH AX CALL SUM ? MOV AH, 4CH INT 21H MAIN ENDS PROCE SEGMENT ASSUME CS: PROCE,

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档