汇编语言重点笔记.docVIP

  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文档。上传文档
查看更多
汇编语言重点笔记

指令系统 4.1 概述 指令的书写格式 指令——CPU执行某种操作的“命令”,指令的集合称为指令系统。 书写格式: 机器指令——硬件可识别、可存储和运行的一串二进制描述符. 符号指令——用助记符和规定的书写格式书写的指令。例 表4。1.一个符号指令的机器指令有1~16个字节,在内存中连续存放。 指令地址——CPU规定:存放指令第一字节的内存地址称为指令地址。 2,符号指令的书写格式 标号: 操作码助记符 操作数助记符 ;注释 例: LAST: MOV AL,9 标号——地表该指令的存放地址,为程序分支、循环提供了转移目标。 标号的命名规则:字母或下划线开头,后跟字母、数字、下划线≤31个字符。 “系统保留字”不能作为标号使用。 操作码——规定指令要执行的操作。 操作数——指令的操作对象, 其长度可以是单字节、双字节或者四字节。内存中连续存放。 存放规则:低字节存放在i 单元,高字节存放在i+1单元。 目标程序——机器指令编写的程序,CPU可执行。 汇编源程序——用符号指令编写的程序。需编辑、编译和链接生成CPU可执行的目标程序。 4.2 80486的寻址方式 微机中操作数的三种类型: 立即数——数据作为指令的一部分,紧跟在操作码的后面。 寄存器操作数——数据存放在CPU的某个寄存器中。 存储器操作数——数据存放在存储器中。操作数用来指出数据在存储器中的位置。 寻址方式——CPU寻找操作数的方法称为寻址方法。 80486有7种寻址方法,其中访问存储器有5种寻址方式。 4.2.1 立即寻址——操作数包含在本条指令中,是指令的一部分。取出指令即得操作数 立即数表示形式——可为多种数制的数,或由+、—、*、/组成的算术表达式。 必须以数字开头,以字母开头的十六进制数前必须以数字0做前缀。 数制用后缀表示:B、H、Q、D(可省略) 编译时,立即数一律编译成等值的二进制数,负数—补码,字符’A’—ASCII。 下例指令的功能是把源操作数(立即数)写入目标寄存器中,其中源操作数就是立即寻址: MOV AL MOV BX,1234H MOV CL,4 MOV DL,’A’ MOV BL,0A6H MOV CX,3*5 MOV EAX 4.2.2 寄存器寻址 操作数存放在CPU的某个寄存器中。寻址:写出寄存器名。 例,见书P。34上部。 4.2.3 存储器操作数的寻址方式 操作数存放(或写入)某个逻辑段的存储单元之中,所以须给出用逻辑地址计算物理地址的地址表达式。 完整的地址表达式: 段寄存器:[基址+变址*比例因子+位移量]     段超越前缀  有效地址(EA)又称偏移地址 段超越前缀——通知CPU指令要访问的是哪一个逻辑段。 偏移地址——在一个逻辑段中,某存储单元相对于段首址之间的地址偏移量。 基址——任何通用寄存器(32位)的内容。基址寄存器通常用于编译程序指向局部变量区。 变址——除ESP以外的任何通用寄存器(32位)的内容。变址寄存器用于访问数组或字符串元素。 位移量——包含在指令中的立即数。 实模式下:把段基址(CS内容)*16+偏移地址==物理地址 保护模式下:段基址寄存器中写入的不是段基址,而是选择符,CPU利用段选择符和段页管理部件查找出段基址+有效地址···==物理地址。 直接寻址 两种书写格式: 直接写出有效地址。例如: MOV BX,DS:[1234H] ;取出一个字的内容—BX MOV AL,ES:[2CH] ;取出一个字节的内容—AL 用变量名代替存储单元的有效地址。(因经汇编后,存储单元的有效地址就赋给了变量名)例如: MOV AX,DS:BUF ;取出数据段以BUF命名的字的内容—AX 或者MOV AX,BUF 寄存器间接寻址(简称间址或间接寻址) 间址寄存器——要求事先把存储单元的有效地址写入规定的寄存器中。 指令地址的表达格式: 段寄存器:[间址寄存器] 对于约定的逻辑段,其段超越前缀可省略。例如: DATA1 DB 11H ,55H ;定义变量 DATA2 DW 3322H ··· MOV DS,数据段段基址 ··· MOV SI ,OFFSET DATA1 ;变量DATA1单元的有效地址

文档评论(0)

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

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

1亿VIP精品文档

相关文档