agyf 发表于 2011-8-3 14:40:11

最新 80x86汇编语言程序设计教程 电子书下载 【查阅】

本书分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台,以MASM和TASM为汇编器,介绍汇编语言的有关概念,讲解汇编语言程序设计技术。第二部分是提高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关概念,系统和详细地讲解了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三部分是上机实验指导。
本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。

**** Hidden Message *****

superniya 发表于 2011-9-28 04:03:03

看看!!!!!!!

949536395 发表于 2013-4-20 12:03:42

看看!!!!!!!

痛时也要笑 发表于 2013-9-10 13:40:50

看看怎么样

痛时也要笑 发表于 2013-9-10 13:41:20

看看怎么样

gameboy2013 发表于 2013-9-18 15:14:52

顶,顶,顶   顶,顶,顶

qunimade 发表于 2014-1-30 21:02:53

子程序 进图CALL, , 公开
.参数 区域id, 整数型, , 3-塔
.参数 位置id, 整数型, , 7-塔
.局部变量 c1, 整数型
.局部变量 c2, 整数型
.局部变量 c3, 整数型
.局部变量 loc1, 整数型
.局部变量 ebp_14, 整数型

c1 = 十六到十 (搜索_X轴参数 ()) ' 0128 X轴参数十进制
c2 = 十六到十 (搜索_Y轴参数 ()) ' 0128 Y轴参数十进制
c3 = 十六到十 (搜索_Z轴参数 ()) ' 0128 Z轴参数十进制
loc1 = 0
ebp_14 = 十六到十 (搜索_城镇参数 ()) ' 0128 头部参数

置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 15, 255, 85, 252 }) ' 0x26是城内移动;0x7是返回角色 0x0f是打开选图 0x2D是回城

loc1 = 3 ' 区域
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节

loc1 = 7 ' 区域中的位置。6在格兰就是进副本那。就是区域中的小区域。7是西海岸的塔 遗迹门口(4,3),雪域门口(5,2)
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节

loc1 = 120 ' 450 120
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节

loc1 = 300 ' 350 300
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节

loc1 = 5 ' z? 5这个没什么效果,不知道是不 是 Z 轴,注意是1字节。反正游戏里都是5。
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
置入代码 ({ 255, 85, 244 }) ' send

.子程序 扩大范围CALL, , 公开
.参数 基址, 整数型
.参数 伤害12345, 整数型
.参数 技能, 整数型
.局部变量 代码12345, 字节集

置汇编代码({ })
Pushad ()
Mov_ESI_Ptr (基址)
Push (0)
Push (0)
Mov_ECX_ESI ()
Mov_EDX_Ptr_ECX_Add (0)
Mov_EAX_EDX ()
Add_EAX (十六到十 (到文本 (“320”))) ' 原本30C
Mov_EBX_Ptr_EAX_Add (0)
Mov_EAX_Ptr (十六到十 (搜索_技能参数1 ())) ' 技能1
Mov_ECX_Ptr (十六到十 (搜索_技能参数2 ())) ' 技能2
Push_EAX ()
Push (1000) ' 这里写0范围不变 写1000扩大
Push (0)
Push (4)
Push (0)
Push (0)
Push (0)
Push (0)
Push (0)
Push (到数值 (伤害12345)) ' 伤害
Push (到数值 (技能)) ' 代码
Mov_ECX_ESI ()
Call_EBX ()
Popad ()
ret( ) '
代码12345 = 取汇编代码( )
调用代码 (代码12345)

.子程序 过图CALL, , 公开
.参数 Direction, 整数型, , 0123左右上下,4是上塔,8无视队友
.局部变量 local1, 整数型
.局部变量 local2, 整数型

local1 = 十六到十 (搜索_商店基址 ()) - 8
local2 = 十六到十 (搜索_过图调用代码 ()) ' 过图CALL的十进制
置入代码 ({ 96, 139, 141, 252, 255, 255, 255, 139, 9, 139, 137, 32, 160, 32, 0, 139, 137, 92, 0, 0, 0, 255, 181, 8, 0, 0, 0, 255, 149, 248, 255, 255, 255, 97 })

.子程序 无敌CALL, , 公开, 0无敌,1不无敌
.参数 对象地址, 整数型
.参数 数值, 整数型

置入代码 ({ 139, 117, 8, 139, 54, 139, 6, 255, 117, 12, 139, 206, 255, 144, 52, 3, 0, 0 })

.子程序 _无敌时钟_周期事件, , 公开, 0无敌,1不无敌
.局部变量 地址1, 整数型
.局部变量 人物基址, 文本型

人物基址 = 十六到十 (搜索_人物基址 ())
地址1 = 内存操作.读整数 (内存操作.读整数 (人物基址) + 十六到十 (“E0”))
.如果真 (地址1 ≤ 0)
返回 () ' “图外”
.如果真结束
无敌调用代码 (十六到十 (搜索_人物基址 ()), 0)

.子程序 自身全屏CALL
.参数 触发基址, 整数型
.参数 攻击代码, 整数型
.参数 技能伤害, 整数型
.参数 攻击个数, 整数型
.局部变量 JiZhi, 整数型
.局部变量 JiCi, 整数型
.局部变量 PianYi, 整数型
.局部变量 BianLi, 整数型
.局部变量 x轴, 整数型
.局部变量 y轴, 整数型
.局部变量 z轴, 整数型
.局部变量 阵营, 整数型
.局部变量 ShuLiang, 整数型

JiZhi = 内存操作.读代码 (搜索_人物基址 () + “+e0+90”)
.变量循环首 (0, 220, 1, JiCi)
PianYi = 4 + 4 × JiCi
BianLi = 内存操作.读整数 (JiZhi + PianYi)
阵营 = 内存操作.读整数 (BianLi + 1236)
.如果真 (阵营 > 0 且 阵营 < 200)
阵营 = 内存操作.读整数 (BianLi + 188)
.如果真 (阵营 = 529 或 阵营 = 273 或 阵营 = 545)
x轴 = 内存操作.读小数 (BianLi + 388)
y轴 = 内存操作.读小数 (BianLi + 392)
z轴 = 内存操作.读小数 (BianLi + 396)
.如果真 (触发基址 > 0)
白色模拟调用代码 (触发基址, 攻击代码, 技能伤害, x轴, y轴, z轴, 0, 0)
ShuLiang = ShuLiang + 1
.如果真 (ShuLiang = 攻击个数)
跳出循环 ()
.如果真结束

.如果真结束

.如果真结束

.如果真结束

.变量循环尾 ()

.子程序 物品CALL, , 公开
.参数 物品基址, 整数型
.参数 物品代码, 整数型
.局部变量 代码, 字节集

置汇编代码({ })
Pushad ()
Mov_ECX_Ptr (物品基址)
Mov_EDX_Ptr_ECX_Add (0)
Mov_EAX_EDX ()
Add_EAX (十六到十 (搜索_物品栏偏移 ()))
Mov_EBX_Ptr_EAX_Add (0)
Push (物品代码)
Call_EBX ()
Popad ()
ret( )
代码 = 取汇编代码( )
调用代码 (代码)
内存优化 ()

.子程序 动作CALL, , 公开
.参数 基址, 整数型
.参数 动作ID, 整数型
.局部变量 代码3, 字节集

置汇编代码({ })
Pushad ()
Mov_ESI_Ptr (基址)
Mov_EAX_Ptr_ESI ()
Add_EAX (十六到十 (搜索_动作偏移 ()))
Push (0)
Push (0)
Push (0)
Push (0)
Push (动作ID)
Mov_ECX_ESI ()
Call_Ptr_EAX ()
Popad ()
ret( )
代码3 = 取汇编代码 ()
调用代码 ( 代码3, )

.子程序 死亡CALL, , 公开, 调用方法: 死亡CALL(十六到十(#人物基址),1) 互秒:死亡CALL(#攻击对象, 1)
.参数 地址, 整数型
.参数 数值, 整数型

置入代码 ({ 96, 139, 181, 8, 0, 0, 0, 139, 54, 139, 6, 139, 206, 255, 144, 128, 4, 0, 0, 97 })

.子程序 城镇CALL, , 公开
.参数 区域id, 整数型, , 3-塔
.参数 位置id, 整数型, , 7-塔
.局部变量 c1, 整数型
.局部变量 c2, 整数型
.局部变量 c3, 整数型
.局部变量 loc1, 整数型
.局部变量 ebp_14, 整数型

c1 = 十六到十 (搜索_X轴参数 ()) ' 0128 X轴参数十进制
c2 = 十六到十 (搜索_Y轴参数 ()) ' 0128 Y轴参数十进制
c3 = 十六到十 (搜索_Z轴参数 ()) ' 0128 Z轴参数十进制
loc1 = 0
ebp_14 = 十六到十 (搜索_城镇参数 ()) ' 0128 头部参数
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 38, 255, 85, 252 }) ' 0x26是城内移动;0x7是返回角色 0x0f是打开选图 0x2D是回城
loc1 = 区域id ' 区域
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
loc1 = 位置id ' 区域中的位置。6在格兰就是进副本那。就是区域中的小区域。7是西海岸的塔 遗迹门口(4,3),雪域门口(5,2)
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
loc1 = 120 ' x
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节
loc1 = 300 ' y
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节
loc1 = 5 ' z?这个没什么效果,不知道是不 是 Z 轴,注意是1字节。反正游戏里都是5。
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
置入代码 ({ 255, 85, 244 }) ' send

.子程序 返回角色CALL, , 公开
.局部变量 c1, 整数型
.局部变量 c2, 整数型
.局部变量 c3, 整数型
.局部变量 loc1, 整数型
.局部变量 ebp_14, 整数型

c1 = 十六到十 (搜索_X轴参数 ()) ' 0128 X轴参数十进制
c2 = 十六到十 (搜索_Y轴参数 ()) ' 0128 Y轴参数十进制
c3 = 十六到十 (搜索_Z轴参数 ()) ' 0128 Z轴参数十进制
loc1 = 0
ebp_14 = 十六到十 (搜索_城镇参数 ()) ' 0128 头部参数
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 104, 7, 0, 0, 0, 255, 149, 252, 255, 255, 255 }) ' 0x26是城内移动;0x7是返回角色 0x0f是打开选图 0x2D是回城
loc1 = 3 ' 区域
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
loc1 = 7 ' 区域中的位置。6在格兰就是进副本那。就是区域中的小区域。7是西海岸的塔 遗迹门口(4,3),雪域门口(5,2)
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
loc1 = 120 ' 450 120
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节
loc1 = 300 ' 350 300
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节
loc1 = 5 ' z? 5这个没什么效果,不知道是不 是 Z 轴,注意是1字节。反正游戏里都是5。
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
置入代码 ({ 255, 85, 244 }) ' send

.子程序 回城CALL, , 公开
.局部变量 c1, 整数型
.局部变量 c2, 整数型
.局部变量 c3, 整数型
.局部变量 loc1, 整数型
.局部变量 ebp_14, 整数型

c1 = 十六到十 (搜索_X轴参数 ()) ' 0128 X轴参数十进制
c2 = 十六到十 (搜索_Y轴参数 ()) ' 0128 Y轴参数十进制
c3 = 十六到十 (搜索_Z轴参数 ()) ' 0128 Z轴参数十进制
loc1 = 0
ebp_14 = 十六到十 (搜索_城镇参数 ()) ' 0128 头部参数
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 104, 45, 0, 0, 0, 255, 149, 252, 255, 255, 255 }) ' 0x26是城内移动;0x7是返回角色 0x0f是打开选图 0x2D是回城
loc1 = 3 ' 区域
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
loc1 = 7 ' 区域中的位置。6在格兰就是进副本那。就是区域中的小区域。7是西海岸的塔 遗迹门口(4,3),雪域门口(5,2)
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
loc1 = 120 ' 450 120
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节
loc1 = 300 ' 350 300
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 2, 141, 85, 240, 82, 255, 85, 248 }) ' 2字节
loc1 = 5 ' z? 5这个没什么效果,不知道是不 是 Z 轴,注意是1字节。反正游戏里都是5。
置入代码 ({ 139, 77, 236, 139, 9 }) ' ecx
置入代码 ({ 106, 1, 141, 85, 240, 82, 255, 85, 248 }) ' 1字节
置入代码 ({ 255, 85, 244 }) ' send

.子程序 _按钮1_被单击

扩大范围CALL (, , , , )

.子程序 _按钮2_被单击
.局部变量 进程ID, 整数型

进程ID = 进程取ID (“DNF.exe”)

q37552427 发表于 2014-2-15 22:42:14

看看!!!!!!!!!看看!!!!!!!!!看看!!!!!!!!!

一笑 发表于 2014-5-26 18:28:04

拿来收藏啦

sbh123456 发表于 2017-2-23 15:45:09

真的么?真的么?真的么?
页: [1] 2 3
查看完整版本: 最新 80x86汇编语言程序设计教程 电子书下载 【查阅】