汇编语言程序设计 第7章非数值运算 非数值主要指的是数之外的数据 包的操作主要是对数据进行处理 如代码转换、字符处理、排序、检 索等。 7.1串操作 7.2表的处理 7.3代码转换
汇编语言 程序设计 第7章 非数值运算 非数值主要指的是数之外的数据, 它的操作主要是对数据进行处理, 如代码转换、字符处理、排序、检 索等。 7.1 串操作 7.2 表的处理 7.3 代码转换
汇编语言程序设计 7.1串操作 8086指令系统中的串操作指令共有以下 5条:串传送指令(M0VS)、串比较指令 (CMPS)、串扫描指令(SCAS)、从源 串取指令(LODS)和存入目的串指令 (STOS 1.串传送指令MOVS 格式:MOVS DST SRC
汇编语言 程序设计 7.1 串操作 8086指令系统中的串操作指令共有以下 5条:串传送指令(MOVS)、串比较指令 (CMPS)、串扫描指令(SCAS)、从源 串取指令(LODS)和存入目的串指令 (STOS)。 1.串传送指令MOVS 格式:MOVS DST,SRC
汇编语言程序设计 MOVSB(字节) MOVSW(字) 功能: 1(ES): (DI)<((DS): (SI)) 2当DF=0时,(SI)和(DI)加1(字节 操作)或加2(字操作) 当DF=1时,(SI)和(DI)减1(字节 操作)或减2(字操作)。 MOVS指令不影响状态标志位
汇编语言 程序设计 MOVSB(字节) MOVSW(字) 功能: 1(ES):(DI)←((DS):(SI)) 2 当DF=0时,(SI)和(DI)加1(字节 操作)或加2(字操作)。 当DF=1时,(SI)和(DI)减1(字节 操作)或减2(字操作)。 MOVS指令不影响状态标志位
汇编语言程序设计 2.串比较指令(CMPS) 格式: CMPS SRO,DST CMPSB(字节) CMPSW(字) 功能: (1)((DS):(SⅠ))-((ES):(DI)) (2)当DF=0时,(SI)和(DI)加1(字节 操作)或加2(字操作)。 当DF=1时,(SI)和(DI)减1(字节 操作)或减2(字操作)
汇编语言 程序设计 2.串比较指令(CMPS) 格式:CMPS SRC,DST CMPSB(字节) CMPSW(字) 功能: (1)((DS):(SI))-((ES):(DI)) (2) 当DF=0时,(SI)和(DI)加1(字节 操作)或加2(字操作)。 当DF=1时,(SI)和(DI)减1(字节 操作)或减2(字操作)
汇编语言程序设计 B.串搜索指令(SCAS) 格式: SCAS DST SCASB(字节) SCASW(字) 功能:(1)(AL)一((ES):(DI)) (字节操作) (AX)-((ES):(DI))(字操作) (2)当DF=0时,(DI)加1(字节操作) 或加2(字操作)。 当DF=1时,(DI)减1(字节操作)或 减2(字操作)
汇编语言 程序设计 3.串搜索指令(SCAS) 格式:SCAS DST SCASB(字节) SCASW(字) 功能:(1)(AL)-((ES):(DI)) (字节操作) (AX)-((ES):(DI))(字操作) (2)当DF=0时,(DI)加1(字节操作) 或加2(字操作)。 当DF=1时,(DI)减1(字节操作)或 减2(字 操作)
汇编语言程序设计 4从源串取指令(LODS) 式: LODS SRC LODSB(字节) LODSW(字) 功能: 1AL←((DS):(SI))(字节操作) AX←((DS):(SI))(字操作) 2当DF=0时,(SI)加1(字节操作)或加 2(字操作)。 当DF=1时,(SI)减1(字节操作)或减2 (字操作)
汇编语言 程序设计 4.从源串取指令(LODS) 格式:LODS SRC LODSB(字节) LODSW(字) 功能: 1 AL←((DS):(SI))(字节操作) AX←((DS):(SI))(字操作) 2 当DF=0时,(SI)加1(字节操作)或加 2(字操作)。 当DF=1时,(SI)减1(字节操作)或减2 (字操作)
无情子汁目的串指令(ST0S) 式: STOS DST STOSB(字节) STOS W(字) 功能 1(ES):(DI)←(AL)(字节操作) (ES):(DI)←(AX)(字操作) 2当DF=0时,(DI)加1(字节操作)或加2 (字操作)。 当DF=1时,(DI)减1(字节操作)或减2 (字操作)
汇编语言5. 程序设计 存入目的串指令(STOS) 格式:STOS DST STOSB(字节) STOS W(字) 功能: 1(ES):(DI)←(AL)(字节操作) (ES):(DI)←(AX)(字操作) 2 当DF=0时,(DI)加1(字节操作)或加2 (字操作)。 当DF=1时,(DI)减1(字节操作)或减2 (字操作)
汇编语言程序设计 6.重复前缀 REP CX≠0重复执行串操作指令 REPZ/REPE CX≠=0且ZF=1重复执行串操作指令 REPNZ/ REPNE CX≠=0且ZF=0重复执行串操作指令 执行步驟如下 ①检查C寄存器的值,若(CX)=0,则退 出串操作指令
汇编语言 程序设计 6.重复前缀 REP CX≠0重复执行串操作指令 REPZ/REPE CX≠0且ZF=1重复执行串操作指令 REPNZ/REPNE CX≠0且ZF=0重复执行串操作指令 执行步骤如下: ① 检查CX寄存器的值,若(CX)=0,则退 出串操作指令
汇编语言程序设计 ②否则指令执行一次串操作指令。 ⑦根据DF标志自动修改地址指针 ④4(CⅩ)←(CX)-1
汇编语言 程序设计 ② 否则指令执行一次串操作指令。 ③ 根据DF标志自动修改地址指针。 ④ (CX)←(CX)-1,返回 ①。 返回
汇编语言程序设计 7.2表的处理 对表的处理主要包括:查询、插入、删 除、排序和搜索等几个方面。 7.2.1表的构造 为了方便表的处理。首先要组织好表的 结构。即把表的内容按照一定的规则组织 起来,然后,程序就可以遵照这些规则存 取表中各项内容
汇编语言 程序设计 7.2 表的处理 对表的处理主要包括:查询、插入、删 除、排序和搜索等几个方面。 7.2.1 表的构造 为了方便表的处理,首先要组织好表的 结构。即把表的内容按照一定的规则组织 起来,然后,程序就可以遵照这些规则存 取表中各项内容