汇编语言超浓缩教程df.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言超浓缩教程df

“ 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB钓一个 API 就够你 忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要 研 他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急, 让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以 机器码方 式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语 言兼容性最好,故几乎所有跟踪、调试工具 (包括WIN95/98 下)都是以汇编示 人的,如 果阁下对 CRACK 颇感兴趣……;二、汇编直接与硬件打交道,如果你 想搞通程序在执行时在电脑中的来龙去脉,也就是搞清电脑每个组成部分究竟在 干什么、究 竟怎么干?一个真正的硬件发烧友,不懂这些可不行。三、如今玩 DOS 的多是 “高手”,如能像吾一样混入 (我不是高手)“高手”内部,不仅可 以从 “高手”朋 友那儿套些黑客级 “机密”,还可以自诩 “高手”尽情享受强 烈的虚荣感--#$% “醒醒!” 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂 漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个 人 看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG, 有时 CRACK 出一个小软件比完成一个程序更有成就感 (就像学电脑先 玩游戏一 样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过 高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂 的 命令,将注意力集中在最重要的几个指令上 (CMP LOOP MOV JNZ……)。但是想 在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用 WINZIP、WINRAR…依次压迫,嘿嘿!)教程。 大言不惭的说,看通本文,你完 全可以 “不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看! 那么――这个接下来呢?―― Here we go!(阅读时看不懂不要紧,下文必有 分解) 因为汇编是通过 CPU 和内存跟硬件对话的,所以我们不得不先了解一下 CPU 和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本 I/O 控制功能的一块芯 片。一种汇编语言只能用于特定的 CPU。也就是说,不同的 CPU 其汇编语言的指 令语法亦不相同。个人电脑由 1981 年推出至今,其 CPU 发展过程为: 8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX 等旁支。后面 兼容前面 CPU 的功能,只不过多了些指令 (如多能奔腾的MMX 指令集)、增大了 寄存器 (如 386 的 32 位 EAX)、增多了寄存器 (如 486 的 FS)。为确保汇编程 序可以适用于各种机型,所以推荐使用 8086 汇编语言,其兼容性最佳。本文所 提均为 8086 汇编 语言。寄存器 (Register)是 CPU 内部的元件,所以在寄存器 之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2. 存于寄 存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数 据到电脑的周边设备。8086 有 8 个 8 位数据寄存器,这些 8 位寄存器可分别组 成 16 位寄存器:AHAL=AX:累加寄存器,常用于运算;BHBL=B X:基址寄存 器,常用于地址索引;CHCL=CX:计数寄存器,常用于计 数;DHDL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空 间, 8086 设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代 码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment): 堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时, 就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS, DS,SS 来指向这些起始位置。通常是将DS 固定,而根据需要修改 CS。所以, 程序可以在可寻址空间小于 64K 的情况下被写成任意大小。 所以,程序和其数 据组合起来的大小,限制在DS 所指的 64K 内,这就是 COM 文件不得大于 64K 的 原因。8086 以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面 所提的寄存器外,还有一些 特殊功能的寄存器:IP(Intruction Pointer): 指令指针寄存器,与 CS 配合使用,可跟踪程序的执行过程;SP(Stack Pointer):

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档