西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第九章 程序设计的一些编程技巧

第9章程序设计的一些编程技巧 第9章程序设计的一些编裎技巧 9,1表处理程序设计 9,2代码转换程序 93算术运算 94数值分析 BACK
第9章 程序设计的一些编程技巧 第9章 程序设计的一些编程技巧 9.1 表处理程序设计 9.2 代码转换程序 9.3 算术运算 9.4 数值分析

第9章程序设计的一些编程技巧 91表处理程序设计 911表的处理 表的用途十分广泛:求平方值、立方值需要使用平方值表和 立方值表,程序实现分支要用到跳转表等;大量供各种运算、査 询等用的机器执行的任务,一组组的结果,一系列有关联的数据 等等,都需要使用表来存储或处理。对表的处理通常包括査询、 插入、删除、排序和搜索等几个方面。将一新的内容插入到表中 某个单元以前或以后,这里就需要先将插入位置以后的数据后移, 然后再将数据插入,同时表元素的个数也应做相应的修改(增加); 需要将表中某些内容删除时,为保持表的完整,应将被删内容以 后的数据前移,并修改表元素个数;需要按某种规律(升序或降序) 将表中内容重新排列组织;需要在特定的表中查找给定某元素, 看是不有在此元素,存在何处,并做些其他处理等等
第9章 程序设计的一些编程技巧 9.1 表处理程序设计 9.1.1 表的处理 表的用途十分广泛:求平方值、立方值需要使用平方值表和 立方值表,程序实现分支要用到跳转表等;大量供各种运算、查 询等用的机器执行的任务,一组组的结果,一系列有关联的数据 等等,都需要使用表来存储或处理。对表的处理通常包括查询、 插入、删除、排序和搜索等几个方面。将一新的内容插入到表中 某个单元以前或以后,这里就需要先将插入位置以后的数据后移, 然后再将数据插入,同时表元素的个数也应做相应的修改(增加); 需要将表中某些内容删除时,为保持表的完整,应将被删内容以 后的数据前移,并修改表元素个数;需要按某种规律(升序或降序) 将表中内容重新排列组织;需要在特定的表中查找给定某元素, 看是否存在此元素,存在何处,并做些其他处理等等

第9章程序设计的一些编程技巧 912表处理程序设计 在表处理程序设计中,经常要用到ⅩLA指令,XLAT指令称 为查表转换指令,在3.2.1节数据传送指令中已作过介绍。它是用 表中的一个字节(称为换码字节)来置换累加器AL中的内容,用此 指令以前,要求先把表的起始地址送入BX寄存器,且在AL中置 好所需的初值,AL中的初值为所需的换码字节在表中的相对位 置(用字节数给出),又可称为查找所需换码字节的索引值,然后 XLAT指令将BX内容加上AL内容所形成的地址单元中的内容(即 所需的换码字节)放到AL中去
第9章 程序设计的一些编程技巧 9.1.2 表处理程序设计 在表处理程序设计中,经常要用到XLAT指令,XLAT指令称 为查表转换指令,在3.2.1节数据传送指令中已作过介绍。它是用 表中的一个字节(称为换码字节)来置换累加器AL中的内容,用此 指令以前,要求先把表的起始地址送入BX寄存器,且在AL中置 好所需的初值,AL中的初值为所需的换码字节在表中的相对位 置(用字节数给出),又可称为查找所需换码字节的索引值,然后 XLAT指令将BX内容加上AL内容所形成的地址单元中的内容(即 所需的换码字节)放到AL中去

第9章程序设计的一些编程技巧 1.XLAT指令应用举例 例9-1利用XLAT指令把十六进制数转换成ASCI码 编程的基本思想是通过查表来实现进制的转换 进制转换的方法有很多,这里介绍使用表的方法来实现转 换。XLAT指令是对表进行处理的,因此,要使用XLAT指令, 就必须建立符合要求的表。程序中 HEXTAB是十六进制数表, 而 TAB DA是ASC码表
第9章 程序设计的一些编程技巧 1.XLAT指令应用举例 例9-1 利用XLAT指令把十六进制数转换成ASCII码。 编程的基本思想是通过查表来实现进制的转换。 进制转换的方法有很多,这里介绍使用表的方法来实现转 换。XLAT指令是对表进行处理的,因此,要使用XLAT指令, 就必须建立符合要求的表。程序中HEXTAB是十六进制数表, 而TAB_DA是ASCII码表

第9章程序设计的一些编程技巧 TABLE SEGMENT TAB DA DB30H,31H,32H,33H DB34H,35H,36H,37H DB38H,39H,41H,42H DB42H,43H,44H,45H,46H COUNT EQU S-TAB DA HEXTAB DB 0,1, 2, 3, 4,5 DB6,7,8,9,0AH DB OBH, OCH, ODH, OEH, OFH
第9章 程序设计的一些编程技巧 TABLE SEGMENT TAB_DA DB 30H,31H,32H,33H DB 34H,35H,36H,37H DB 38H,39H,41H,42H DB 42H,43H,44H,45H,46H COUNT EQU $-TAB_DA HEXTAB DB 0,1,2,3,4,5 DB 6,7,8,9,0AH DB 0BH,0CH,0DH,0EH,0FH

第9章程序设计的一些编程技巧 ASIBUF DB 16 DUP(?) TABLE ENDS STACK SEGMENT PARA STACK STACK STAPN DB 100 DUP(? STACK ENDS COSEG SEGMENT aSSUMe CS: coseg, ds: DATA assume eS: TABLE, ss: STACK STR PROC FAR
第9章 程序设计的一些编程技巧 ASIBUF DB 16 DUP(?) TABLE ENDS STACK SEGMENT PARA STACK 'STACK' STAPN DB 100 DUP(?) STACK ENDS COSEG SEGMENT ASSUME CS∶COSEG,DS∶DATA ASSUME ES∶TABLE,SS∶STACK STR PROC FAR

第9章程序设计的一些编程技巧 START PUSH DS MOV AX, 0 PUSH AX MOV AX, TABLE MOV ES, AX MOV DS, AX MOV BX, OFFSET TAB DA MOV SI, OFFSET HEXTAB MOV DI, OFFSET ASIBUF MOV CX, COUNT
第9章 程序设计的一些编程技巧 START PUSH DS MOV AX,0 PUSH AX MOV AX, TABLE MOV ES,AX MOV DS,AX MOV BX,OFFSET TAB_DA MOV SI,OFFSET HEXTAB MOV DI,OFFSET ASIBUF MOV CX,COUNT

第9章程序设计的一些编程技巧 NEST LODSB XLAT TAB DA STOSB LOOP NEST RET STR ENDP COSEG ENDS END START
第9章 程序设计的一些编程技巧 NEST: LODSB XLAT TAB_DA STOSB LOOP NEST RET STR ENDP COSEG ENDS END START

第9章程序设计的一些编程技巧 例9-2数据或程序的加密和解密。 为了使数据能够保密,可以建立一个密码表,利用XLAT 指令将数据加密。程序接收键入的一个数字,如果是0~9之间 的一个数,加密后存入MMA单元。密码表可选择为 原数字:0,1,2,3,4,5,6,7,8,9 密码数字:7,5,9,1,3,6,8,0,2,4
第9章 程序设计的一些编程技巧 例9-2 数据或程序的加密和解密。 为了使数据能够保密,可以建立一个密码表,利用XLAT 指令将数据加密。程序接收键入的一个数字,如果是0~9之间 的一个数,加密后存入MIMA单元。密码表可选择为 原数字: 0,1,2,3,4,5,6,7,8,9 密码数字: 7,5,9,1,3,6,8,0,2,4

第9章程序设计的一些编程技巧 加密程序描述如下: DATA SEGMENT MITAB DB7591368024;加密密码表 CONT EQU $-MITAB JMITAB DE17384915062;解密密码表 MIMA DB o DATA ENDS CODE SEGMENT assUMe cS: CODe, ds: DATA STAR PROC FAR PUSH DS MOV AX,0
第9章 程序设计的一些编程技巧 加密程序描述如下: DATA SEGMENT MITAB DB '7591368024' ;加密密码表 CONT EQU $-MITAB JMITAB DB '7384915062' ;解密密码表 MIMA DB ? DATA ENDS CODE SEGMENT ASSUME CS∶CODE,DS∶DATA STAR PROC FAR PUSH DS MOV AX,0
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第八章 高级汇编技术.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第七章 复杂汇编程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第六章 子程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第五章 基本结构程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第四章 指令及汇编语言源程序结构.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第三章 寻址方式和指令系统.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第二章 微处理器的结构及存储器组成.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第一章 基础知识.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第十章 中断和输入/输出程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)目录(编著:李强、温春).ppt
- 北方交通大学:《电子商务的系统分析与设计》 第九章 电子商务系统安全子系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第八章 电子支付与交易系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第七章 商务应用系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第六章 企业信息门户设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第五章 电子商务系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第四章 系统分析.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第十一章 案例分析.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第十章 系统实施与维护管理.ppt
- 北方交通大学:《电子商务的系统分析与设计》 绪论.ppt
- 《电子商务》电子课件 (共五章).ppt
- 《C++语言》课程教学资源(作业习题)作业题1.doc
- 《C++语言》课程教学资源(作业习题)作业题2.doc
- 《C++语言》课程教学资源(PPT课件讲稿)第一章 绪论——面向对象的程序设计语言.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第二章(2-6)赋值表达式和类型转换.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第三章(3-4)循环的中断.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第四章(4-10)编译预处理.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第六章 指针和引用.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第六章(6-4)指针和动态内存分配.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第七章 计算用户输入的一个正整数各位之和.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第八章 类和对象.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第九章(9-3)拷贝初始化构造函数.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十章 顺序表.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十章(10-4)虚基类.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十一章(11-3)静态成员.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十二章(12-2)几个特殊运算符的重载.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十三章 输入和输出.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十四章 模板.pps
- 《C语言》课程教学资源(作业习题)C语言基础1(一).doc
- 《C语言》课程教学资源(作业习题)C语言基础1(二).doc
- 《C语言》课程教学资源(作业习题)习题讲解.doc