回 帖 发 新 帖 刷新版面

主题:汇编语言的准备知识(2)

汇编语言的准备知识--给初次接触汇编者(2)

汇编指令的操作数可以是内存中的数据, 如何让程序从内存中正确取得所需要的数据就是对内存的寻址.

INTEL 的CPU 可以工作在两种寻址模式:实模式和保护模式. 前者已经过时,就不讲了, WINDOWS 现在是32位保护模式的系统, PE 文件就基本是运行在一个32位线性地址空间, 所以这里就只介绍32位线性空间的寻址方式.

其实线性地址的概念是很直观的, 就想象一系列字节排成一长队,第一个字节编号为0, 第二个编号位1, .... 一直到4294967295(十六进制FFFFFFFF,这是32位二进制数所能表达的最大值了). 这已经有4GB的容量! 足够容纳一个程序所有的代码和数据. 当然, 这并不表示你的机器有那么多内存. 物理内存的管理和分配是很复杂的内容, 初学者不必在意, 总之, 从程序本身的角度看, 就好象是在那么大的内存中.

在INTEL系统中, 内存地址总是由"段选择符:有效地址"的方式给出.段选择符(SELECTOR)存放在某一个段寄存器中, 有效地址则可由不同的方式给出. 段选择符通过检索段描述符确定段的起始地址, 长度(又称段限制), 粒度, 存取权限, 访问性质等. 先不用深究这些, 只要知道段选择符可以确定段的性质就行了. 一旦由选择符确定了段, 有效地址相对于段的基地址开始算. 比如由选择符1A7选择的数据段, 其基地址是400000, 把1A7 装入DS中, 就确定使用该数据段. DS:0 就指向线性地址400000. DS:1F5278 就指向线性地址5E5278. 我们在一般情况下, 看不到也不需要看到段的起始地址, 只需要关心在该段中的有效地址就行了. 在32位系统中, 有效地址也是由32位数字表示, 就是说, 只要有一个段就足以涵盖4GB线性地址空间, 为什么还要有不同的段选择符呢? 正如前面所说的, 这是为了对数据进行不同性质的访问. 非法的访问将产生异常中断, 而这正是保护模式的核心内容, 是构造优先级和多任务系统的基础. 这里有涉及到很多深层的东西, 初学者先可不必理会.

有效地址的计算方式是: 基址+间址*比例因子+偏移量. 这些量都是指段内的相对于段起始地址的量度, 和段的起始地址没有关系. 比如, 基址=100000, 间址=400, 比例因子=4, 偏移量=20000, 则有效地址为:

100000+400*4+20000=100000+1000+20000=121000. 对应的线性地址是400000+121000=521000. (注意, 都是十六进制数).

基址可以放在任何32位通用寄存器中, 间址也可以放在除ESP外的任何一个通用寄存器中. 比例因子可以是1, 2, 4 或8. 偏移量是立即数. 如: [EBP+EDX*8+200]就是一个有效的有效地址表达式. 当然, 多数情况下用不着这么复杂, 间址,比例因子和偏移量不一定要出现.

内存的基本单位是字节(BYTE). 每个字节是8个二进制位, 所以每个字节能表示的最大的数是11111111, 即十进制的255. 一般来说, 用十六进制比较方便, 因为每4个二进制位刚好等于1个十六进制位, 11111111b = 0xFF. 内存中的字节是连续存放的, 两个字节构成一个字(WORD), 两个字构成一个双字(DWORD). 在INTEL架构中, 采用small endian格式, 即在内存中,高位字节在低位字节后面. 举例说明:十六进制数803E7D0C, 每两位是一个字节, 在内存中的形式是: 0C 7D 3E 80. 在32位寄存器中则是正常形式,如在EAX就是803E7D0C. 当我们的形式地址指向这个数的时候,实际上是指向第一个字节,即0C. 我们可以指定访问长度是字节, 字或者双字. 假设DS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX]指向第一个字节0C:

mov AL, byte ptr DS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX] ;把字节0C存入AL
mov AX, word ptr DS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX] ;把字7D0C存入AX
mov EAX, dword ptr DS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX] ;把双字803E7D0C存入EAX

在段的属性中,有一个就是缺省访问宽度.如果缺省访问宽度为双字(在32位系统中经常如此),那么要进行字节或字的访问,就必须用byte/word ptr显式地指明.

缺省段选择:如果指令中只有作为段内偏移的有效地址,而没有指明在哪一个段里的时候,有如下规则:

如果用ebp和esp作为基址或间址,则认为是在SS确定的段中;
其他情况,都认为是在DS确定的段中。

如果想打破这个规则,就必须使用段超越前缀。举例如下:

mov eax, dword ptr [edx] ;缺省使用DS,把DS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX]指向的双字送入eax
mov ebx, dword ptr ES[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX] ;使用ES:段超越前缀,把ES[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]EDX]指向的双字送入ebx

堆栈:

堆栈是一种数据结构,严格地应该叫做“栈”。“堆”是另一种类似但不同的结构。SS 和 ESP 是INTEL对栈这种数据结构的硬件支持。push/pop指令是专门针对栈结构的特定操作。SS指定一个段为栈段,ESP则指出当前的栈顶。push xxx 指令作如下操作:

把ESP的值减去4;
把xxx存入SS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]ESP]指向的内存单元。

这样,esp的值减小了4,并且SS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]ESP]指向新压入的xxx. 所以栈是“倒着长”的,从高地址向低地址方向扩展。pop yyy 指令做相反的操作,把SS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]ESP]指向的双字送到yyy指定的寄存器或内存单元,然后把esp的值加上4。这时,认为该值已被弹出,不再在栈上了,因为它虽然还暂时存在在原来的栈顶位置,但下一个push操作就会把它覆盖。因此,在栈段中地址低于esp的内存单元中的数据均被认为是未定义的。

最后,有一个要注意的事实是,汇编语言是面向机器的,指令和机器码基本上是一一对应的,所以它们的实现取决于硬件.有些看似合理的指令实际上是不存在的,比如:

mov DS[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]edx], ds[IMG]http://www.netxeyes.org/image/bbs3000/angel_smile.gif[/IMG]ecx] ;内存单元之间不能直接传送
mov DS, 1A7 ;段寄存器不能直接由立即数赋值
mov EIP, 3D4E7 ;不能对指令指针直接操作.

回复列表 (共80个回复)

51 楼

楼主要把帖子编辑一下啦,不要使用论坛的表情符号才可以啦,这样都不知道看些什么....^&^

52 楼

把DS设成0就是了三

53 楼

回复2楼,可以在qq表情中复制

54 楼

看以这么多的爱号者,也弄的我热血沸腾啊,我要努力了,

55 楼

刚刚入门

56 楼

▆▆◣本站提供下列各种PLC型号解密软件(详情请来电咨询)

1.    西门子PLC解密软件(专用解密电缆): 可以解S7-200全系列PLC密码(212、214、215、216、222、224、224XP、226、226XM),无需拆机解密,安全可靠,直接读取PLC系统密码、解密时间只需1秒,不破坏PLC程序. 无限制次使用。欢迎光临本站!http://plc.tf168.cn

3.    西门子PLC解密软件(USB硬件狗):S7-200全系列PLC解密软件,直接用PC/PPI编程电缆从编程通信口读出密码,可解系统密码和子程序密码。解密时间只需1秒,不损坏PLC数据,安全快捷、100%可靠。(无限制次使用)欢迎光临本站!http://plc.tf168.cn

4.    西门子PLC解密软件((拆芯片解密)):本解密配备一个24C系列IC专用读写器,用PC的COM口工作,不用接外部电源,对于S7-200的全系列PLC,只要是用24C系列的芯片全部能解,不受PLC的版本的限制,把PLC的存储芯片24Cxx拆下,装入解密器可读出密码。可解系统密码和子程序密码。欢迎光临本站!http://plc.tf168.cn

5.    三菱Fx系列PLC解密软件: 该解密软件能在0.5秒钟内解读FX0 、FX0S 、FX0N 、FX1N 、FX1S 、FX2 、FX2N、 FX2NC PLC 8位密码,正常的读出PLC程序,不破坏PLC内任何寄存器数据,100%可靠。该解密软件不受使用次数与安装次数限制,不用注册,可完全的复制,是不可多得的三菱PLC软件解密技术,值得大家收藏。欢迎光临本站!http://plc.tf168.cn

6.    三菱A系列PLC解密软件:该解密软件能在0.1秒钟内解出PLC型号(A1S-S1、A1SH、A1SJH、A2N-S1、A2SH-S1、A2AS-S1、A2USH-S1)系列CPU密码。以上CPU型号已全部通过测试成功。安全可靠欢迎光临本站!http://plc.tf168.cn

7.    三菱触摸屏解密软件:可解型号(F920、F930、F940、A960,A970,A975,A985)系列GOT密码。(复制版,没有使用次数与安装次数限制,不用注册,不破坏内任何寄存器数据,安全可靠,可完全的复制)解密时间只需0.5秒欢迎光临本站!http://plc.tf168.cn

8.    欧姆龙PLC解密软件(4位密码): 可解旧版C系列PLC型号(CPM1A、CPM2A、C200H、CQM1、CQM1A)系列4位CPU密码。该解密软件采用列举法,从0000到FFFF进行测试,当测试的密码正确后,程序便停止,不会破坏内部的任何数据。有密码清除功能(欧姆龙全系列),不用注册,可完全的复制欢迎光临本站!http://plc.tf168.cn

9.    欧姆龙PLC解密软件(8位密码): 可解新版PLC型号(CMP1、CPM1A、CPM2A、C200H、CQM1、CJ1M 、CJ1W、CJG)系列8位CPU密码。该解密软件采用列举法,当测试的密码正确后,程序便停止,不会破坏内部的任何数据,时间较长,不用注册,可完全的复制欢迎光临本站!http://plc.tf168.cn

10.    松下PLC解密软件:可解PLC型号(FP0、FP1、FP2、FP2SH、FP3、FPM、FPC、FP5、FP10、FP10S、FP10SH)系列CPU密码。该解密软件采用列举法,从0000到FFFF进行测试,当测试的密码正确后,程序便停止,不会破坏内部的任何数据。不用注册,可完全的复制欢迎光临本站!http://plc.tf168.cn

11.    富士PLC解密软件:可解PLC型号(NB、NJ、NS、SPB)系列CPU密码。(复制版,没有使用次数与安装次数限制,不用注册,不破坏PLC内任何寄存器数据,安全可靠,可完全的复制)解密时间只需0.5秒欢迎光临本站!http://plc.tf168.cn

12.    LG PLC解密软件:可解PLC型号(K10、K30、K60、K80、K100、K120、K120S(E)、K200、K300、K1000)系列CPU密码。(复制版,没有使用次数与安装次数限制,不用注册,不破坏PLC内任何寄存器数据,安全可靠,可完全的复制)解密时间只需0.5秒欢迎光临本站!http://plc.tf168.cn

13.    永宏PLC解密软件:可解PLC型号(FB、FBA、FBN、FBE、FBS、包括ID密码)系列CPU密码。(复制版,没有使用次数与安装次数限制,不用注册,不破坏PLC内任何寄存器数据,安全可靠,可完全的复制)解密时间只需0.5秒欢迎光临本站!http://plc.tf168.cn

14.    施耐德PLC解密软件:可解PLC型号Twido 全系列CPU密码。欢迎光临本站!http://plc.tf168.cn

15.    GP触摸屏解密软件:可解PLC型号GP全系列密码. 复制版,没有使用次数与安装次数限制,不用注册,不破坏PLC内任何寄存器数据,安全可靠,可完全的复制,解密时间只需0.5秒欢迎光临本站!http://plc.tf168.cn

16.    台达PLC解密软件: 可解PLC型号DVP24/32/60ES00R/T,DVP14/24/32/60ES01R/T CPU密码。其它台达系列CPU密码。(复制版,没有使用次数与安装次数限制,不用注册,不破坏PLC内任何寄存器数据,安全可靠,可完全的复制)解密时间只需1秒  http://plc.tf168.cn

17.    AB PLC解密软件:可解SLC500、ML1200 PLC系列CPU密码欢迎光临本站!http://plc.tf168.cn

联系人:吴小姐
电子邮件:plc808@163.COM     QQ:121667231
欢迎光临本站!http://plc.tf168.cn
 

工控论坛 变频器论坛 可编程PLC论坛 低压电器论坛 工控资料 工控下载 变频器论坛 中国工控论 传感器 仪器仪表 plc password CRACK s7 200 password CRACK s7-200 解密软件  s7200解密软件 工控大世界 工控资料下载 最新工控软件破解下载 组态软件破解 破解论坛 工程论坛plc解密软件 触摸系统  PLC系统 工控代理 工程设计 技术平台 工控资讯  模具设计  联系方式 留言本  PLC破解  解码PLC解密软件 西门子PLC解密软件,S7-200解密软件 三菱PLC解码软件,富士PLC解码软件,松下PLC解码软件,LG-PLC解密码软件,台达PLC解密码软件  三菱PLC学习网 工控软件 电工 大型 工控 自动化论坛 西门子S7-200论坛 西门子S7-200 PLC口令 西门子S7-200 PLC解密 S7-300\400 PLC解密 西门子S7-200 CPU密码和POU密码  S7-200密码破解软件下载 成功用软件读得CPU的密码和POU密码 PLC解密PLC 低压电器 PLC密码 电子电工 PLC培训软件  PLC培训班 PLC培训资料 PLC培训中心 视频资源 视频教程 提供400G 超大型工控自动化学习软件 资源站  提供大量 工控 自动化 PLC 电子电工 綠色解密軟體 解密軟體 PLC解密軟體 觸摸屏解密軟體 三菱解密軟體  PLC解密軟體:松下FP系列PLC解密軟體:歐姆龍C系列PLC解密軟體   PLC解密軟體 西門子PLC解密軟體  三菱PLC解密軟體  富士PLC解密軟體  松下PLC解密軟體  LG-PLC解密軟體   解密軟體  松下解密  解密軟體 三菱PLC解密 歐姆龍PLC解密軟體  西門子PLC解密  松下PLC解密軟體  PLC解码 PLC密码 变频器 软件包 PLC培训资料 PLC培训中心 PLC编程资料  plc编程软件 组态软件  机械设计资料 电器资料  自动化技术资料 PLC中文网 可编程控制器  工控编程电缆 plc电缆 编程软件  三菱工控  三菱机电 三菱电机 深圳工控  配电柜管理软件 统计软件  工控资料 免费下载  工控资料下载  工控软件免费下载 工控软件下载 自动化软件免费下载论坛  自控资料下载 自控资料免费下载论坛 自控软件下载论坛 自控软件免费下载论坛 工控资料软件下载服务中心 工控软件、资料下载  工控资料下载网 工控软件下载 欧姆龙OMRON PLC工控技术资料免费下载  工控与变频网 工控  工控产品大全 plc编程软件 plc编程手册 plc编程 plc资料 plc论坛 plc报价 plc编程实例  vb与plc通讯 s7 200 password CRACK plc触摸屏  plc网站  plc简介 plc模拟  plc电梯程序  欧姆龙plc编程电缆  plc如何加密 口令 plc使用说明 口令  vb访问欧姆龙plc  我们经常遇到一些加密的PLC,不能直接读出程序,并进行改进学习,在工作实践中总结出解开PLC密码的方法,使解密更加方便,因此编写了此解密程序,直接读出PLC的密码,目前已经开发了三菱/松下/欧姆龙/LG/富士/台达/永宏/美国AB等的PLC/触摸屏系列解密软件。为了大家共同学习 s7 200 解密 s7 200程序解密 s7 200plc解密 s7功能块解密  西门子s7  300 解密SIEMENS 西门子plc解密型号包含:s7-212解密 s7-214解密 s7-215解密 s7-216解密 s7-222解密 s7-2224解密 s7-226解密 s7-226xm解密 包含西门子s7200 全系列解密  解密CQM1H s7 200解密 s7 200程序解密  s7 200plc解密  s7功能块解密   西门子s7 300解密 siemens s7 200 西门子plc解密软件 plc解密 西门子 plc解密软件下载 西门子plc软件下载 工控软件 工控解密     解密软件  光盘解密软件  rar解密软件 s7 200解密 s7 200程序解密 s7 200plc解密   s7功能块解密  s7 300解密 siemens s7 200  s7-216解密 s7-222解密 s7-224解密 s7-226解密 s7-226xm解密 CQM1H解密  FX3UC使用手冊(硬體篇)  FX3U用戶手冊(硬體手冊)   FX3U基本應用指令說明書  欧姆龙C200H, C200HS, C1000H, C2000H, CPM1, CPM2*-S*, CQM1, IDSC,C200HX 西门子plc编 什么是plc plc教程 plc论坛|ab plc plc原理 plc应用 三菱plc编程软件  omron plc plc培训 lg plc plc编程软件 plc学习 plc解密软件 欧姆龙plc 二手PLC  台达plc plc课件 三菱plc编程手册 西门子plc编程实例 plc程序 富士plc|plc论文 plc软件 plc可编程控制器|国产plc编程软件下载siemens plc  plc防盗器 西门子plc编程软件 plc资料|plc编程器|plc控制系统 ge plc 永宏plc 欧姆龙plc软件 plc入门 二手PLC  二手变频器  二手PLC解密软件


57 楼

谢谢!好多笑脸啊.

58 楼


    请问您用的是清华大学的那一本书,我是说学习汇编语言的书籍,适合于初学者的,16位寄存器的那一本,那里可以买到这本书,书的全名叫什么?
    谢谢!

59 楼

好呵

60 楼

汇编只要学成了就简单多了...大家加油啊.....

我来回复

您尚未登录,请登录后再回复。点此登录或注册