Quantcast
Channel: 汇编语言
Browsing latest articles
Browse All 50 View Live

汇编语言学习指南(二)

汇编指令的操作数可以是内存中的数据, 如何让程序从内存中正确取得所需要的数据就是对内存的寻址。 INTEL 的CPU 可以工作在两种寻址模式:实模式和保护模式。 前者已经过时,就不讲了, WINDOWS 现在是32位保护模式的系统, PE 文件就基本是运行在一个32位线

View Article



汇编语言学习指南(一)

汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机) ============================ x86汇编语言的指令,其操作对象是CPU上的寄存器,系统内存,或者立即数. 有些指令表

View Article

汇编语言程序设计(五)

四、桥式法: 桥式法是利用读写记忆体的特性,将程式中若干指令直接填入,作为临时便桥,以改变此段程式的功能。 例如在显示时,希望能提供多种变化,而又不愿减低速度及增加太多的程式。最好的方法,便是利用桥式法,在同一位址,填入需要的指令。 桥式法用

View Article

汇编语言程序设计(五) (2)

;比是否该排 19: JB COMPAR2 ;是 20: MOV SI,DI ;否,将原位址还原 21: JMP COMPAR0 ;从头再做 22: COMRET: 23: RET 总而言之,程式的变化无穷无尽,尤其是用组合语言制作程式,更是灵活精妙。就像下围棋一般,往往一两个指令就足以将整个局势扭转过来。

View Article

汇编语言程序设计(四)

第五节 程式写作 说了不少,才真正到了写作程式的时候,运用指令就相当于写程式。只是,在运用指令前,一定要充份了解一应相关的课题。否则,应用指令如同和稀泥一般,堆砌出一团可以运作的成品,我个人不认为那能叫做「写程式」,充其量只是涂鸦罢了。 一、

View Article


汇编语言程序设计(四) (2)

JMP SHORT CKFUN 47:CK4D: 48: SUB DX,AX 49: JMP CK49 50:CK51: 51: ADD DX,AX 52: JMP CK49 53:CK48: 54: NEG AX ; 向上为负 55:CK50: 56: ADD DX,AX 57:CKFUN: ; 用变数观念检查「视窗」 58: CMP DX,BWTOP ; 超出上限? 59: JNS CKFUN1...

View Article

汇编语言程序设计(三)

第四节 程式规划 程式规划是指在整体设计的观念上,事先对全部程式周详地、有系统地分析,再定出一个明晰的架构,以便于制作。 最理想的方式,是从使用者的角度,先决定应用功能、用键、输入形式、空间结构及模组划分等。 这些都确定了,才能按图索骥,根据

View Article

汇编语言程序设计(二)

四、模组分割 既然称为模组,本不存在分割与否的问题。如果一个程式师一开始就具备模组的观念,彻底了解其性质,当然知道如何设计,自然就没有分割的必要。即令如此,在程式的制作过程中,经常是信马游缰,想到哪,写到哪。所以,养成模组分割的观念,对实际

View Article


汇编语言程序设计(一)

学习任何一种艺术,只能从了解观念及熟练地运用工具、技巧上下功夫。至于个人的成就及表现,有待于不断地自我要求和探索,不是仅仅通过学习就可以轻易获得的。 组合程式的写作亦然,虽说尚有时、空效率的客观标准,但是一个功能复杂、应用广泛的程式,其价值

View Article


汇编语言程序设计(一) (2)

假如真能因为多花一点钱,一劳永逸地解决了问题,倒也值得,事实上却不然。文字是民族、文化的根本,收字不足将形成「残缺文化」。同时,电脑技术在进步,使用者的需求也跟着增加,私人用的排版软件以及「视窗」的方兴未艾,中文还能梦想徒以增加记忆体的方

View Article

汇编语言程序设计(一) (3)

有些模组需要与公用模组配合使用,由于公用模组为全部模组设计的基础,故仍可视为独立调用。 2,效率高、弹性大,便于其他程式调用者。 二次开发的程式系建立在模组结构上,如果模组的效率不佳,必然会影响其操作。同时,各种应用程式都有特殊的需求和条件,

View Article

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

二、程式要条理通顺 1,在比较判断的过程中,邻近值不必连比。 CMP AL,0 JE ABCD0 CMP AL,1 JE ABCD1 CMP AL,2 JE ABCD2 .. 应为: CMP AL,1 JNE ABCD0 ABCD1: .. 在标题为ABCD0 中,再作: JA ABCD2 这种做法端视时间效益而定,似此 ABCD1之速度最快。 2,未

View Article

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

不仅是写程式,人的各种能力,都可以由工作的方式判断出来。智慧高的人,很快就能抓住重点,再分门别类,钜细无遗的理出完整的系统。经过良好训练的专家,则能根据一套法规,逐步地整理归纳,也能推出合情合理的结果来。 老实说,电脑程式的写作技术还没有到

View Article


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

四、对指令的认识 指令就是「指挥」、「命令」,用以控制电脑,一步一步地实现程式的计划。 组合语言的格式为: ( 下行中凡标“[ ] ”者,表有些指令可省略 ) [前置元] 指令 [目的操作元,源始操作元] 1,「前置元」:以下诸例即为前置元的用法。 11段名:表

View Article

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

目前尚无厂商提供「公用模组」,但是随着观念的拓广,一旦有了理论,有人先行一步,这种潮流即将形成。我们即将推出的“聚珍整合模组”,第一阶段尚限于程式师使用,再下一步,当客户直接调用的介面完成后,程式的发展方向又将改弦易辙了。 第三节 处理对象

View Article


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

概念并不是语言,而是组成语言的最基本因素。每一个人对外在世界的认知,都是独一无二的,由于人类生存在群体空间里,需要经常彼此交换经验,于是利用听觉效应表达概念,便产生了语言;利用视觉符号,则产生了文字。 前述的图象概念资料属于「具象」资料,除

View Article

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

保存原值的方法很多,其中较有效率的是放到一些不用的暂存器里。以我的经验,堆栈器用途最少,正好用作临时仓库。但最好的办法,还是把程式中暂存器的应用安排得合情合理,不要浪费,以免堆得太多。 还有一种方法,是在该子程式中,不用堆栈的手续,但另设一

View Article


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

第一节 应用工具 一、对程式的认识 写作程式不难,但要写出好程式却不容易。这就好像画图一样,人人都能画,而画出来的图却可能有天壤之别。 想作一个好画家,首先要有观察及分析的能力,面对着杂乱的事物,先整理出头绪,找到主题。再在画布上勾出轮廓,这

View Article

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

当然,缓冲器是有必要的,但也只限于「必要」的情况,而且,在程式规划时,就要考虑各种应用的条件,把缓冲器内的值取出后,一次处理完毕。如果不能一次解决或是经常要用到的资料,则设法放在暂存器中。 实际上,任何程式不可能在一个过程中,同时需要很多特

View Article

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

第四节 统一格式 一、格式统一之优点 不论采用何种程式语言,凡是共同工作、须相互研讨,或者在同一部门中,分担成败责任者,应该有统一的程式写作方式。这样不仅便于沟通,提高程式的品质,且可避免因某一程式师之离职或出缺所造成的后遗症。 良好的程式,

View Article

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

二、原始档(Source File)档名定义 在共同设计大型模组时,程式师间的默契,全赖事先相互约定。否则程式越大,所面临的困难将越多,经常耗时费事,甚至最后功败垂成。 因此,在设计之初,必须妥善规划,将一应有关的档案、名称、功能等,皆明确地加以定义。

View Article


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

二、目标档侦错及工具 在使用 debug时,因为名称简短,用法也简单。若使用「标题侦错」symdeb.exe则不然,因为首先要生成.map档,测试时,输入文字也较多。对不断使用的人来说,难免嫌烦。简化的方法,是先制作执行档:s.bat 及 sm.bat s.bat 是专供指定程式

View Article


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

四、简化名称 前述各种工具,在程式侦错过程中使用频繁,为了应用上的方便,如果能少输入一些字符,不仅节省时间,且可避免错误。令用者在惯性反应下,得以集中精神,思考其他细节。 简化名称是最简单的方法,最好只用一个字母,由于长度相等,其后面的档案

View Article

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

第一节 系统 一、系统之选择 只因真正了解电脑的人太少,迷信名气的结果,使得 IBM PC/AT占有了市

View Article

汇编语言的艺术-观念正误(六)

1-2 功能价值 绝对价值=采用后效益/未采用前效益 相对价值=各软件间绝对价值比 任何软件,如果没有实用的功能,就不可能有真正的价值。至于软件的功能价值如何测定,多多少少要看使用者的主观条件而定。 在这里,我们提出一个简单的方法,先要知道在采用

View Article


汇编语言的艺术-观念正误(五)

五、模组的效率 模组并不是一个新观念,在人类文明发展史上,人一直致力于了解自己身处的宇宙。这种了解,实际上就是模组应用的观念,将宇宙大环境,分解成为人所能认知的小环境,进而将小环境再分解成为个人的经验素材。 这样一层层地分解下去,便有了「概

View Article

汇编语言的艺术-观念正误(四)

三、利人与利己 任何一种商业产品,当然是以利益为先,利己后而利人。如果是艺术品创造,则刚刚相反,唯有能忽视己利,沥血泣心地探索,虔诚狂热地奉献,才会迸发出人性的光辉,创造不朽的杰作。 艺术家之伟大,在于此,人性之可贵,在于此。 对组合程式语言

View Article

汇编语言的艺术-观念正误(三)

第二节 组合语言 一、结构基础 物质文明之有今天的成就,是因为人类掌握了物质的基本结构。物质的种类无穷,但是却都由基本元素交互组成,只要根据一定的法则,就能得到一定的结果。 电脑技术虽然日新月异,应用软件的变化也无止无尽,而其基本因子却非常有

View Article

汇编语言的艺术-观念正误(二)

四、美国市场的程式语言应用 我手头唯一的资料,是美国 COMPUTER 杂志在1983年五月刊载于第65页的文章,讨论当时的 362种软件发展工具,存贮在一个「相关性资料库」中,并且对该资料库中工具的利用情况,一一分析。 文中列举了34种程式语言,以及其他各种应

View Article



汇编语言的艺术-观念正误(一)

第一节 电脑 一、前言 电脑的到来,被喻为人类文化的第三波革命,由于它具有强大的资讯机能和弹性,正好弥补了人类记忆不足、反应迟钝、厌于重覆和受限于时空的缺点。遂在当今世事繁杂、变化多端的动态社会中,成为人类日常工作中有力的帮手。 它之不同于人

View Article

汇编语言套装软件制作(2)

第三节 程式合并 我所见过的各种组合程式虽不算多,但至少有百余个了。毛病最多的当然是缺乏完整的规划,其次则是信马游缰,一份不折不扣的流水帐!明明大门口在东边,程式硬要朝西,直到游完了大观园,天黑了,才出东门! 这种程式我收集了一大叠,可是举来

View Article

汇编语言套装软件制作(2) (2)

JGE BE141 124: LOOP BE14 125: POP DI ;★可以省略 126: POP CX ;★可以省略 127: MOV SI,DI ;★可以省略 128: JMP BE142 ;★可以省略 129: BE141: 130: POP DI 131: POP CX 132: MOV SI,DI ;127移到此 133: JNZ BE142 ;128移到此 134: … 第四节 定案包装

View Article

汇编语言套装软件制作(1)

程式写完后,还要加工成为可执行的套装软件(Package),一般说来,即使是可以执行的程式,一点错误都没有,离套装软件的程度,却还有一段距离。 当然,程式侦错也是必经过程之一,有时侦错与程式写作可以同时进行。但有经验的程式师,对全面有了充份的认识,往

View Article


汇编语言套装软件制作(1) (2)

;;;;;;;;;;;;;;;;;;;;;;;;;;;; 6: CDSP0: 7: MOV CX,16 ;高16点 8: CDSP1: 9: MOVSW ;移至萤幕上 10: ADD DI,1FFEH ;加一区,每区=2000H 11: JNS CDSP2 ;未超越区限,继续 12: ADD DI,8050H ;超越区限,换区加行 13: CDSP2: 14: LOOP CDSP1 15: RET...

View Article

一个win32汇编语言程序示例

首先我们看一个“复杂”的Win32汇编程序 程序用来显示一个消息框 -------------------------------------------------- ;文件名:3.asm .386 .model flat ,stdcall NULL equ 0 MB_OK equ 0 ExitProcess PROTO :DWORD MessageBoxA PROTO...

View Article

汇编语言编写DOS下的内存驻留程序(5)

五 键盘输入扩充程序 有了前一节的基本驻留程序为基础,就可以建立起不同的应用程序.接下来,就写一个驻留程序,把用户敲入的字符,用一系列的字符来取代.这样可以减少用户的击键次数. 首先,先复习一下前一节的驻留程序的格式,如下所示: cseg segment assume cs:

View Article


汇编语言编写DOS下的内存驻留程序(5) (2)

DS的内容对于被中断的程序可能很重要.因此我们必须保证每次使用到内存位置时,都是使用目前的段,亦即以目前的CS值为标准.必须要确定:如果使用到任何寄存器的话那么在程序结束前,必须恢复其值. 5.2 多键扩充程序 上面的程序是把某一个特殊键扩充成一个字符串.

View Article


汇编语言编写DOS下的内存驻留程序(4)

四 基本的驻留程序 4.1 一个基本的COM程序 DOS之下有两种形式的可执行文件,这两种文件分别是COM文件和EXE文件.其中,COM文件可以迅速地加载和执行,但是其大小不能超过64K字节,只能有一个段,代码段.而且起始地址为100H指令必须为程序的启动指令.EXE文件可以加

View Article

汇编语言编写DOS下的内存驻留程序(4) (2)

现在写一个中断处理程序,这个中断处理程序只是调用原先的键盘中断处理程序,一旦做到这一点之后,接下来就可以根据键盘的输入做修改.以下就是调用原先键盘处理程序的驻留程序: cseg segment assume cs:cseg,ds:cseg org 100h start: jmp Initialize Old_Keyboa

View Article

汇编语言编写DOS下的内存驻留程序(3)

三 中断矢量 3.1 IBM PC提供的中断 IBM PC有两种基本形态的中断.如果是由外围设备所产生的中断就叫做硬件中断(Hardware interrupt),譬如:键盘,磁盘机和时钟等外围设备都可以产生硬件中断.外围设备所产生的中断信号都连接到中断控制器,中断控制器可以根据它们

View Article

汇编语言编写DOS下的内存驻留程序(3) (2)

dcolon ;Print a ; ; call dcrlf pop dx ;Restore offset to DX call dsword ;Display offset ret ddword endp ;---------------------------------------------------------------------------- ;DX containes...

View Article


汇编语言编写DOS下的内存驻留程序(2)

基本原理 2.1 8086/8088 IBM PC中央处理单元(Central Processing Unit)是微处理器Inter 8088,8088是8086是小的版本.对于编写程序而言,两者几乎完全相同.两者之间的差别是在于:它们对外的沟通.8086和外界沟通时是经由16位的输入输出通道,内存存取也是每次以16

View Article

汇编语言编写DOS下的内存驻留程序(1)

绪言 0.1 内存驻留与中断 内存驻留程序英文叫Terminate and Stay Resident Program,缩写为TSR.这些程序加载进内存,执行完后,就驻留在内存里,当满足条件时,调到前台来执行。 内存驻留程序的常用形式有: 诸如Borland 的SideKick弹出式实用程序 日历系统 网络服

View Article


汇编语言编写DOS下的内存驻留程序(1) (2)

如果保存(5D06H)和恢复(5D0BH)SDA ,DOS就变成在任何时候都可以重入的了.当DOS处在关键区中时,调用INT 2AH.一旦处在关键区中,就不能改变SDA.在关键区的结束处会 调用INT21H的81H和82H功能. 0.3 内存驻留程序设计一般过程 驻留程序分成两个部分,即暂驻部分和驻

View Article

新手必看-汇编语言超浓缩教程

“ 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB钓一个API就够你忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急,让我把这个中原委慢慢道来:一、所

View Article


新手必看-汇编语言超浓缩教程 (2)

Byte)指令用来告诉DEBUG 将单引号内的所有ASCII 码放入内存中。使用 9H 功能的字符串必须以$结尾。用D命令可用来查看DB伪指令将那些内容放入内存。 6.输入 D100 1975:0100 BA 09 01 B4 09 CD 21 CD-20 75 6E 64 65 72 73 74 ......!. underst 1975:0110 61

View Article

新手必看-汇编语言超浓缩教程 (3)

(逻辑“与”运算:对应位都为1时,其结果为1,其余情况为零)把不要的部份清零,得到结果:先将BL值存入AL中,再利用AND以0Fh(00001111)将AL的左边四位清零。由于0到9的ASCII码为30h到39h,而A到F之ASCII码为41h到46h,间断了7h,所以得到结果:若A

View Article

汇编语言上机过程指导及示例

从如何建立源文件到进行调试作下简要的介绍,并配例题说明。由于本人水平有限,在下文在如有错误及可以进一步修改的地方请大家指出 汇编语言上机过程: 一、上机前的软件准备: MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等) 文本编辑器 (如:EDIT.COM ,

View Article

汇编语言上机过程指导及示例 (2)

A2105: Expected: instruction or directive error.ASM(19): error A2049: Illegal use of register End of file encountered on input file error.ASM(23): warning A4085: End of file, no END directive 51566 +...

View Article


一个汇编hello world程序

TITLE ***HELLO,WORLD进阶程序之选择分支 BY LLUCT*** DATA SEGMENT ;定义数据段 MSG1 DB '***WELCOME TO MY PROGRAM BY LLUCT***','$' ;定义输出的第一个字符串信息,字符串必须用DB定义,$为结束标志 MSG2 DB '1:BASIC MESSAGE 2:ADVANCED MESSAGE','$' ;定

View Article

Browsing latest articles
Browse All 50 View Live




Latest Images