汇编语言零基础学习.pdf

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出 一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放 弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的 强项,大家不妨玩玩 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位寄存器:AH AL=AX:累加寄存器,常用于运算;B H BL=BX:基址寄存器,常用于地址索引;CH CL=CX: 计数寄存器,常用于计数;DH DL=DX:数据寄存器,常用于数 据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用 来保存段地址:CS (Code Segment ):代码段寄存器;DS(Data Segment ):数据段寄存器;SS(Stack Segment ):堆栈段寄存器;E S(Extra Segment ):附加段寄存器。当一个程序要执行时,就要决定程 序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS, DS ,SS 来指向这些起始位置。通常是将 DS 固定,而根据需要修改CS 。 所以,程序可以在可寻址空间小于64K 的情况下被写成任意大小。 所 以,程序和其数据组合起来的大小,限制在DS 所指的64K 内,这就是 COM 文件不得大于64K 的原因。8086 以内存做为战场,用寄存器做为 军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能 的寄存器:IP (Intruction Pointer ):指令指针寄存器,与CS 配合使用, 可跟踪程序的执行过程;SP (Stack Pointer):堆栈指针,与 SS 配合使 用,可指向目前的堆栈位置。BP (Base Pointer ):基址指针寄存器,可 用作 SS 的一个相对基址位置;SI (Source Index ):源变址寄存器可用来 存放相对于 DS 段之源变址指针;DI (Destination Index ):目的变址寄 存器,可用来存放相对于 ES 段之目的变址指针。还有一个标志寄存器 FR (Flag Register ),有九个有意义的标志,将在下文用

文档评论(0)

weiwoduzun + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档