04第四章 汇编语言程序设计(第二讲).ppt

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

掌握以下几点: 调用子程序用CALL指令,返回调用程序用RET指令。 子程序允许嵌套调用。 进入子程序后首先要保护主程序的运行状态(标志位)和使用的寄存器内容(称为保护现场),退出子程序前要恢复现场。 调用前要预先确定子程序中要使用哪些寄存器,并定义入口参数和出口参数。参数传递可利用寄存器、存储单元或堆栈(要用BP寻址)。 4.4.5 子程序设计举例 例: 二进制数(0-F)转换成ASCII(‘0’-‘F’)的子程序。 BIN2ASC PROC ;要转换的数在AL的低四位 ;转换结果仍在AL中 CMP AL, 9 JA A2F ADD AL, 30H JMP DONE A2F: ADD AL, 37H DONE: RET BIN2ASC ENDP 调用方法:(在主程序中) … MOV AL, 0CH CALL BIN2ASC (AL中有0CH的ASCII码43H, ’C’) 例2. 字符串处理程序设计 对字符串进行操作时,往往需要确定它的长度。通常字符串结束标志以CR或$作标志。所以可以用扫描CR或$的方法计算出串长。 在计算串长时,应注意串长一般应小于255个字节。 本例主要介绍了: 含有子程序的汇编语言程序结构 字符串的处理——如何计算字符串长度 如何把二进制数转换成ASCII显示在屏幕上 简化的流程图: 开始 求串长 串长256? 显示串长高位 显示串长低位 结束 Y 警告: 太长 求串长 当前字符是‘$’? 搜索CR字符 同时指针增量 返回 N 串长加1 存串长 N 找到? N Y Y 初始化指针/计数器 程序如下: DATA SEGMENT STRING DB ‘This is a string…’,0DH,’$’ LENGTH1 DW ? ;串长度存放在这里 CR DB 0DH MESSAGE DB ’The string is too long!’,0DH,0AH,’$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR BEGIN: MOV AX,DATA MOV ES,AX MOV DS,AX CALL STRLEN ;调用子程序计算串长 MOV DX,LENGTH1 ;结果在DX寄存器中 CMP DX,100H JB NEXT1 ;若(DX)<100H,转 LEA DX,MESSAGE ;若(DX)≥100H, MOV AH,9 INT 21H ;显示信息 JMP NEXT2 NEXT1: MOV DH,DL ;串长暂存在DH中 MOV CL,4 SHR DL,CL ;取串长高4位 CMP DL,9 JBE LP ;≤9,转 ADD DL,7 ;>9,加7 LP: ADD DL,30H ;高4位转换为ASCII码 MOV AH,6 INT 21H ;显示这个ASCII码 MOV DL,DH ;取暂存串长 AND DL,0FH ;取串长低4位 CMP DL,9 JBE LP1 ;≤9,转 ADD DL,7 ;>9,加7 LP1: ADD DL,30H ;低4位转换为ASCII码 MOV AH,6 INT 21H ;显示该ASCII码 MOV DL,’H’ MOV AH,6 INT 21H ;显示’H’ NEXT2: MOV AH,4CH INT 21H ;返回DOS MAIN ENDP ;------- 主程序结束 -------- ; ;-----计算串长的子程序 ----- STRLEN PROC LEA DI,STRING MOV CX,0FFFFH ;(CX)=-1 MOV AL,CR ;(AL)=0D

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档