- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
04-2程序设计
;主程序段 MAIN MOV AX, 3 CALL FACT XI: MOV BX, DX HLT ;阶乘子程序 ;入口参数:AL中存放n ;出口参数:DX中存放n! ;所用Reg:CX ? ? FACT PROC CMP AL, 0 JNE IIA MOV DL, 1 IIA: PUSH AX DEC AL CALL FACT ;递归调用 X2: POP CX CALL MULT ;嵌套 X3: MOV DX, AX RET FACT ENDP RET ; 无符号字节数乘法子程序 ; 入口参数:CL,DL中各为一乘数 ; 出口参数:AX中为乘积 MULT PROC MOV AL, CL MUL DL RET MULT ENDP 本程序调用过程示意图如下: MAIN … AL=3 CALL FACT X1: BX=DX=6 FACT … PUSH 3 AL=2 CALL FACT X2: CX=3 CALL MULT X3: DX=AX=6 MULT AX=3×2=6 FACT … PUSH 2 AL=1 CALL FACT X2: CX=2 CALL MULT X3: DX=AX=2 MULT AX=2×1=2 FACT … PUSH 1 AL=0 CALL FACT X2: CX=1 CALL MULT X3: DX=AX=1 MULT AX=1×1=1 FACT … DL=1 RET 汇编语言程序设计的全过程为: 编辑 ––– 汇编 ––– 连接 ––– 调试与运行。如下图: 三、汇编语言上机过程 编辑程序 源程序文件 宏汇编程序 MASM 目标程序文件 语法有错? 可执行文件 链接程序 LINK 调试程序 DEBUG 有错吗? 结束 Y Y N N .ASM .0BJ .LST .EXE .MAP 1. 编辑 ––– 建立源程序 A EDIT ×××. ASM ? A EDIT ABC. ASM ? 2. 汇编 ––– 生成目标程序 宏汇编程序MASM对源程序进行二遍扫描,完成: 检测是否有语法错误。 2) 实现宏功能。 3) 生成目标程序。 3. 链接 ––– 获得可执行文件 例:A) LINK ABC ? IBM personal computer Linker Version 2.00 (C) copyright IBM corp. 1981, 1982, 1983 Run file [ABC. EXE]: ? List file [NUL. MAP]: ABC? Libraries [.LIB] ? 4. 调试与运行 使用调试程序DEBUG 1. 进入与退出 例如要调试上例程序,有两种进入方法: 1) A DEBUG ? – N ABC.EXE ? – L? 2) A DEBUG ABC.EXE ? 如要退出DEBUG,则用退出命令Q,如: – Q ? A * 4.6 MSM宏汇编语言程序设计 程序的基本结构 汇编语言上机过程 汇编语言程序设计的过程通常都包括以下步骤: 1. 分析问题,确定算法 2. 编制程序流程 3. 正确、合理使用存贮器和寄存器 4. 编写程序 5. 调试运行程序 一、基本步骤 1. 顺序程序 2. 分支程序 3. 循环程序 4. 子程序 二、程序的基本结构形式 4.6.1 顺序程序 特点: 程序从运行开始到结尾一直是按顺序逐条执行指令,且每条指令只执行一次。 初始化部分 工作部分1 工作部分n 结束处理部分 … 顺序结构图 例1. 试编制一程序,计算下列公式的值,并存放在FUN存贮单元中。 其中x, y, z的值分别存放在VARX、VARY、VARZ 三个字存储单元中,且计算过程的中间值和最后结果仍在16位二进制的范围中。 DATA SEGMENT VARX DW 123H VARY DW 456H VARZ DW 789H FUN DW ?DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP (0)STACK1 ENDSCOXEG SEGMENT ASSUMZ CS: COSEG, DS: DATA, SS: STACK1 START: MOV AX,DATA MOV DS,AX MOV AX,VARX ADD AX,VARY ;A
您可能关注的文档
- ibm_汇编 第4章.ppt
- MASM电子教案第4章.ppt
- 微机原理与系统设计第4章.ppt
- Centos6.2下搭建web环境详细过程.doc
- linux2.6.36.1(兼容linux2.6.35各子版本)移植到mini2440-v2.0.doc
- chapter8应用层.ppt
- 第4章 超好的汇编学习教程.ppt
- VS2013-Qt5.5.1-VTK7.0.0-Boost1.6.1-Qhull2015.2-FLANN1.8.4-Eigen3.2.8-OpenNI2.2.0.33-动态编译PCL1.8.0.docx
- IBM—PC汇编语言程序设计(第二版)沈美明——第七章.ppt
- ubuntu10.10下安装ns2.3时出现的问题.docx
文档评论(0)