汇编语言第五章 程序设计其它方法与技术.docVIP

  • 1
  • 0
  • 约4.31万字
  • 约 24页
  • 2017-08-05 发布于河南
  • 举报

汇编语言第五章 程序设计其它方法与技术.doc

汇编语言第五章 程序设计其它方法与技术

程序设计的其它方法和技术 本章内容: 串处理 宏指令 模块化程序设计。 字符串操作 串:存贮区连续存放的一组字节或字组成的数据。可以是字符、数字等。 串的基本操作:传送MOVS、搜索SCAS、比较CMPS、存贮STOS、取LODS。 目的:简化编程。 使用串指令的初始条件: 源操作数用DS:[SI]寻址; 目的操作数用ES:[DI]寻址; 传送、搜索、存贮、取串的方向由DF标志决定; CLD指令:清方向标志,DF=0,使SI、DI增量修改; STD指令:置方向标志,DF=1,使SI、DI减量修改。 串指令前面可使用重复操作前缀。 重复前缀: REP无条件重复。执行操作: 如(CX)=0则退出REP,否则往下执行。 (CX)–1→CX。 执行其后的串指令(MOVS、LODS、STOS)。 重复①~③。 REPE / REPZ比较相等或为0时重复,执行操作: 如(CX)=0或ZF=0(即某次比较的结果两操作数不等),则退出,否则往下执行。 (CX)–1→CX。 执行其后的串指令(CMPS、SCAS)。 重复①~③。 REPNE / REPNZ当不相等或不为0时重复,执行操作: (CX)=0或ZF=1(即某次比较的结果两操作数相等),则退出,否则往下执行。 (CX)–1→CX。 执行其后的串指令(CMPS、SCAS)。 重复①~③。 串传送指令 格式:MOVS OPD, OPS MOVSB; 字节串传送 MOVSW; 字串传送 功能:DS:[SI] → ES:[DI]。 当DF=0时,SI+1(或2)→SI,DI+1(或2)→DI; 当DF=1时,SI–1(或2)→SI,DI–1(或2)→DI。 例:将以STR1为首址的字节存贮区中存放的字符串送到STR2为首址的字节存贮区中。 DATA SEGMENTSTR1 DB DATA SEGMENT STR1 DB ‘ABCD’ CON EQU $–STR1 STR2 DB CON DUP(0) DATA ENDS ; CODE SEGMENT ASSUME DS:DATA, CS: CODE, ES:DATA START: MOV AX, DATA MOV DS, AX MOV ES, AX LEA SI, STR1 LEA DI, STR2 MOV CX, CON CLD REP MOVSB MOV AH, 4CH INT 21H CODE ENDS END START 语句:REP MOVSB 语句:REP MOVSB可写为: L1: MOV AX, STR1[SI] MOV STR2[DI], AX INC SI INC DI DEC CX JNZ L1 串比较指令 格式:CMP OPD, OPS CMPSB; 字节串比较 CMPSW; 字串比较 功能:([SI])―([DI])影响标志位。 当DF=0时,SI+1(或2)→SI,DI+1(或2)→DI; 当DF=1时,SI–1(或2)→SI,DI–1(或2)→DI。 例:从键盘输入一字符串STR1,比较STR1和STR2是否相等。如果相等,则将0→BX,否则将FFFFH→BX。 DATA SEGMENTSTR1 DB 80 DATA SEGMENT STR1 DB 80 DB 0 DB 80 DUP(0) STR2 DB ‘STRING’ CON EQU $–STR2 DATA ENDS ; CODE SEGMENT ASSUME DS:DATA, ES:DATA, CS:CODE START: MOV AX, DATA MOV DS, AX MOV ES, AX LEA DX, STR1 MOV AH, 10 INT 21H MOV AL, STR1+1; 比较数组长度 CMP AL, CON JNE EXIT LEA SI, STR1+2 LEA DI, STR2 MOV CX, CON CLD REPZ CMPSB; 逐个比较是否相等 JNE EXIT; 不等,转EXIT MOV BX, 0 JMP L1 EXIT: MOV BX, 0FFFFH L1: MOV AH, 4CH INT 21H CODE ENDS END START 注意: REPZ CMPSB JNE EXIT 其中:JNE判断的不是CX–1的情况,而是([SI])―([DI])的情况。 串搜索指令 格式:SCAS OPD SCASB; 字节 SCASW; 字串 功能: AL(字节)或AX(字)-([DI])结果不回送,影响标志位。 当DF=0时,DI+1(或2)→DI; 当DF=1时,D

文档评论(0)

1亿VIP精品文档

相关文档