- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 80x86寻址方式与指令系统 3.1 数据类型及其存储规则 3.1.1基本数据类型及存储 一个存储单元——一个字节占用内存的一个地址。 基本数据类型:字、双字、四字、双四字 字——两个相邻字节组成的16位二进制; 双字——4个相邻字节组成的32位二进制数; 四字——8个相邻字节组成的64位二进制数; 双四字——16个相邻字节组成的128位二进制数。 3.1.2 数字数据类型 数据类型包含:无符号整数、带符号整数和浮点数。 1.无符号整数(范围:0~2n-1) 图3.3(a)无符号整数类型 2.带符号整数(范围:-2n-1 ~ +2n-1-1) 带符号整数是用2的补码表示的二进制值。规定操作数的最高位为符号位。 图3.3(b)带符号整数类型 3.浮点数 浮点数据类型可分为三种:单精度浮点、双精度浮点和双 扩展的精度浮点。? 图3.3(c)是浮点数类型 3.1.3 指针数据类型 在实方式下有两种类型的指针:近指针(16位)和远指针(32 位) 3.1.4 字符串、位及位串数据类型 字符串包括字节串、字串和双字串。 它们分别是字节、字和双字的相邻序列。 3.2 计算机指令格式 ?指令包括两部分:指令操作码部分和地址码部分。 指令操作码部分是给出该指令应完成何种操作。 地址码部分是用来描述该指令的操作对象。 指令格式可分为:零地址指令、一地址指令、二地址指令和三地址指令。 零地址指令:只有操作码部分,而没有操作数的指令; 一地址指令:只有目的操作数的单操作数指令; 二地址指令:有两个地址指出两个操作数的地址; 三地址指令优点:操作结束后,原两个操作数的内容均未被破坏; 缺点:增加一个地址后,使得指令码加长,增加了存储空间,取 指时间变长。 ? 3.2.1 指令的助记符格式 助记符格式可用以下通式表示: L: op D1, D2, D3 其中:L是标号,在标识符后面跟有冒号(:) op是助记符,具有相同功能的指令操作码的保留名 例如: 3.2.2 80x86指令编码格式 指令编码格式包含操作码和操作数两部分。 操作码表示计算机执行什么操作。 操作数指明参与操作的数的本身,或规定了操作数的地址。 图 3.6 8086 CPU指令编码的一般形式 1操作码字节 它是指令的第一字节,规定指令的操作类型,是指令的必选字节,字节内容如下: D7 D6 D5 D4 D3 D2 D1 D0 OP:表示指令操作码, D:表示指令中数据传送的方向。 W:表示操作数类型。 2 寻址方式字节。它是指令的第二字节,规定操作数的寻址方式。是指令的可选字节,字节内容如下: D7 D6 D5 D4 D3 D-2 D1 D0 MOD:表示方式域,D7、D6位能表示4种不同的方式。 REG:表示寄存器域,D5、D4、D3位能表示8种不同的寄存器。 R/M:表示寄存器/存储器域,D-2、D1、D0位能表示8种不同的寄存器/存储器。 表3.1 REG值与寄存器之间的对应关系 表3.2 REG值与寄存器之间的对应关系 表3.3 mod与r/m域所组合的寻址方式 3 偏移量字节 是指令的第三、四字节,是指令的可选字节, 给出了存储器操作数的偏移量。 4 立即数字节 是指令的可选字节,给出了指令的立即数。 3.3 8086CPU的寻址方式 ?寻址方式——寻找指令或操作数存放地址的方法。 两种寻址方式:一种是用来对操作数进行寻址;另一种是 用来对转移地址或调用地址进行寻址,即 对指令地址进行寻址。 ?3.3.1 操作数的寻址方式 指令的操作数存放位置有4种: l)立即寻址——操作数直接包含在指令字节中。 该操作数就称为立即数。 2)寄存器寻址——操作数存放在CPU的某个内部寄存器中。 3)存储器寻址——操作数在内存的数据区中。 4)操作数存放在I/O端口中 1、 立即寻址 立即数寻址特点:指令执行速度快。 立即数只能是整数,且只能作为源操作数。 2、 寄存器寻址方式 寄存器寻址方式的优点:不但可以减少指令码的长度,而且由 于操作数已存于寄存器中,执行速度 较快。 寄存器既能作为源操作数,又能作为目的操作数。 例如: MOV
文档评论(0)