150 likes | 327 Views
第 7 章 非数值运算. 非数值主要指的是数之外的数据,它的操作主要是对数据进行处理,如代码转换、字符处理、排序、检索等。 7.1 串操作 7.2 表的处理 7.3 代码转换. 7.1 串操作. 8086 指令系统中的串操作指令共有以下 5 条:串传送指令( MOVS )、串比较指令 ( CMPS )、串扫描指令( SCAS )、从源 串取指令( LODS )和存入目的串指令 ( STOS )。 1 .串传送指令 MOVS 格式: MOVS DST , SRC. MOVSB (字节) MOVSW (字) 功能:
E N D
第7章 非数值运算 非数值主要指的是数之外的数据,它的操作主要是对数据进行处理,如代码转换、字符处理、排序、检索等。 7.1 串操作 7.2 表的处理 7.3 代码转换
7.1 串操作 8086指令系统中的串操作指令共有以下 5条:串传送指令(MOVS)、串比较指令 (CMPS)、串扫描指令(SCAS)、从源 串取指令(LODS)和存入目的串指令 (STOS)。 1.串传送指令MOVS 格式:MOVS DST,SRC
MOVSB(字节) MOVSW(字) 功能: 1(ES):(DI)←((DS):(SI)) • 当DF=0时,(SI)和(DI)加1(字节 操作)或加2(字操作)。 当DF=1时,(SI)和(DI)减1(字节 操作)或减2(字操作)。 MOVS指令不影响状态标志位。
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(字操作)。
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(字) 功能: 1 AL←((DS):(SI))(字节操作) AX←((DS):(SI))(字操作) 2 当DF=0时,(SI)加1(字节操作)或加2(字操作)。 当DF=1时,(SI)减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重复执行串操作指令 执行步骤如下: ① 检查CX寄存器的值,若(CX)=0,则退出串操作指令。
② 否则指令执行一次串操作指令。 ③ 根据DF标志自动修改地址指针。 ④ (CX)←(CX)-1,返回 ①。 返回
7.2 表的处理 对表的处理主要包括:查询、插入、删 除、排序和搜索等几个方面。 7.2.1 表的构造 为了方便表的处理,首先要组织好表的 结构。即把表的内容按照一定的规则组织 起来,然后,程序就可以遵照这些规则存 取表中各项内容。
7.2.2 表的插入与删除 表的插入就是将一新的内容插入到表中某个单元的前面或后面,这就需要先插入位置以后的数据后移,然后再将数据插入,同时元素的个数也相应增加。 表的删除就是将表中某些内容删除,这就需要删除操作完成后,将删除内容以后的数据前移,同时元素的个数也相应减少。
7.2.3 排序 排序也称为分类,是指对给定的一组数 据,按着规定的顺序进行重新排列。 排序的目的是为了方便检索,提高检索 的效率。 常用的有交换排序、选择排序和插入排序等。 7.2.4 查找 查找是在数据表处理中经常使用的一种操作。查找的方法有二分(折半)查找和散列值查找等。 返回
7.3 代码转换 7.3.1 二进制数与ASCII码间的相互转换 1.二进制数转换成ASCII码 为了将计算机内的二进制数在屏幕上显示或在打印机上输出,就必须先将二进制数转换成ASCII码。
2.ASCII码转换成二进制数 从键盘输入一个数字,而机器接收到的是它的ASCII码,若这个数字要进行二进制运算,则首先要将其转换成二进制数。
7.3.2 二进制数与BCD码间的相互转换 1.二进制数转换成BCD码 在计算机内部,当完成二进制运算后 输出时,需要将其转换为BCD码。这种 从二进制数到十进制数非压缩BCD码的 转换,经常使用减法转换法、除法转换 法和表达式转换法。 2.BCD码转换成二进制数 返回