第5章汇编语言程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(3)根据流程图编写汇编语言程序 ADATA SEGMENT BASE DW PA,PB,PC,PD KEY DB ? ADATA ENDS ASTACK SEGMENT PARA STACK ‘STACK’ DW 100 DUP(?) TOP LABEL WORD ASTACK ENDS ACODE SEGMENT ASSUME CS:ACODE,DS:ADATA,SS:ASTACK START:MOV AX,ASTACK MOV SS,AX MOV SP, OFFSET TOP MOV AX, ADATA MOV DS, AX LOP: MOV AH,1 INT 21H CMP AL,41H JB LOP CMP AL,44H JA LOP SUB AL,41H MOV BX,OFFSET BASE MOV AH,0 ADD AL,AL ADD BX,AX JMP WORD PTR[BX] ACODE ENDS END START 三、循环结构程序设计 1. 循环程序的组成 循环程序是在满足某些条件时对一段程序的重复执行,一般由四部分组成。 2. 基本结构形式 (1) 先执行后判断(do—while) 至少进入一次循环体。常用于循环次数已知时。 (2) 先判断后执行 循环体可一次都不执行。常用于循环次数未知,根据具体情况找出控制循环体结束的条件时常用。 例:P173 统计字节数据块:-1,-3,5,6,9,…中负元素的个数。 数据段定义如下: DATA SEGMENT BUF DB -1,-3,5,6,9,… ;定义若干字节带符号数 CUNT EQU $-BUF ;计算数据块长度 RESULT DW ? ;定义存放结果单元 DATA ENDS (1) 先执行后判断(do—while) DATA SEGMENT BUF DB -1,-3,5,6,9,… ;定义若干字节带符号数 CUNT EQU $-BUF ;计算数据块长度 RESULT DW ? ;定义存放结果单元 DATA ENDS 对应的代码段程序: MOV BX,OFFSET BUF ;建立数据指针 MOV CX,CUNT ;设置循环次数 MOV DX,0 ;置结果初值 LP1: MOV AL,[BX] ;取数据 AND AL,AL JNS PLUS ;是正数,转去PLUS INC DX ;是负数,负数个数+1 PLUS: INC BX ;调整数据指针 LOOP LP1 ;(CX-1)≠0,继续循环 MOV RESULT,DX ;存入负数个数 例:P173 例5-6 AX寄存器中有一个16位的二进制数,编程统 计其中1的个数,结果存放在CX寄存器中。 控制循环体的条件是:当AX内容为全0,不必再继续统计。 (2) 先判断后执行 循环体可一次都不执行。在循环次数未知,需根据具体情况找出控制循环体结束的条件时常用。 程序如下: MOV CX,0 ;置结果计数器初值 LP: AND AX,AX ;AX=0否 JZ EXIT ;是,退出循环 SAL AX,1 ;否,AX的最高位移至CF中 JNC ZERO ;C

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档