- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.3.2.1 加法指令 ADD ADC INC XADD * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3)REPNZ 当不相等或不为零时重复串指令 CX≠0且ZF=0 该指令一般用在CMPS、SCAS 指令前。 功能:每执行一次串指令(CX)-1,并判断ZF标志是否为0,只要(CX)=0或ZF=1,则重复执行结束。 1.CX=0或ZF=1指令执行完毕,CX≠0且ZF=0往下执行 2.CX-1 →CX 3.执行其后的串指令 4.重复1~3 串指令执行流程 S1、对 DS、SI、ES、DI 赋值(DS和ES可隐含)SI存放源串的有效地址,DI 存放目的串的有效地址 这类指令都是用SI对源操作数进行间接寻址并在DS段,用DI对目的操作数进行间接寻址并在ES段。 S2、将字串长度送 CX(计数值) S3、设置方向标志DF的值:若SI、DI是起始地址,使DF = 0(CLD),地址+1/2修改,若SI、DI是末地址,使DF = 1 (STD),地址-1/2修改。 已知串的首地址,要传送串的后几位,则需要计算串的末地址,公式为:首地址+(串的长度-1)*1(2). SI DI 都要存放串的末地址 STD 指令将DF=1 CX存放要传送的长度 S4、加重复前缀时(此时用作重复计数器的一定是CX,指令执行的顺序是: (1)先判断 CX = 0 ?CX = 0 退出,CX = 0,CX - 1 (2)执行字串指令 (3)修改SI、DI 的内容 (4)回到(1) S5、注意:对串装入LODS、串存储STOS、串扫描SCAS指令,另一个隐含的操作数一定是AL/AX/EAX; h h e l l o ! 数据段 附加段 coname prn DI SI h DI SI +1 e e l l o ! DI SI cx 0 例 假设数据定义如下: CONAME DB ‘SPACE EXPLORERS INC.’ PRLINE DB 20 DUP(‘’) 用串指令编写程序段分别完成以下功能: (1)从左到右把CONAME中的字符串传送到PRLINE中(2)从右到左把CONAME中的字符串传送到PRLINE中(3)把CONAME中的第3个和第4个字节装入AX (4)把AX的内容存入从PRLINE+5开始的字节中 (5)检查CONAME字符串中有无空格字符,如果有则把它传送给BH (6)检查字符串CONAM和EPRLINE是否相同 MOV SI,OFFSET CONAME LEA DI,PRLINE MOV CX,20 CLD REP MOVSB MOV SI,OFFSET CONAME LEA DI,PRLINE ADD SI,19 ADD DI,19 MOV CX,20 STD REP MOVSB MOV SI, OFFSET CONAME ADD SI,2 LODSW MOV AL,40H LEA DI,PRLINE ADD DI,5 MOV CX,7 CLD REP STOSB MOV AL,20H LEA DI, CONAME MOV CX,20 CLD REPNZ SCASB JCXZ EMP MOV BH,DI EMP…… MOV SI,OFFSET CONAME MOV DI,OFFSET PRLINE MOV CX,20 CLD REPZ CMPSB JCXZ MATCH : MATCH : 3.3.5 控制转移类指令 3.3.5.1 条件转移指令 3.3.5.2 无条件转移指令 3.3.5.3 循环指令 3.3.5.4 子程序调用指令 3.3.5.5 中断指令 3.3.5.1 条件转移指令 1.简单条件转移指令 2.无符号数条件转移指令 3. 有符号数条件转移指令 它们都有通用的语句格式和功能。 功能:如果条件满足,则(IP)+位移量→IP。 1.简单条件转移指令 指令 转移条件 功能 JZ/JE ZF=1 结果为零(相等)则转移 JNZ/JNE ZF=0 结果不为零(不相等)则转移 JS SF=1 结果为负则转移 JNS SF=0 结果为正则转移 JO
文档评论(0)