4-4循环程序设计.ppt

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

微型计算机原理及应用 第4章 汇编语言程序设计 例3 将BX中的16进制数转换为ASCII码,存放到BUF开始的内存单元中,并在屏幕上显示出数值。 数字0—9对应的ASCII码为30H---39H(加30H) 数字A—F对应的ASCII码为41H---46H (加37H)   循环程序结构 例[4] ※统计AX寄存器中1的个数,结果放到CL寄存器中。 MOV CL,0 ;将来放1的个数 L1: AND AX,AX ;AX不变,但影响ZF标志位 JZ STOP ;如果AX=0那么下面的程序就不必要了 SAL AX,1 ;算术左移,将最低位送入CF JNC L2 ;检验CF的值是1还是0? INC CL L2: JMP L1 STOP:MOV AH,4CH INT 21H   循环程序结构 参考程序(2) MOV CH,16 MOV CL,0 L1: SAL AX,1 JNC L2 INC CL L2: DEC CH JNZ L1 STOP:MOV AH,4CH INT 21H 先判断,后执行 子程序设计——参数传递方法 利用寄存器:主程序把给子程序的参数直接放在的约定的寄存器,子程序从中取参数;子程序处理结果也放在约定寄存器中。 利用存储单元:这种参数传递方法,把所需传递的参数直接放在子程序调用指令代码之后。 利用堆栈:这种方法将参数压入堆栈,在子程序运行时从堆栈中取参数。返回主程序后主程序从堆栈中取结果。 【例1】 两个6字节数相加。 分析:将一个字节相加的程序段设计为子程序。主程序分3次调用该子程序,但每次调用的参数不同。 DATA SEGMENT ADD1 DB FEH,86H,7CH,35H,68H,77H ADD2 DB 45H,BCH,7DH,6AH,87H,90H SUM DB 6DUP(0) COUNT DB 6 DATA ENDS STACK SEGMENT DB 100DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MADD: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV SI,OFFSET ADD1 MOV DI,OFFSET ADD2 MOV BX,OFFSET SUM MOV CX,COUNT ;循环初值为6 CLC AGAIN: CALL SUBADD ;调用子程序 LOOP AGAIN ;循环调用6次 MOV AX,4C00H INT 21H 子程序入口参数:SI,DI,BX 出口参数:SI,DI,BX SUBADD PROC ;完成一个字节相加 PUSH AX ;保护AX的值 MOV AL,[SI] ;SI是一个源操作数指针 ADC AL,[DI] ;DI是另一个源操作数指针 MOV [BX],AL ;BX是结果操作数指针 INC SI INC DI INC BX POP AX ;恢复AX的值 RET SUBADD ENDP CODE ENDS END MADD 4.4.5 子程序设计 [例4-18]当I/O状态端口0378H的Bit1为0时,表示外设忙;为1则表示外设可以接收数据。现将当前数据段中从BUFFER开始的连续100个字节的内容从I/O数据端口03F8H输出到外设。 4.5 常见程序设计举例 作业 [例4-21]两个多字节二进制数求和。 DATA SEGMENT BUFF1 DB 4FH,0B6H,7CH,34H,56H,1FH BUFF2 DB 13H,24H,57H,68H,FDH,9AH SUM DB 6 DUP(?) CONT DB 3 DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF1 MOV DI,

文档评论(0)

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

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

1亿VIP精品文档

相关文档