回 帖 发 新 帖 刷新版面

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

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

在汇编语言中,寄存器用名字来访问. CPU 寄存器有好几类, 分别有不同的用处:

1. 通用寄存器:
EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP(这个虽然通用,但很少被用做除了堆栈指针外的用途)

这些32位可以被用作多种用途,但每一个都有"专长". EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器. EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址. ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器. EDX是...(忘了..哈哈)但它总是被用来放整数除法产生的余数. 这4个寄存器的低16位可以被单独访问,分别用AX,BX,CX和DX. AX又可以单独访问低8位(AL)和高8位(AH), BX,CX,DX也类似. 函数的返回值经常被放在EAX中.

ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串.

EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码:

push ebp ;保存当前ebp
mov ebp,esp ;EBP设为当前堆栈指针
sub esp, xxx ;预留xxx字节给函数临时变量.
...

这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址和参数. EBP下方则是临时变量. 函数返回时作 mov esp,ebp/pop ebp/ret 即可.

ESP 专门用作堆栈指针.

2. 段寄存器:
CS(Code Segment,代码段) 指定当前执行的代码段. EIP (Instruction pointer, 指令指针)则指向该段中一个具体的指令. CS:EIP指向哪个指令, CPU 就执行它. 一般只能用jmp, ret, jnz, call 等指令来改变程序流程,而不能直接对它们赋值.
DS(DATA SEGMENT, 数据段) 指定一个数据段. 注意:在当前的计算机系统中, 代码和数据没有本质差别, 都是一串二进制数, 区别只在于你如何用它. 例如, CS 制定的段总是被用作代码, 一般不能通过CS指定的地址去修改该段. 然而,你可以为同一个段申请一个数据段描述符"别名"而通过DS来访问/修改. 自修改代码的程序常如此做.
ES,FS,GS 是辅助的段寄存器, 指定附加的数据段.
SS(STACK SEGMENT)指定当前堆栈段. ESP 则指出该段中当前的堆栈顶. 所有push/pop 系列指令都只对SS:ESP指出的地址进行操作.

3. 标志寄存器(EFLAGS):

该寄存器有32位,组合了各个系统标志. EFLAGS一般不作为整体访问, 而只对单一的标志位感兴趣. 常用的标志有:

进位标志C(CARRY), 在加法产生进位或减法有借位时置1, 否则为0.
零标志Z(ZERO), 若运算结果为0则置1, 否则为0
符号位S(SIGN), 若运算结果的最高位置1, 则该位也置1.
溢出标志O(OVERFLOW), 若(带符号)运算结果超出可表示范围, 则置1.

JXX 系列指令就是根据这些标志来决定是否要跳转, 从而实现条件分枝. 要注意,很多JXX 指令是等价的, 对应相同的机器码. 例如, JE 和JZ 是一样的,都是当Z=1是跳转. 只有JMP 是无条件跳转. JXX 指令分为两组, 分别用于无符号操作和带符号操作. JXX 后面的"XX" 有如下字母:

无符号操作: 带符号操作:
A = "ABOVE", 表示"高于" G = "GREATER", 表示"大于"
B = "BELOW", 表示"低于" L = "LESS", 表示"小于"
C = "CARRY", 表示"进位"或"借位" O = "OVERFLOW", 表示"溢出"
S = "SIGN", 表示"负"
通用符号:
E = "EQUAL" 表示"等于", 等价于Z (ZERO)
N = "NOT" 表示"非", 即标志没有置位. 如JNZ "如果Z没有置位则跳转"
Z = "ZERO", 与E同.

如果仔细想一想,就会发现 JA = JNBE, JAE = JNB, JBE = JNA, JG = JNLE, JGE= JNL, JL= JNGE, ....

4. 端口

端口是直接和外部设备通讯的地方。外设接入系统后,系统就会把外设的数据接口映射到特定的端口地址空间,这样,从该端口读入数据就是从外设读入数据,而向外设写入数据就是向端口写入数据。当然这一切都必须遵循外设的工作方式。端口的地址空间与内存地址空间无关,系统总共提供对64K个8位端口的访问,编号0-65535. 相邻的8位端口可以组成成一个16位端口,相邻的16位端口可以组成一个32位端口。端口输入输出由指令IN,OUT,INS和OUTS实现,具体可参考汇编语言书籍。

回复列表 (共153个回复)

91 楼


GOOD

92 楼

还可以^_^

93 楼

进位标志C(CARRY), 在加法产生进位或减法有借位时置1, 否则为0. 
零标志Z(ZERO), 若运算结果为0则置1, 否则为0 
符号位S(SIGN), 若运算结果的最高位置1, 则该位也置1. 
溢出标志O(OVERFLOW), 若(带符号)运算结果超出可表示范围, 则置1. 
我个人觉得有点问题,,在我所了解的汇编里面:
进位标志CF
零标志ZF
符号位SF
溢出标志OF
不知道我所了解的是否正确!

94 楼

[em11]比书上详细一点呢,顶一下啊

95 楼

我看是看不懂的了!但是,从感觉上来说是写的非常的好!~

96 楼

▆▆◣本站提供下列各种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解密软件


97 楼

我是一名初学者,但是着个东西很抽象,怎么也不是很明白,该怎么办???????????

98 楼

楼主发的帖子很好
不知道楼主有没有汇编语言的考试资料啊
比如,试题和参考答案什么的

99 楼


[em2][em11]
很好啊!!!!!!!!

100 楼

唉,我这学期啥都没学到。。

我来回复

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