• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编语言程序设计(五)

汇编语言程序设计(五)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了汇编语言程序设计,汇编语言程序设计教程,汇编语言程序设计pdf,arm汇编语言程序设计,8086汇编语言程序设计等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>

四、桥式法:

桥式法是利用读写记忆体的特性,将程式中若干指令直接填入,作为临时便桥,以改变此段程式的功能。
例如在显示时,希望能提供多种变化,而又不愿减低速度及增加太多的程式。最好的方法,便是利用桥式法,在同一位址,填入需要的指令。
桥式法用得好而又灵活时,对程式的效率极有助益。但是应该注意一点,就是只能用在可读可写的记忆区中,如若要制成「韧体」,即置入仅读记忆体(ROM) 中的程式,绝不可使用此法。
下面的实例,即为萤幕显示的桥式应用。首先,把架桥的「材料」设置在缓冲器中,如:
CDSPMOD DB 88H ;8805 = MOV [DI],AL
DB 30H ;3005 = XOR [DI],AL
DB 08H ;0805 = OR [DI],AL
DB 20H ;2005 = AND [DI],AL
CDSPMOD 即为缓冲器,其中有四个数据,分别为机器码的相异部份,如分号后所注。因为四组机器码皆有 05 ,不必再填。=右边部份,即为该机器语言相对应的指令。
程式部份先设妥功能定义,利用一、所说的变数应用法,依序由0至3先载入暂存器BX中。根据 BX 值,将所需机器码载入程式中。
10:CLOD:
11: MOV AL,CDSPMOD[BX] ;用BX取预存码
12: MOV CS:CDSP2[1],AL ;载入CDSP2+1
13:CDSP:
14: SUB SI,SI ;资料由0起
15:CDSP1:
16: LODSB ;取资料
17:CDSP2 LABEL BYTE ;载入的位置
18: XOR ES:[DI],AL ;原码26 30 05
19: INC DI ;须改 30 部份
20: LOOP CDSP1
21: RET

五、流水线法:

工业上的流水线生产作业,需要极为严格的规格限制,原器件分别研制完毕后,统一送到生产线上组装。
程式亦可采用同样的方法,只可惜一时手头上找不到现成的、适用的例子,只得将方法概述如下:
先设定处理流程,凡是能用这种生产流程者,皆适用。
再设定处理流程中所采用的「生产线」,也就是缓冲器。因为流水线上所用的资料都需要由缓冲器提供。
此缓冲器的长度由流程决定,缓冲器中的资料则由各调用本流程的原程式载入。
各调用程式可视个别条件,将所需处理的资料,放在缓冲器内(全部或部份)。待调用后,再从原缓冲器中取出经过处理后的资料。

六、对应表法

凡是指根据某种需要,将经过整理的资料,以某种固定的格式,安排在一特定区域中。每当需要时,立刻可以按照排列的位置取出来使用的,皆可称之为对应表。
这种对应表是我最喜欢利用的技巧,速度奇快不说,修改也极其容易。尤其是我做事一向不拘小节,写起程式来,专出小错。自从采用了表格对照法后,凡是适合这种形式的程式,只要想通了最理想的结构,几个指令就把程式写完了。
兹将附录中所举的例子,对字形放大所采用的查表法,在此作进一步的介绍。
假设有一组图形,要在萤幕上左右放大一倍。一般程式师做这种题目,都是在暂存器内移来移去,每一个字元的资料,起码要移八次之多,每次都要用借位作为转换值。而转换时,又要放进一个16位元的暂存器中,尽管可以用回路去做,时间的延误相当大,读者可参考附录二以做比较。
当然,表格要占用空间,以本例而言,如果一次用256B,取足则要512B。
因此这种技术可以说是以空间换取时间。在第一章第三节「效率」的第四条定律下,我们知道键盘输入速度,决定于人的操作速度,而人的反应远远不及电脑,故应以人的速度为时间边际值,尽量设法节省。
目前,所涉及的是显示时间,每个人在电脑前,都期望着立即得到结果。因此,显示速度不仅要快,而且越快越好。所以,前述的空时交换应在可能范围中,视实际的边际效应,以作取舍。
现在看看资料分析,下面列举的二进位资料,在左边为原图形点阵,在右边则为放大一倍后的点阵:
原点阵 左右放大一倍
00000001 00000000 00000011
00000010 00000000 00001100
00000011 00000000 00001111
..
01010101 00110011 00110011
..
11111111 11111111 11111111
现在有两个因素非常明显,第一,不论什么点阵,放大后长度加一倍,一字元有256 种。放大后点形种类不变,但字元数加倍为 512个。其次,由于放大后的 512个中,有一半皆相同,故仍可用256 种表示。
至于取前者或后者,当视情况而定。
决定以后,将之定义在缓冲器中,以原图形的点阵资料作为索引值,即可采间接定址法,立即取得放大后点阵。
在制作对应表时,应养成良好的习惯,根据资料的规则,以等长度、固定的格式输入。这样不仅对表中的资料能一目瞭然,而且容易输入、侦错、修改,一举数得。
如某表格为:
100 TBXXX DB 0,1,3,7,0FH,1FH,3FH,7FH,0FFH,2,6,0EH,1EH,3EH,7EH,0FEH
此表看去远不如下表来得清楚、规律:
100 TBXXX DB 000H,001H,003H,007H,00FH,01FH,03FH,07FH
200 DB 0FFH,002H,006H,00EH,01EH,03EH,07EH,0FEH
从事程式写作,规律的思考方式及追求,经常事半功倍。这种小技巧看似没有多大作用。事实上,在输入时,规则化的结构可以轻易地利用现有的功能,或复制,或修改。更有利的是能一眼看出该表的意义及正确性,在程式侦错时,往往可以节省大量的时间。

七、模式法

所谓模式法,是指在程式的处理过程中,分析其规律,以期找到一种共同具有的「模式」。并用此模式,设计成为一个个程式单元,以追求最高效率。
这种模式,可用「概念」来代表,但最理想的表达方法,仍以视觉图形为宜。也就是说,最好能把分析出来的模式,用图形表示,并据以理解及设计程式。
兹以常用的功能「排序」为例,来说明模式法的应用,并设计成为程式。
先假定需要排序的资料结构为:
11每笔资料之长度固定为一字元。
12资料形式为 ASCII码,16进位值,由 20H到 7EH。

 2 3 4  下一页</div> </div> </div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 汇编程序设计
  • 宏汇编
  • 汇编教程:虚拟设备驱动程序结构
  • 一个win32汇编语言程序示例
  • 汇编语言程序设计(一)
  • 汇编语言程序设计(二)
  • 汇编语言程序设计(三)
  • 汇编语言程序设计(五)

相关文章

  • 2017-06-28汇编源码系列之basmain
  • 2017-06-28汇编教程:控制转移
  • 2017-06-28用汇编语言编写消息框程序
  • 2017-06-28VxD程序入门
  • 2017-06-28汇编语言的艺术-基本认识(一)
  • 2017-06-28汇编语言的艺术-准备工作(三)
  • 2017-06-28GUI编程中以对话框为主要界面的应用程序
  • 2017-06-28汇编教程之树型视图控件
  • 2017-06-17键盘I/O
  • 2017-06-28汇编教程之处理鼠标按键消息

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 基于微处理器的计算机系统构成
    • 输入输出指令
    • 汇编源码系列之gameport
    • 汇编语言学习指南(四)
    • 8086/8088指令系统
    • SHELL排序测试
    • 汇编语言学习指南(二)
    • 汇编源代码之汇编语言制作的光带菜单及源程序(1.0)
    • 汇编源码系列之basmain
    • 动态VXD学习

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有