首页
社区
课程
招聘
汇编语言程序设计--笔记
发表于: 2006-3-24 17:20 21264

汇编语言程序设计--笔记

2006-3-24 17:20
21264
              ☆    ??   ☆     
       /●\○    ????    ☆
       /ﻵ\/■\  ??????        宁静致远  
    ?ㄔ?  <| ||    ㄔ?ㄔ?ㄔ?ㄔ?  └┬─-┬┘ 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆☻☆
                                                                                                                           
         看雪学院域名:http://www.pediy.com                    
                                                                                                                        
     本站所有文字和资料版权归原作者所有。如未注明皆归本站。   
        一切商业媒体如要引用本站部分及全部内容请与本站联系!
    网上非盈利媒体请注明出处并告知本站!               
                QQ: 46375143  闲聊莫入                              
      汇编 、C/C++、VC、VB等语言程序设计与交流                 
            
    ★☺★☺★☺★☺★☺★☺★☺★☺★☺★☺★☺★☺★☺★☺★

              汇编语言程序设计
                  -读书笔记
---------- 总      目     录  ------------
---------- 前      言---------------------
---------- 使用的教材        -------------------               
----------        教学特点        ---------------------               
----------        教学内容        ---------------------               
--- 第1章        汇编语言基础知识----------------
--- 第2章        8086的指令系统调试程序DeBug-----
--- 第3章        汇编语言程序格式----------------
--- 第4章        基本汇编语言程序设计------------
--- 第5章        高级汇编语言程序设计------------
--- 第6章        32位指令及其编程----------------                                  
            

我也是学习者,没学完呢,我现在能做的就是边学边发。(除非你希望我学完了再整理打包发给你们) 如果这样做满足不了你的要求,那请你另寻他处。
在学习过程所碰到的问题,希望大家做个记录:
一。我不是讲师,我也是来学习的,所以解答不了你的问题;
二。整理 碰到的问题,为日后汇总做出必要的收集。希望大家能注意这点,把碰到的问题,也发给我一份。先谢谢了!@_@
三。因为我在论坛的权限问题,我每天只能上传1200K的图片,发5篇帖子,自己打字又慢, 延长了很多课程的发布的时间。希望你们多多理解、谅解。
四。请求 斑竹给予 支持与帮助。
五。建议:既然想更好的学习《软件的加密解密》,就需要有汇编基础、英语基础。所以提议再开创两个板块,让初学者步入需要的知识海洋里去畅游。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (88)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
前言:
前言01.      -------免责申明------
    个人说明:网名Emoon ,是一个程序设计爱好者,计算机水平相当与小学4年级。但我相信,通过我的不断学习与努力,一定可以在这里大学毕业。
    我来本论坛的目的:在良好的论坛学习环境中,有国际标准的论坛法则下,历炼自己,以实现最终目标与理想。因为我无数次被同一个问题――“到底学习 加密解密 干什么”所缠绕,但我相信自己,在“看雪论坛”可以找到所要的真正答案。愿与君共勉!

    06年3月24日,刚注册的新用户,我等了24小时终于可以发贴赚YY了。但我实在找不到在哪里发贴好,因为我不甘心在“休闲天地”版块发贴,又担心不经意的冒失引来可被预料的后果,所以才发此贴为自己声明辩护。(在注册帐号和发贴以前,我认真阅读了“提问的智慧”与本论坛相关的各项规章制度及处罚条例)。
    我要发贴的内容,是我学习基础知识和理论知识的过程(笔记)。虽然是一些文字和图片,但我真的用心了,因为我实在想不到在这里有更好的赚YY的方法。

   谁能给点提示“如何赚更多的YY”?

    最后一点提议:加密解密 编程开发 书之专题,三大版块设置下等级限制,比如说:要发贴多少篇达到什么等级才能进入其中1个版块。这样做能促进大家发挥聪明才智 ,写出更多更好的贴和精华贴及有利于脑细胞的新陈代谢,因为有压力才有动力。
     由于人知识水平有限,难免有错误之处,但请大家多多批评指正。
2006-3-24 17:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
前言02.------(此前言摘自http://www.pediy.com,作者“看雪”)------
   在上网前,我电脑知识的获取完全是靠书本和D版光盘,后来在1999年8月份上网后,一下子被这个神奇的网络所吸引,也感觉到自己的知识更加贫乏,通过她学到许多实用的知识。后来想找一些搞解密的朋友交流一下,但十分令人遗憾,那时国内的解密技术资料很缺乏,不成系统,大家交流的也有限,因此就想建个一站点,与大家共同探讨加密与解密的知识。
 在刚上网的一段时间里,在QQ中遇到网友灯心草,谈到共同建立一个解密站点,由于他忙于找工作,我就先尝试着建立了我的第一个主页:看雪学院。为什么取看雪这个名称?由于当时申请QICQ时取呢称时,外面正在下雪,故随意取了个名字"看雪",本想标新立意,没想给以后造成一些误解 ,后来大家都认识我了,也就懒得改名了。
   下面我们就谈谈如何学好这门技术:
  很多人都想学学做cracker,好象破了一个程序很风光的,人人都很佩服。可是做一个cracker其实很累,需花费大量的时间,而且经常会碰壁,三五天毫无进展是极为平常的事情。
  做cracker的五个必要条件是: 1. 知识 2. 经验 3. 感觉 4. 耐心 5. 运气 。
  如果你刚开始学crack,也许你遇到不少麻烦,并且有点想退却,其实你不要着急,只要你认真学习,成功就在眼前。没有人是生来就什么都会的,如果你有问题,就大胆的去问你周围的人,多来我主页论坛请教。计算机水平不高怎么办?没关系,我也不是学计算机的,我自己的专业与电脑不沾边。只要努力学习就能成功。
  所谓知识只要你肯学就可以了,刚入门时如你没汇编知识是不行的,你要掌握一下这门编程语言,能看懂就能上手,但是你想很顺手的话,除了把汇编掌握好,还有编程的基本功夫,保护模式等技术。
  经验是跟你破解软件时间,掌握程度有关,接触多了,拿到一软件应该知道用哪种法比较省事,比较有把握。
  感觉这点不可言传,就象我们做语文题目时,一句话有语法错误一看就知道,这时我们有可能从语法上也说不上什么道道,就知它是错的,这就是语感。我们crack多了,也会有这方面的体会,拿一软件跟踪,到关键点时凭感觉就找到。
  耐心就不多说,成功与失败的关键也在这一步。
  运气也很关键,但运气是建立在你的扎实的基础功上的。
  另外我还要谈的一事是,当cracker目的不是破解软件,而是通过跟踪软件,了解程序思路,这样提高自己,使自己能写出更好的程序。 并且破解不在多,而在于你要掌握它,尽量了解注册码计算原理,最好能写出注册机,不能写也没关系,要弄懂它的算法。
  好了写了这么多到此,目的只是希望初学者们遇到困难时不要灰心,成功就在你们的眼前。
此前言能给您在 软件加密解密 领域里 带来如何思想效果,完全取决于你自己的修为。
2006-3-24 18:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
前言03:   -------- 偶 遇 -------
    我之所以学习汇编,不仅是因为看到这片文章给予的鼓励,还因为偶然接触到网络游戏“大话西游”的超级“跑环外挂”才引发我内心的好学冲动(这个外挂好几百元/月/帐号,而且外不密传,所以知道的人很少)。为什么要提到这个外挂呢,因为这个外挂与其他网络游戏及同游戏的外挂有太大的差别,第一感觉还误以为是木马呢,因为整个文件很小,而且文件里没有发现可执行文件,而且功能比同游戏的所有外挂都强,(大话的跑环很复杂而且NPC会活动及“遇修罗”等等及我不知道的情况)至于挂挂到底有多强,只有用过的和亲眼所见的朋友才清楚。我当时就想,要怎样才能设计这样的挂挂,编程太神秘太神奇了!
   (前言02、03附图,所用的挂是05年的旧版在06年3月登陆大话显示的样子)




图片暂略省:
1.图片大小超过100K
2.没有权限 上传附件
3.未学会图片编辑
4.有时候 文字 没有 图片 产生的效果 好。
提议:
   能否直接把 图片 放到 文章里,至少这个论坛没有开放这个功能,解决像我这样的初级菜鸟 碰到的同类问题。期盼ing......
   在期望斑竹解决此问题前,我不会放弃我继续赚YY的信念,也不会因此打击我的信心,我会尽力尝试用文字表达。
补充:
---1.图片的大小我已经尝试用软件修改成 本论坛 限定图片的大小范围之内
---2.通过我的努力,付出终于得到回报。我已获取我应有的基本权限。
---3.图片的编辑已学会了1种。
---4.期盼 斑竹 给予支持和帮助。

我的笨方法:
1.用QQ的“捕捉屏幕”俗成 抓屏 功能。将图另存入指定目录的文件里。此时的图片格式为 *.bmp。
2.再打开操作系统自带的“画图”工具,(此时你可以编辑原图片)直接用“另存为”,选择存放后的格式,起名字,保存即可。(可被选择的格式很多,推荐使用*.JGP格式,因为此格式的文件大小很小外,图片质量清晰)
3.在本论坛获得“上传附件的权限”后,就可以上传图片等等文件。(具体上传方法请参照论坛的“图片上传”按要求操作即可)
方法总结:
---抓屏获得*.bmp格式→画图工具另存为*.jpg格式→上传附件
现把 图片编辑 的方法告诉大家,仅提供参考。
谁还有更好的方法,还请发出来与大家共享。
希望我们能共同学习,愿与君共勉。
2006-3-24 18:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
使用的教材:  《汇编语言程序设计》第二版 钱晓捷主编 2003.6出版
附书的封皮图

关于 汇编语言程序设计 的教材很多,不一一列举。仅以上图为例的教材为准,是否学习这本书后,还要继续学习更多的关于同类型的汇编书,全看你自己的想法。
2006-3-24 18:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
教学特点:
*采用高版本汇编程序MASM6.11
*采用简化段定义源程序格式
*强调对基础指令的理解和掌握
*重点介绍汇编系统和伪指令基本内容
*强调上机时间,要求熟练进行编程和调试

图片略省,以后补充。
2006-3-24 18:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
教学内容(目录):
******该书共 九 章,最后3章是自学课,不在讲述。*******
--- 第1章  汇编语言基础知识----------------
--- 第2章  8086的指令系统调试程序DeBug-----
--- 第3章  汇编语言程序格式----------------
--- 第4章  基本汇编语言程序设计------------
--- 第5章  高级汇编语言程序设计------------
--- 第6章  32位指令及其编程----------------               
      
图片略省,以后补充。
2006-3-24 18:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
第1章 汇编语言的基础知识
1.1 计算机系统概述(硬件、软件、语言类型)
1.2 数据表示(数制、编码、符号数、二进制运算)
1.3 Intel80x86系列微处理器(8086--P4)
1.4 PC微型计算机系统
1.5 8086微处理器(8086的结构)
1.6 8086的寻址方式(8086寻找操作数的方式)
   要点及习题分析
图片略省,以后补充。
2006-3-24 18:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
1.1 计算机系统概述

1.1.1 计算机的硬件
1.1.2 计算机的软件
1.1.3 计算机程序设计语言

图片略省,以后补充。
2006-3-24 18:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
1.1.1 计算机的硬件
  对汇编语言程序员来说,计算机硬件的结构如下图所示(CPU、存储器、接口、外设)
附图:


运算器的处理对象是数据,所以数据长度和计算机数据表示方法,对运算器的性能影响极大。70年代微处理器常以1个、4个、8个、16个二进制位作为处理数据的基本单位。大多数通用计算机则以16、32、64位作为运算器处理数据的长度。

计算机的基本部件组成是硬件和软件。作用:其硬件作用是运算器是用来实现算术与逻辑运算,控制器主要用来对指令进行译码,并按照译码结果向有关部件发控制信号执行指令。存储器是计算机中用来存储程序和数据的部件。输入设备是用来向计算机输入程序、数据和命令的设备。输出设备是用来输出计算机运算结果、程序清单或加工处理后的结果的设备。

计算机主要性能指标是:字长、运算速度、主频、内存储器容量、外存储器容量。
推荐软件:
超级函数表达式运算器 2.0   http://download.pchome.net/utility/caculate/16433.html
Powerful Calculator 5.10      http://download.pchome.net/utility/caculate/16436.html
2006-3-24 18:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
1.1.1.1 中央处理单元
1.中央处理单元
由三部分组成。
控制器:取指令,经译码分析后发出各种控制命令,如取数、存数、运算等。
运算器:完成各种算术运算和逻辑运算。
寄存器(或寄存器阵列):由多个8位、16位寄存器组成,提供各种操作所需要的数据。
图片略省,以后补充。
2006-3-24 18:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
1.1.1.2 存储器
1)存放程序和数据:可重复读取:新数据覆盖原数据。
2)主存:半导体,速度快,成本高,容量小;
---辅存:软盘、硬盘、光盘;
3)RAM:可读可写,易失性存储器;
---ROM:只读,非易失性存储器;
4)由大量存储单元组成:单位、内容、地址、容量、B(BYTE)、KB、MB、GB、TB等。*****图片略省,以后补充******
辅存:软盘、硬盘、光盘、U盘等。
易失性存储器:关闭电源,设备存放的数据就失去了。
非易失性存储器:关闭电源,里面保存的数据仍然存在,再加电仍然可以使用。
严格来讲,他们之间的换算是 1024倍率
1TB=1024GB、1GB=1024MB、1MB=1024KB、1KB=1024KB、1KB=1024B(Byte)
2006-3-24 18:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
1.1.1.3 外部设备和接口
设备类型:人机交互、机器间通信、外存(可看做I/O设备)
接口:1.接口的必要性:格式转换、电平转换......
------2.接口的组成:三个(组)寄存器;通过寄存器交换数据;
------3.对接口的访问:端口---端口号---端口地址、I/O地址;
*******图片略省,以后补充********
人机交互:例如 键盘、鼠标、显示器等等
机器间通信:调制解调器和一些网络设备等等
外存:外部存储设备可以看作I/O输入输出设备。
接口:格式转换、电平转换、速度匹配等等。例如:鼠标是串行处理,而计算机内部是并行处理,需要进行格式转换。有些设备的电平0和1和机器内部处理的方式不同。
三个(组)寄存器:传送数据、控制、状态寄存器。
2006-3-24 19:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
1.1.2 计算机软件
1.系统软件:面向计算机、由厂家提供:其作用为管理和维护、充分发挥其功能、为用户提供一个方便使用的系统。如操作系统,诊断系统,程序设计语言等
2.应用软件:面向问题、由公司或用户编写
*集成开发环境:开发工具包括文本编辑、翻译程序、调试程序、连接程序等,在DOS时代,其各自是独立的;现在将其集成一个软件,即为“集成开发环境”

图片略省,以后补充
2006-3-24 19:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
1.1.3 计算机的程序设计语言
程序设计语言:低级语言和高级语言。
低级语言:机器语言和汇编语言。
高级语言:C/C++、JAVA、DELPHI、VC、VB.......
图片略省,以后补充。
2006-3-24 19:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
1.1.3.1 机器语言
1.机器语言
指令→机器指令:
机器指令的组成:操作码、操作数;指令系统;
机器语言:指令系统及使用指令系统编写程序的规则。
机器语言特点:计算机唯一能够直接识别的语言。
目标程序:用机器语言描述的程序。
机器语言的致命缺点:难以使用。
如100+256
在8086机器语言程序里:B8 64 00
----------------------05 00 01
----------------------A3 00 20
*****图片略省,以后补充*****
例题100+256在8086指令系统里换算成二进制码如图显示,真的很难记忆和使用。但反过来想,通过换算后的二进制码能看出 指令系统在做什么;也就是说通过跟踪代码可以反推原作者写程序的意图直至构思,你认同这个观点吗?(如果上题再复杂点,代码再庞大些)
2006-3-24 19:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
1.1.3.2 汇编语言
2。汇编语言
汇编指令:用便于记忆、并能描述指令功能的符号表示机器指令→汇编指令(符号指令)。
助记符:表示指令操作码的符号,一般用英语单词或缩写。指令的操作数也用符号表示。
汇编语言:汇编指令及使用汇编指令编写程序的规则。(其他语言要素第三章介绍)
汇编语言(源)程序:事业汇编语言编写的程序。
汇编语言的特点:汇编指令与机器指令一一对应,但相对机器语言易于理解、掌握,当我们用低级语言编写程序时使用汇编语言而不用机器语言。
汇编和汇编程序:汇编→翻译过程  汇编程序→翻译程序。

图片略省,以后补充
2006-3-24 19:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
最后一点提议:加密解密 编程开发 书之专题,三大版块设置下等级限制,比如说:要发贴多少篇达到什么等级才能进入其中1个版块。这样做能促进大家发挥聪明才智 ,写出更多更好的贴和精华贴及有利于脑细胞的新陈代谢,因为有压力才有动力。
你的这个建议会伤害多少像我这样的小学一年级的学生,你知道吗?许多朋友来这儿就是为了学习,虽然笨,但努力了.再说,坛主这儿就是宽容.开放.
2006-3-24 20:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
1.1.3.3 高级语言
机器语言和汇编语言以外的程序设计语言统称高级语言。其特点是更加接近自然语言和惯用的数学表达形式,与计算机硬件结构无关,因而便于使用,便于交流和推广。
总之,高级语言编程效率高,但运行效率低。
高级语言可分成编译型和解释型高级语言,分别使用编译程序和解释程序将源程序翻译成机器语言程序,然后交计算机执行。

图片略省,以后补充。
2006-3-24 20:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
1.1.3.4 汇编语言程序设计的意义
4。汇编语言程序设计的意义:
1)与硬件密切相关,是学习硬件类课程的先行课和基础课。
2)有利于理解计算机的工作原理。
3)可直接而有效地控制硬件。
4)执行效率高,占用空间小。
5)特殊应用只能使用汇编语言,如 加密解密等。
应该指出的是:在计算机速度大大提高和存储器容量大大曾加的今天,高级语言的使用更为广泛和普遍(特别是编写大型程序)。

特殊应用使用汇编语言,如 加密、解密、逆向工程、有害代码的调试等等

图片略省,以后补充。
2006-3-24 20:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
1.2 数据表示
1.2.1 数制
1.2.2 编码
1.2.3 有符号数的表示方法
1.2.4 二进制运算

图片略省,以后补充。
2006-3-24 20:50
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
22
很好很好很好
2006-3-24 20:52
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
23
当BLOG么
2006-3-24 20:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
1.2.1 数制
数制涉及的三个问题,附 1.2.1数制 图


二进制、八进制、十进制、十六进制等等,还有更多的进制数符集。是否学习掌握了其中的一种,就可以理解或掌握了以后演变而来的更多进制数符集?

参考资料:大学教材<计算机文化基础>
位,字节,bit,二进制位的意思和关系?
"位"是表示"数权值"(权位),即我门在十进制中说的"个位","十位"一样.基数"R"是随着使用的进制变化而变化,在二进制中R=2、在十进制中R=10、在K进制里R=K。
一。权位:
1整数部分的权位容易容易理解。(权位从右向左0、1、2到K)
2.小数部分,以小数点为起点由左向右(权位依次是0、1、2到K);以小数点为起点由左向右(权为依次-1、-2到-K)。
3.有符号部分,+(正)数当做整数部分依次从右向左展开权位。-(负)数依次从左向右展开(-1、-2到-K)。
二。举例展开权位:
表示形式:数字xR的D次方.D等于该数字所在位的数权值.
1)整数部分:例如,二进制数{11101}B或{-11101}b :
分析:(R=2)、(D=权位)、(这里打不出 数的次方)
1xR[的D次方]+1xR[的D次方]+1R[的D次方]+0xR[的D次方]+1xR[的D次方],即1x2[的4次方]+1x2[的3次方]+1x2[的2次方]+0x2[的1次方]+1x2[的0次方]=16+8+4+0+1={11101}B
字节是计算机中存储的最小单位,一个字节(Byte)是一个8位的二进制,所以说一个字节为8位即8bit.
比特(Bit)是数据的最小单位,但在计算机中数据的存储却是一字节(8Bit)来存储的.
ASCII表(美国标准信息交换表)中对字符的编号是一个8位的2进制,所以在计算机中用1个字节来表示1个英文字母.而在汉字中,表示一个汉字需要16位的2进制数,所以存储一个汉字要2字节.

2006-3-24 21:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
这么发,什么时候才能发完啊!看了没有完结的。
2006-3-24 22:26
0
游客
登录 | 注册 方可回帖
返回
//