华中科技大学:《大学计算机基础》课程教学资源(课件讲稿)第五章 程序设计的其它方法与技术

第五章 程序设计的其它方法与技术 一、本章的学习内容: 本章学习汇编语言的高级程序设计技术: (1)串操作指令的使用格式及功能; (2)宏指令的定义与调用方式; (3)模块程序设计方法及连接技术。 通过本章的学习,能提高编程的效率和质量, 简化程序设计的工作,这是汇编语言中最具特色 的部分
第五章 程序设计的其它方法与技术 一、本章的学习内容: 本章学习汇编语言的高级程序设计技术: (1)串操作指令的使用格式及功能; (2)宏指令的定义与调用方式; (3)模块程序设计方法及连接技术。 通过本章的学习,能提高编程的效率和质量, 简化程序设计的工作,这是汇编语言中最具特色 的部分

第五章 程序设计的其它方法与技术 二、本章的学习重点: (1)串操作指令MOVS、CMPS、SCAS的 使用格式及功能; (2)简单宏指令的定义与调用方式; (3)模块程序设计的方法
第五章 程序设计的其它方法与技术 二、本章的学习重点: (1)串操作指令MOVS、CMPS、SCAS的 使用格式及功能; (2)简单宏指令的定义与调用方式; (3)模块程序设计的方法

第五章 程序设计的其它方法与技术 三、本章学习的难点: (1)MOVS与MOV、CMPS与CMP功能上 的差别及串操作指令的正确使用方法; (2)宏指令的定义与调用方式 (3)模块之间的组合、定位及通信方式; (4)模块化程序设计技术
第五章 程序设计的其它方法与技术 三、本章学习的难点: (1)MOVS与MOV、CMPS与CMP功能上 的差别及串操作指令的正确使用方法; (2)宏指令的定义与调用方式; (3)模块之间的组合、定位及通信方式; (4)模块化程序设计技术

第五章 程序设计的其它方法与技术 5.1字符串操作指令 5.2宏功能程序设计
第五章 程序设计的其它方法与技术 5.1 字符串操作指令 5.2 宏功能程序设计

5.1字特串操作指令 華中科技大? (1)串传送指令 MOVS (2)串比较指令 CMPS (3)串搜索指令 SCAS (4)取字节/字/双字串指令LODS (5)存储字节/字/双字指令STOS (6)总结
5.1 字符串操作指令 (1) 串传送指令 MOVS (2)串比较指令 CMPS (3)串搜索指令 SCAS (4)取字节/字/双字串指令 LODS (5)存储字节/字/双字指令 STOS ( 6 ) 总结

(1)串传送指令MOVS 華中科技大学 MOVSW )字串传送 ●格式:MOVS OPD,OPS或 MOVSB 字节串传送 MOVSD 双字串传送 ●功能:(I)(DS:[SI]/[ESI])→ES:[DI]/[EDI] (2)修改串指针,使之指向下一元素。修改方式为: i.当DF=0时,(SI)/(ESI)增量1(字节操作)或2(字操作) 或4(双字操作) ⅱ.当DF=1时,(SI)/(ESI)减量1(字节操作)或2(字操作) 或4(双字操作) 说明:(1) 该指令可带的重复前缀为:REP 即当(CX/ECX)≠0时连续传送,直至(CX/ECX)=0。 (2) 源串应在当前数据段,指针为SI/ESI;目的串应在 当前附加数据段指针为DI/BDI
(1) 串传送指令 MOVS ●格式:MOVS OPD,OPS 或 ●功能:(1) (DS:[SI]/[ESI]) → ES:[DI]/[EDI] (2) 修改串指针,使之指向下一元素。修改方式为: ⅰ.当DF=0时,(SI)/(ESI)增量1(字节操作)或2(字操作) 或4(双字操作) ⅱ.当DF=1时,(SI)/(ESI)减量1(字节操作)或2(字操作) 或4(双字操作) 说明:(1) 该指令可带的重复前缀为:REP 即当(CX/ECX)≠0时连续传送,直至(CX/ECX)=0。 (2) 源串应在当前数据段,指针为SI/ESI;目的串应在 当前附加数据段指针为DI/EDI。 MOVSD 双字串传送 MOVSB 字节串传送 MOVSW 字串传送

(1)串传送指令MOVS 華中科技大? 例1:将以STR1为首址的字节存储区中存放的字符串传送到以 STR2为首址的字节存储区中。 .386 DATA SEGMENT USE16 STR1 DB ABCDEFGHIJKLM …’;输出缓冲区BUF1 COUNT EQU $-BUF1 ; BUF1中的字符个数 STR2 DB COUNT DUP (0) ;输入缓冲区BUF2 DATA ENDS STACK SEGMENT USE16 STACK DB 200 DUP (O) STACK ENDS CODE SEGMENT USE16 ASSSUME DS:DATA,ES:DATA.CS:CODE,SS:SATCK
(1) 串传送指令 MOVS 例1:将以STR1为首址的字节存储区中存放的字符串传送到以 STR2为首址的字节存储区中。 .386 DATA SEGMENT USE16 STR1 DB 'ABCDEFGHIJKLM ……' ;输出缓冲区BUF1 COUNT EQU $-BUF1 ;BUF1中的字符个数 STR2 DB COUNT DUP(O) ;输入缓冲区BUF2 DATA ENDS STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT USE16 ASSSUME DS:DATA,ES:DATA,CS:CODE,SS:SATCK

(1)串传送指令MOVS 華中科技大浮 反向操作的源程序: START:MOV AX, DATA STD MOV DS, AX LEA SI,BUF1+COUNT-1 MOV ES, AX LEA DI,BUF2+COUNT-1 LEA SI, STR1 MOV CX,COUNT LEA DI, STR2 REP MOVSB MOV CX, COUNT "REP MOVE"语句代替了以下程序段 CLD P:MOV AL,[SI] MOV [DI],AL REP MOVSB DEC SI MOV AH, 4CH DEC DI INT 21H CX LOOP P CODE ENDS 16 由于DF=O为默认状态,故须使用STD END START 指令设置DF=1,才能反向操作
START:MOV AX,DATA MOV DS,AX ;当前数据段和当前附加数据段重合 MOV ES,AX LEA SI,STR1 ;源串首址送SI LEA DI, STR2 ;目的串首址送DI MOV CX,COUNT ;串长度送CX CLD ;将DF清0 REP MOVSB ;重复传送直至CX=0 MOV AH,4CH INT 21H CODE ENDS END START (1) 串传送指令 MOVS 16 CX 数据段 BUF1 BUF2 A B C D E F G H I J K L M A B C D E F G H I J K L M “ REP MOVSB”语句代替了以下程 序段: P: MOV AL, [SI] MOV [DI], AL INC SI INC DI LOOP P 由于每个汇编源程序的开始时, DF=0 为默认状态,一次不用专门使用CLD指 令。 反向操作的源程序: STD LEA SI,BUF1+COUNT-1 LEA DI,BUF2+COUNT-1 MOV CX,COUNT REP MOVSB "REP MOVE"语句代替了以下程序段 P: MOV AL, [SI] MOV [DI],AL DEC SI DEC DI LOOP P 由于DF=0为默认状态,故须使用STD 指令设置DF=1,才能反向操作

(2)串比较指令 ·CMPS 華中科技大浮 CMPSW 字串比较 格式:CMPS 0PD,OPS或 oCMPSB 字节串比较 CMPSD 双字串比较 ·功能: (1) (DS:[SI]/[ESI])一(ES:[DI]/[EDI]),即将SI/ESI所指的源串中的 一个字节(或字、双字)中的数与DI、DI所指的目的串中的一个字节 (或字、双字)中的据相减,并根据相减的结果设置标志位,结果并不 保存。 (2) 修改串指针,使之指向串中的下一个元素。修改方式为: i.当DF=0时,(SI)/(ESI)和(DI)/(EDI)增量1(字节操作)或2(字操 作)或4(双字操作)。 ii.当DF=1时,(SI)/(ESI)和(DI)/(EDI)减量1(字节操作)或2(字操 作)或4(双字操作)
(2)串比较指令 CMPS ●格式:CMPS OPD,OPS 或 ●功能: ⑴ (DS:[SI]/[ESI]) —(ES:[DI]/[EDI]),即将SI/ESI所指的源串中的 一个字节(或字、双字)中的数与DI、EDI所指的目的串中的一个字节 (或字、双字)中的据相减,并根据相减的结果设置标志位,结果并不 保存。 ⑵ 修改串指针,使之指向串中的下一个元素。修改方式为: i. 当DF=0时,(SI)/(ESI)和(DI)/(EDI)增量1(字节操作)或2(字操 作)或4(双字操作)。 ii. 当DF=1时,(SI)/(ESI)和(DI)/(EDI) 减量1(字节操作)或2(字操 作) 或4(双字操作)。 CMPSB 字节串比较 CMPSW 字串比较 CMPSD 双字串比较

(2)串比较指令 CMPS 華中科技大? 说明:(1)源串放在当前数据段中,指针为SI/E$I;目的串放在 当前附加数据段中,指针为DI/EDI; (2)该指令可带的重复前缀为: a.REPE/REPZ 当(CX/ECX)≠0时,如两串对应字符 相等继续比较,不相等跳出循环; b.REPNE/REPNZ当(CX/ECX)≠O时,如两串对应字符 相等继续比较,不相等跳出循环; 例2
(2)串比较指令 CMPS 说明: ⑴ 源串放在当前数据段中,指针为SI/ESI;目的串放在 当前附加数据段中,指针为DI/EDI; ⑵ 该指令可带的重复前缀为: a.REPE/REPZ 当(CX/ECX)≠0时,如两串对应字符 相等继续比较,不相等跳出循环; b.REPNE/REPNZ 当(CX/ECX)≠0时,如两串对应字符 相等继续比较,不相等跳出循环; 例 2
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第10章 子定型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第9章 类型推断.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第8章 依赖类型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第7章 多态性.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第6章 递归类型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第5章 命令式程序的语义.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第4章 类型化λ演算的模型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第3章 简单类型化λ演算.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第2章 泛代数和代数数据类型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第1章 引言(主讲:陈意云).ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(参考教材)第6章 递归类型.pdf
- 中国科学技术大学:《程序设计语言理论》课程教学资源(参考教材)第2章 泛代数和代数数据类型.pdf
- 中国科学技术大学:《程序设计语言理论》课程教学资源(参考教材)第1章 引言.pdf
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 04 Decision-Procedure Based Theorem Provers Tactic-Based Theorem Proving Inferring Loop Invariants.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 03 Theorem Proving for FOL Satisfiability Procedures.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 02 Finish Verification Condition Generation Simple Prover for FOL.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 01 Theorem Proving.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 Program verification.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第6章 模型检测.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第5章 类型和效果系统(补充).ppt
- 复旦大学:《C语言程序设计》课程教学资源(课件讲稿)指针.ppt
- 复旦大学:《C语言程序设计》课程教学资源(课件讲稿)第1章 程序设计和C语言.pdf
- 北京中医药大学:《计算机基础》课程教学资源(教学大纲,Ⅰ,主讲:黄友良).doc
- 北京中医药大学:《计算机基础》课程教学资源(电子教材)第一章 数据库基础知识.doc
- 北京中医药大学:《计算机基础》课程教学资源(电子教材)第二章 数据库和表.doc
- 北京中医药大学:《计算机基础》课程教学资源(电子教材)第五章 关系数据库标准语言——SQL.doc
- 北京中医药大学:《计算机基础》课程教学资源(电子教材)第三章 查询.doc
- 北京中医药大学:《计算机基础》课程教学资源(教案,主讲:黄友良).docx
- 北京中医药大学:《计算机基础》课程PPT教学课件(Access 数据库程序设计)第1章 数据库基础知识.ppt
- 北京中医药大学:《计算机基础》课程PPT教学课件(Access 数据库程序设计)第2章 数据库和表.ppt
- 北京中医药大学:《计算机基础》课程PPT教学课件(Access 数据库程序设计)第3章 查询.ppt
- 北京中医药大学:《计算机基础》课程教学资源(试卷习题)全国计算机等级考试二级笔试试卷——Access 数据库程序设计.docx
- 北京中医药大学:《计算机基础》课程教学资源(试卷习题)全国计算机等级考试二级笔试试卷——Access 数据库程序设计.docx
- 北京中医药大学:《计算机基础》课程教学资源(试卷习题)全国计算机等级考试二级笔试试卷——Access 数据库程序设计.docx
- 北京中医药大学:《计算机基础》课程教学资源(试卷习题)全国计算机等级考试二级笔试试卷——Access 数据库程序设计.docx
- 北京中医药大学:《计算机基础》课程教学资源(试卷习题)2008年9月计算机等级考试二级(ACCESS真题试卷及答案).docx
- 北京中医药大学:《计算机基础》课程教学资源(试卷习题)2009年9月全国计算机等级考试二级笔试试卷——Access 数据库程序设计(含答案).docx
- 北京中医药大学:《计算机基础》课程教学资源(电子教材)《Access 数据库程序设计》第4章 窗体.doc
- 北京中医药大学:《计算机基础》课程教学资源(电子教材)《Access 数据库程序设计》第5章 报表.doc
- 北京中医药大学:《计算机基础》课程教学资源(教学大纲,Ⅱ).doc