1 / 15

第 7 章 非数值运算

第 7 章 非数值运算. 非数值主要指的是数之外的数据,它的操作主要是对数据进行处理,如代码转换、字符处理、排序、检索等。 7.1 串操作 7.2 表的处理 7.3 代码转换. 7.1 串操作. 8086 指令系统中的串操作指令共有以下 5 条:串传送指令( MOVS )、串比较指令 ( CMPS )、串扫描指令( SCAS )、从源 串取指令( LODS )和存入目的串指令 ( STOS )。 1 .串传送指令 MOVS 格式: MOVS DST , SRC. MOVSB (字节) MOVSW (字) 功能:

cathy
Download Presentation

第 7 章 非数值运算

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 非数值运算 非数值主要指的是数之外的数据,它的操作主要是对数据进行处理,如代码转换、字符处理、排序、检索等。 7.1 串操作 7.2 表的处理 7.3 代码转换

  2. 7.1 串操作 8086指令系统中的串操作指令共有以下 5条:串传送指令(MOVS)、串比较指令 (CMPS)、串扫描指令(SCAS)、从源 串取指令(LODS)和存入目的串指令 (STOS)。 1.串传送指令MOVS 格式:MOVS DST,SRC

  3. MOVSB(字节) MOVSW(字) 功能: 1(ES):(DI)←((DS):(SI)) • 当DF=0时,(SI)和(DI)加1(字节 操作)或加2(字操作)。 当DF=1时,(SI)和(DI)减1(字节 操作)或减2(字操作)。 MOVS指令不影响状态标志位。

  4. 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(字操作)。

  5. 3.串搜索指令(SCAS) 格式:SCAS DST SCASB(字节) SCASW(字) 功能:(1)(AL)-((ES):(DI))(字节操作) (AX)-((ES):(DI))(字操作) (2)当DF=0时,(DI)加1(字节操作) 或加2(字操作)。 当DF=1时,(DI)减1(字节操作)或减2(字 操作)。

  6. 4.从源串取指令(LODS) 格式:LODS SRC LODSB(字节) LODSW(字) 功能: 1 AL←((DS):(SI))(字节操作) AX←((DS):(SI))(字操作) 2 当DF=0时,(SI)加1(字节操作)或加2(字操作)。 当DF=1时,(SI)减1(字节操作)或减2(字操作)。

  7. 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(字操作)。

  8. 6.重复前缀 REP CX≠0重复执行串操作指令 REPZ/REPE CX≠0且ZF=1重复执行串操作指令 REPNZ/REPNE CX≠0且ZF=0重复执行串操作指令 执行步骤如下: ① 检查CX寄存器的值,若(CX)=0,则退出串操作指令。

  9. ② 否则指令执行一次串操作指令。 ③ 根据DF标志自动修改地址指针。 ④ (CX)←(CX)-1,返回 ①。 返回

  10. 7.2 表的处理 对表的处理主要包括:查询、插入、删 除、排序和搜索等几个方面。 7.2.1 表的构造 为了方便表的处理,首先要组织好表的 结构。即把表的内容按照一定的规则组织 起来,然后,程序就可以遵照这些规则存 取表中各项内容。

  11. 7.2.2 表的插入与删除 表的插入就是将一新的内容插入到表中某个单元的前面或后面,这就需要先插入位置以后的数据后移,然后再将数据插入,同时元素的个数也相应增加。 表的删除就是将表中某些内容删除,这就需要删除操作完成后,将删除内容以后的数据前移,同时元素的个数也相应减少。

  12. 7.2.3 排序 排序也称为分类,是指对给定的一组数 据,按着规定的顺序进行重新排列。 排序的目的是为了方便检索,提高检索 的效率。 常用的有交换排序、选择排序和插入排序等。 7.2.4 查找 查找是在数据表处理中经常使用的一种操作。查找的方法有二分(折半)查找和散列值查找等。 返回

  13. 7.3 代码转换 7.3.1 二进制数与ASCII码间的相互转换 1.二进制数转换成ASCII码 为了将计算机内的二进制数在屏幕上显示或在打印机上输出,就必须先将二进制数转换成ASCII码。

  14. 2.ASCII码转换成二进制数 从键盘输入一个数字,而机器接收到的是它的ASCII码,若这个数字要进行二进制运算,则首先要将其转换成二进制数。

  15. 7.3.2 二进制数与BCD码间的相互转换 1.二进制数转换成BCD码 在计算机内部,当完成二进制运算后 输出时,需要将其转换为BCD码。这种 从二进制数到十进制数非压缩BCD码的 转换,经常使用减法转换法、除法转换 法和表达式转换法。 2.BCD码转换成二进制数 返回

More Related