- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
思考题: 下面的代码段完成什么功能? MOV cx,20 LAST:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI DEC CX JNZ LAST 第五章 汇编语言程序设计第一节 循环结构程序设计 一、循环结构程序概述 在程序中,凡能有规则重复执行的程序段称作循环。 包含循环程序段的程序称为循环结构程序。 1、循环程序的组成 . . . 2、循环程序的结构形式: 二、循环程序设计方法(95页)1.循环指令 (2)求1~N自然数的和,结果存在RESULT单元。 程序如下: MOV AX, 0 MOV CX, N DONE:ADD AX,CX LOOP DONE ;和它等价的指令是? MOV [RESULT],AX (2)在一首址为ARRAY1长度为20的字符串查找字符“*”,如果找到,则将结果单元RESULT清0,否则结果单元为全1。 LEA SI, ARRAY1 DEC SI ;为后面循环从第1个字符作准备. MOV [RESULT],0FFH ;先假设没找到,送全1 MOV CX,20 MOV AL,’*’ ;*的ASCII为42D=2AH DONE:INC SI CMP AL,[SI] ;与第一个字符比较 LOOPNE DONE ;不相等且CX0,ZF=0继续循环 Jcxz END1 ;退出循环时CX为0 或没找到 MOV [RESULT],0 ;找到 END1: HLT 2 串操作指令(75页) 包括串传送、存取、比较、扫描等操作. 利用串操作指令可以直接处理两个存储器操作数,方便地处理字符串或数据块。 串指令的特点 (1).指令格式 串指令可以显式地带有操作数,也可以使用隐含格式。例如串传送指令MOVS,可以有以下几种格式: 显式:MOVS DST,SRC 隐式:MOVSB ;字节传送 MOVSW ;字传送 MOVSD ;双字传送 (2).操作数 串指令可以处理寄存器操作数和存储器操作数。若为寄存器操作数则只能放在累加器中,对于字节操作数应放在AL中,字操作数放在AX中。对于存储器操作数应先建立地址指针: 若为源操作数,则必须把源串首地址放入SI寄存器,缺省情况寻址DS所指向的段。 若为目标操作数,则必须把目标串首地址放入ES:DI寄存器,不允许使用段超越前缀。 (3).地址指针的修改 串指令执行后系统自动修改地址指针SI、DI。若为字节型操作其修改量为1,若为字型操作其修改量为2。 (4).方向标志 方向标志DF决定地址指针的增减方向。若DF=0,则地址指针增量;若DF=1,则地址指针减量。 (5).重复前缀 串指令前可以加重复前缀REPE/REPZ、 REP或REPNE/REPNZ,使后跟的串指令重复执行。 重复次数应事先初始化在计数器CX。 二、串指令 1.串传送指令 MOVS(76页) 显式格式:MOVS DST,SRC 隐含格式:MOVSB MOVSW MOVSD 功能:源→目标,即([SI])→ES:[DI],且自动修改SI、DI指针。 标志:不影响标志位。 前面的例子中语句 REP MOVSB和它等价的程序段是什么? LAST:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP LAST 2.取串指令 LODS 显式格式:LODS SRC 隐含格式:LODSB LODSW LODSD 功能:源→累加器,即([SI]) →AL(或AX、EAX),且自动修改SI指针。 说明:若DF=0,则LODSB(或LODSW)使SI加1(或2);若DF=1,则LODSB(或LODSW)使SI减1(或2)。 标志:不影响标志位。 3.存串
文档评论(0)