Welcome 微信登录

首页 / 软件开发 / 汇编语言

汇编语言的艺术-准备工作(四)

汇编语言的艺术-准备工作(四)

汇编语言的艺术-准备工作(四)2007-04-26二、原始档(SourceFile)档名定义 在共同设计大型模组时,程式师间的默契,全赖事先相互约定。否则程式越大,所面临的困难将越多,经常耗时费事,甚至最后功败垂成。 因此,在设计之初,必须妥善规划,将一应有关的档案、名称、功能等,皆明确地加以定义。参与设计的程式师,更必须严格遵守,方能得心应手。 原始档名的定义,其目的有三: 1,代表程式设计者:当制作的程式甚多时,一见档名,就应能分辨出各个程式的设计人。...
汇编语言的艺术-准备工作(五)

汇编语言的艺术-准备工作(五)

汇编语言的艺术-准备工作(五)2007-04-26第四节统一格式 一、格式统一之优点 不论采用何种程式语言,凡是共同工作、须相互研讨,或者在同一部门中,分担成败责任者,应该有统一的程式写作方式。这样不仅便于沟通,提高程式的品质,且可避免因某一程式师之离职或出缺所造成的后遗症。 良好的程式,应如一篇美妙的文学作品,其中有技巧,有意境。其功能不仅表现在执行的效率上,也可以作为同行间学习、欣赏的媒介,这些都必须透过统一的格式达成。 尤其是把组合程式写作当作一种艺...
汇编语言的艺术-基本认识(一)

汇编语言的艺术-基本认识(一)

汇编语言的艺术-基本认识(一)2007-04-26第一节应用工具 一、对程式的认识 写作程式不难,但要写出好程式却不容易。这就好像画图一样,人人都能画,而画出来的图却可能有天壤之别。 想作一个好画家,首先要有观察及分析的能力,面对着杂乱的事物,先整理出头绪,找到主题。再在画布上勾出轮廓,这叫做「布局」。布局完毕,根据实际的环境,决定作图的先后「顺序」。顺序是一种层次观念,景物及色彩都有一定的层次,绝不可随意所之,想到哪里,画到哪里。 观察考虑完毕,即开始准...
汇编语言的艺术-基本认识(二)

汇编语言的艺术-基本认识(二)

汇编语言的艺术-基本认识(二)2007-04-26四、对指令的认识 指令就是「指挥」、「命令」,用以控制电脑,一步一步地实现程式的计划。 组合语言的格式为: (下行中凡标“[]”者,表有些指令可省略) [前置元]指令[目的操作元,源始操作元] 1,「前置元」:以下诸例即为前置元的用法。 11段名:表后面的操作元应属于此临时前置段。如: MOVAX,CS:BUF1 12定义:表示其后缓冲器的临时定义。BYTEPTR表示以一个字元定义的...
汇编语言程序设计(一)

汇编语言程序设计(一)

汇编语言程序设计(一)2007-04-26学习任何一种艺术,只能从瞭解观念及熟练地运用工具、技巧上下功夫。至于个人的成就及表现,有待于不断地自我要求和探索,不是仅仅通过学习就可以轻易获得的。 组合程式的写作亦然,虽说尚有时、空效率的客观标准,但是一个功能复杂、应用广泛的程式,其价值的全面评估却非如此单纯。要言之,目前这种组合程式艺术仅在启蒙阶段,尚无成规可循,必须到大众都认识到其价值时,才会有定论。 因此,我只能在此举一个例子,说明程式写作的观念,希望读者...
汇编语言程序设计(二)

汇编语言程序设计(二)

汇编语言程序设计(二)2007-04-26四、模组分割 既然称为模组,本不存在分割与否的问题。如果一个程式师一开始就具备模组的观念,彻底瞭解其性质,当然知道如何设计,自然就没有分割的必要。即令如此,在程式的制作过程中,经常是信马游缰,想到哪,写到哪。所以,养成模组分割的观念,对实际工作上,自有其必然的功效。 模组分割的原因不定,大约可分下列数种: 1,为了制作的方便,把程式分成模组,易于维护。 2,为了工作效率,或需要速度、或为节省空间的程式,分别用不同的...
汇编语言程序设计(三)

汇编语言程序设计(三)

汇编语言程序设计(三)2007-04-26第四节程式规划 程式规划是指在整体设计的观念上,事先对全部程式周详地、有系统地分析,再定出一个明晰的架构,以便于制作。 最理想的方式,是从使用者的角度,先决定应用功能、用键、输入形式、空间结构及模组划分等。 这些都确定了,才能按图索骥,根据蓝图写程式。也就是说,规划即先把目标介定妥当,以便按步就班,循序执行。 1,工作的认识:程式的规划,相当于设计建筑篮图,首先要明确认识工作性质、特征、条件,选择取适当的方式,以求...
汇编语言程序设计(四)

汇编语言程序设计(四)

汇编语言程序设计(四)2007-04-26第五节程式写作 说了不少,才真正到了写作程式的时候,运用指令就相当于写程式。只是,在运用指令前,一定要充份瞭解一应相关的课题。否则,应用指令如同和稀泥一般,堆砌出一团可以运作的成品,我个人不认为那能叫做「写程式」,充其量只是涂鸦罢了。 一、暂存器安排 因为暂存器不足,必须事先安排妥当,才能有效应用。 再以前例说明,需要安排的因素有: 1,字形大小:此项有两个变数需要安排,一是横向之始、终值;另一是纵向之始、终值。因...
汇编语言程序设计(五)

汇编语言程序设计(五)

汇编语言程序设计(五)2007-04-26四、桥式法: 桥式法是利用读写记忆体的特性,将程式中若干指令直接填入,作为临时便桥,以改变此段程式的功能。 例如在显示时,希望能提供多种变化,而又不愿减低速度及增加太多的程式。最好的方法,便是利用桥式法,在同一位址,填入需要的指令。 桥式法用得好而又灵活时,对程式的效率极有助益。但是应该注意一点,就是只能用在可读可写的记忆区中,如若要制成「韧体」,即置入仅读记忆体(ROM)中的程式,绝不可使用此法。 下面的实例,即...
汇编语言学习指南(一)

汇编语言学习指南(一)

汇编语言学习指南(一)2007-04-26汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机)============================x86汇编语言的指令,其操作对象是CPU上的寄存器,系统内存,或者立即数. 有些指令表面上没有操作数, 或者看上去缺少操作数, 其实该指令有内定的操作对象, 比如push指令, 一定是对SS:ESP指定的内存操...
汇编语言学习指南(二)

汇编语言学习指南(二)

汇编语言学习指南(二)2007-04-26汇编指令的操作数可以是内存中的数据, 如何让程序从内存中正确取得所需要的数据就是对内存的寻址。 INTEL 的CPU 可以工作在两种寻址模式:实模式和保护模式。 前者已经过时,就不讲了, WINDOWS 现在是32位保护模式的系统, PE 文件就基本是运行在一个32位线性地址空间, 所以这里就只介绍32位线性空间的寻址方式。 其实线性地址的概念是很直观的, 就想象一系列字节排成一长队,第一个字节编号为0, 第二个编...
汇编语言学习指南(三)

汇编语言学习指南(三)

汇编语言学习指南(三)2007-04-26“汇编语言”作为一门语言,对应于高级语言的编译器,我们需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM, TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows...
汇编语言学习指南(四)

汇编语言学习指南(四)

汇编语言学习指南(四)2007-04-26高级语言程序的汇编解析 在高级语言中,如C和PASCAL等等,我们不再直接对硬件资源进行操作,而是面向于问题的解决,这主要体现在数据抽象化和程序的结构化。例如我们用变量名来存取数据,而不再关心这个数据究竟在内存的什么地方。这样,对硬件资源的使用方式完全交给了编译器去处理。不过,一些基本的规则还是存在的,而且大多数编译器都遵循一些规范,这使得我们在阅读反汇编代码的时候日子好过一点。这里主要讲讲汇编代码中一些和高级语言...
树型视图控件详解

树型视图控件详解

树型视图控件详解2007-05-01 本站 本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。 理论:树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。您可以调用CreateWindowEx来创建树型视图,传递一个类名“"SysTreeView32"”,或者您也可以把它放到一个对话框中去。不要忘...
汇编中参数的传递和堆栈修正

汇编中参数的传递和堆栈修正

汇编中参数的传递和堆栈修正2007-05-01在 Win32汇编中,我们经常要和 Api 打交道,另外也会常常使用自己编制的类似于 Api 的带参数的子程序,本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代码可能是pus...
汇编指令与机器码的相互转换

汇编指令与机器码的相互转换

汇编指令与机器码的相互转换2007-05-01机器语言我们只要重点理解一下几个概念:1. 机器语言指令有操作码(OP)和地址码两部分组成 |_____________OP_______________|__d__|__w__||_____________OP_______________|__s__|__w__| <--此格式用于立即寻址方式在多数操作码中,常使用某些位来指示某些信息:如图上结构里的: w=1 时 对字来操作w=0 时 对字节来操作d...
汇编语言与C语言的接口技术

汇编语言与C语言的接口技术

汇编语言与C语言的接口技术2007-05-01 汇编语言没有高级语言要占用较大的存储空间和较长的运行时间等缺点,它的运行速度快是高级语言所不能比拟的。可以说高级语言与汇编语言各有千秋。有时我们采用高级语言编程速度达不到要求,全部采用汇编语言编程工作量又大,此时可以采用"混合"编程,彼此相互调用,进行参数传递,共享数据结构及数据信息,是一种有效的编程方法。这种方法可以发挥各种语言的优势和特点,充分利用现有的多种实用程序、库程序等使软件的...
<< 1 2 3 4 5 6 7 8 9 10 >>