汇编语言教程分析.ppt

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

标识符 程序举例(续) 程序举例(续) 程序举例(续) 5.2.3 循环程序设计 例:内存DATA开始存放100个单字节数据。编写程序统计这些数据内所有为 “1”的位的个数,将结果存入NUMB单元。 完成此例需要统计每一个字节数据中“1”的个数,可以用右移指令把该数据的各位逐个移到进位标志位CF中,当CF=1,计数器值加1,直到100个数据检查完毕。 2、 教学进程 循环程序的设计方法 5.2.3 循环程序设计 源代码清单: SSEG SEGMENT STACK 开始 STACK DW 100 DUP(0) SSEG ENDS DSEG SEGMENT ASSUME CS:CSEG,DS:DSEG ASSUME SS:SSEG START: MOV AX,DSEG MOV DS,AX MOV AX,SSEG MOV SS,AX MOV SP,SIZE STACK MOV SI,OFFSET DATA MOV CL,100 XOR AL,AL 教学进程 5.2.3 循环程序设计 LOOP2: MOV CH,08H XOR BH,BH MOV AH,[SI] LOOP1:ROR AH,1 JNC CHT1 INC BH CHT1: DEC CH JNZ LOOP1 INC SI DEC CH JNZ LOOP2 MOV DNUMB,BH MOV AH,4CH INT 21H CSEG ENDS END START 教学进程 格式: 过程名 PROC 属性 …… 过程名 ENDP ●过程名为标识符,它又是子程序入口的符号地址,与标号的作用相同。 ●属性(Attribute)是指类型属性,可以是NEAR或FAR。 用户对过程属性的确定原则很简单,即: (1)如果调用程序和过程在同一个代码段中,则使用NEAR属性。 (2)如果调用程序和过程不在同一个代码段中,则使用FAR属性。 一般子程序有五部分组成 : 子程序设计 1.过程定义 教学进程 5.2.4 5.2.4 子程序设计 ●现场——主程序在调用子程序前可能在CPU寄存器和内存中存有一 些有用的数据,这些数据就是调用前的现场, ●现场保护——在子程序的执行过程中很可能会改表这些单元的内容。 因此在子程序开始执行前,把主程序中有用的数据先保 存到堆栈中,这向工作称为现场保护。 ●恢复——为使子程序返回到主程序后,主程序能够在原有环境下继 续执行,必须将现场保护时保存在堆栈中的现场数据重 新恢复。 2. 教学进程 现场的保存与恢复 5.2.4 子程序设计 ● 子程序调用除一般的简单调用外,还可以嵌套调用、递归调用。 ● 在子程序执行完毕后,必须回到调用它的主程序。因此,在每个子程序结束时必须有返回指令,返回指令为RET。 3. 教学进程 子程序的调用和返回 5.2.4 子程序设计 4. 例:十进制到十六进制数转换程序。程序要求从键盘取得一个十进 制数,然后把该数以十六进制形式在屏幕上显示出来。 采用子程序结构,用一个子程序DECIBIN实现从键盘取得十进制数并把它转换为二进制数;另一个子程序BINIHEX把此二进制数以十六进制数的形式在屏幕上显示出来。各个子程序之间用BX寄存器来传送信息。 CSEG  segment   ssume  CSCSEG main   proc far ; 程序的主要部分 START: call   decibin ; 调用子程序decibin      call   crlf ; 调用子程序crlf      call   binihex ; 调用子程序binihex 教学进程 程序举例 call    crlf      jmp    repeat main   endp decibin   proc near ; 子程序decibin      mov bx,0 newchar:mov ah,1      int 21h ; 从键盘接收单个字符

文档评论(0)

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

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

1亿VIP精品文档

相关文档