Pentium的寻址方式

对一条汇编语言指令来说,有两个问题:
(1)需要指出进行什么操作,有指令操作符来表明;
(2)指令涉及的操作数和操作结果放在何处(即操作数的寻址方式);
两种情况下涉及寻址方式:
(1)对操作数进行寻址
(2)对转移地址和调用地址进行寻址

操作数的寻址方式

来源:
(1)直接由指令本身提供
(2)由寄存器提供
(3)由存储器提供
(3)由输入端口提供
去向:
(1)送到寄存器
(2)送到存储器
(3)送到输出端口

立即数寻址


注释:
MOV(指令) AL(目的操作数),80H(源操作数,8位最大255,由目的寄存器决定)

作用:
将立即数送入寄存器

注意:
(1)立即数只能作为源操作数,不能作为目的操作数(只能在右边)
(2)立即数寻址一般用于对寄存器赋值
(3)操作数可从指令中直接取得,不需要总线周期(没有从内存/IO口读取数据),所以速度快

寄存器寻址

操作数在CPU的内部寄存器中,寄存器名可在指令中指出,此为寄存器寻址方式

作用:
1.将CX(既是源又是目的)的内容加1
2.将AH中的内容循环左移1位
3.将EAX中的32位数送到ECX

注意:
(1)寄存器寻址的指令执行时,操作就在CPU内部进行,不需要使用总线周期,因此,执行速度快
(2)对源操作数用寄存器寻址,也可对目的操作数用寄存器寻址,还可两者都用寄存器寻址

输入/输出端口寻址

I/O直接寻址

I/O端口的地址直接在指令中提供:

作用:
1.82H端口中的字节输入到AL
2.将AL中的数据送80H端口,将AH中的数据送81H端口
3.将80H~83H端口中的4个字节由低到高送EAX中

注意:
(1)寻址范围为0-255,即最大端口号为FFH,大于其必须使用间接寻址
(2)仅可使用AL,AX,EAX

I/O间接寻址

需要先在DX寄存器中设置好I/O端口的地址,I/O指令用DX进行寄存器间接寻址,如事先在DX中设置好端口号为80H

作用:
1.将端口号80H中的1个字节读入AL
2.将AL中内容输出到端口80H,将AH中的内容输出到端口81H
3.将EAX中的4个字节由低到高分别送到80H~83H这四个端口

注意:
(1)间接寻址时,只能用DX寄存器,范围0-65535,即最大端口号FFFFH
(2)仅可使用AL,AX,EAX

存储器寻址

EA(偏移量即有效地址)=基址+变址*比例因子+位移量

基址:任何通用寄存器都可以作为基址寄存器,其内容是基址。
位移量:指令操作码后面的32位、16位或8位的数
变址:除了ESP寄存器外,其他通用寄存器都可作为变址寄存器,常用的有DI、SI、EDI和ESI
比例因子:变址寄存器的值可乘以一个比例因子
注:段基址在保护模式即为选择子所指的描述符中的段基址,而实地址模式下和模拟8086模式下则为段寄存器的值左移4位

1.直接寻址


作用:
1.将DS段的1070H和1071H两单元的内容取到AX中
2.将ES段1000H开始的4个字节的数据送到EAX中

2.寄存器间接寻址


作用:
1.将DS段中由BX所指地址开始的两单元的内容送AX
2.将DS段中由EBX所指地址开始的四个单元的内容送EAX
3.对SS段由BP所指单元开始的4个字节送EAX
4.将ES段由BX所指单元开始的2个字节送CX

注意:
1.用BP、SP、EBP、ESP进行间接寻址时,默认段为SS,用其他寄存器进行间接寻址时,默认段为DS
2.如果对非默认段进行寻址,则必须在指令前用前缀指出段寄存器名
3.SI、DI、ESI、EDI称为变址寄存器,用这4个寄存器间接寻址也叫变址寻址

3.寄存器相对寻址


作用:
若SI=2000H,将DS段2100H~2101H(每一个内存单元1个字节)中的内容送AX

4.基址加变址的寻址


作用:
1.将BX和SI中的内容之和所指单元开始的2字节送AX
2.将EBX和ESI共同指出的地址开始的4个字节送EDX
3.同上
4.将ES段由EBX和ESI共同指出的地址开始的4个字节送EDX

注意:
1.基址加变址的寻址方式中,有一个对段寄存器的约定规则,即如果将EBP或BP作为基址寄存器,则默认段为SS,其他情况下,默认段为DS
2.若操作段不在默认段,则要用前缀指出响应的段寄存器名

5.相对的基址加变址寻址


作用:
将SS段由BP和SI的内容与0050H相加作为有效地址

6.相对的带比例因子的变址寻址


作用:
ESI的内容*4再加7形成有效地址

注意:
1.用这种方式时,EA为变址寄存器中的值乘以比例因子再加位移量,比例因子只可为1、2、4、8,是为了便于处理长度为1、2、4、8的数组。

7.基址加比例因子的变址方式


作用:
1.将DS段由EBX+ESI*4所指单元开始的4个字节送到EAX中
2.EDI内容乘以8再加EBX内容即为有效地址

8.相对的基址加比例因子的变址寻址


作用:
将EDI的内容*4,加EBP的内容,再加80即为有效地址

Pentium的指令系统(1)——Pentium的寻址方式相关推荐

  1. C51汇编语言寻址方式,80C51单片机指令系统的7种寻址方式

    寻址方式就是寻找操作数或指令地址的方式.寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令.调用指令).寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉 ...

  2. Pentium的指令系统(5)——调用/转移/循环控制/中断指令

    关于转移指令和调用指令的寻址 下面以转移指令为对象来分析各种转移地址的寻址方式 (1)段内直接转移方式 用这种方式时,指令中给出一个相对位移量,这样,专一地址为EIP的当前内容再加上一个8位.16位或 ...

  3. Pentium的指令系统(3)——算术运算指令

    对有符号和无符号数的分析 1.对加法或减法来说,无符号数和有符号数可采用同一套指令,乘法和除法不行: 无符号数和有符号数采用同一套加法指令及减法指令有两个条件: 1.要求参与运算的两个数同为无符号数或 ...

  4. Pentium的指令系统(2)——Pentium的指令系统

    传送指令 Pentium有七组传送指令,用来实现CPU的内部寄存器之间.CPU和寄存器之间.CPU和I/O端口之间的数据传送 1.通用传送指令MOV和MOVZX/MOVSX (1)两个操作数的位数相同 ...

  5. Pentium的指令系统(4)——串操作指令

    通过加重复前缀,串操作指令可以实现对一串数据的操作.一条带重复前缀的串操作指令的执行过程往往相当于执行一个循环程序.在每次重复之后,都会自动修改地址指针ESI和EDI,如果在执行串操作指令的过程中,有 ...

  6. 计算机组成原理学习笔记第5章指令系统 5.3——操作数寻址方式

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.立即数寻 ...

  7. 【Computer Organization笔记09】x86 / Pentium 指令系统,MIPS 指令系统,数据通路的设计,CPU设计思路

    本次笔记内容: P17 计算机组成原理(17) P18 计算机组成原理(18) 本节课对应幻灯片: 组成原理21 Intructionsx86.pptx 组成原理22 MIPS.pptx(老视频基本没 ...

  8. 计算机原理寻址方式ppt,计算机原理_3 寻址方式和指令系统.ppt

    计算机原理_3 寻址方式和指令系统 第三章寻址方式和指令系统 第一节基本概念 第二节寻址方式 第三节指令系统 附录DEBUG软件的使用说明 第一节基本概念 指令控制与存储程序是计算机的基本特征 CPU ...

  9. Pentium 4处理器架构/微架构/流水线 (3) - NetBurst微架构

    Pentium 4 Intel® NetBurst™ Micro-architecture Details Pentium 4处理器是Intel全新NetBurst微架构 的第一代处理器实现(其实也是 ...

最新文章

  1. HDU - 1875 畅通工程再续
  2. Error-Project facet Java version 1.8 is not supported
  3. 软件工程 - 团队重组
  4. 洛谷OJ上的A+B花(zhuang)式(bi)解法
  5. js Iframe与父级页面通信及IE9-兼容性
  6. 交换两个变量的值的效率的测试
  7. 花书+吴恩达深度学习(二八)深度生成模型之有向生成网络(VAE, GAN, 自回归网络)
  8. (带手机版数据同步)高等院校学院学校类网站源码 政府单位学院学校网站织梦模板
  9. 使用太乐地图下载器下载百度地图切片
  10. 估值模型不适用_十年十倍!绝对估值法是如何引领巴菲特买入可口可乐的?
  11. Mybatis 缓存
  12. ln建立软链接出现错误:broken symbolic link to
  13. Anciety 0CTF/TCTF 2018 总结
  14. word字体号对应的磅数
  15. 网络字节序与主机字节序的转换 - HEN_MAN的专栏 - 博客频道 - CSDN.NET
  16. 百度云轻量应用服务器LS从购买到web应用nginx搭建部署全流程--你值得拥有的入门级教程
  17. 如何寻求知识产权的刑事救济
  18. python中exec是什么意思_Python中的exec()
  19. 常耀俊老师经典《非人力资源经理的人力资源管理》课程
  20. 基于strongSwan配置预共享密钥的IPsec实验

热门文章

  1. ZooKeeper 3.5.5 基础使用
  2. django配置随时执行的脚本,使用运行时的manage环境执行程序
  3. Flink java wordcount案例(批处理、流处理)
  4. 离线安装NLTK工具包
  5. python selenium解决报错SessionNotCreatedException session not created: No matching capabilitie与问题解析
  6. 华为音量键只能调通话_华为新全面屏专利曝光,电源键、音量键都没有
  7. Python Day03
  8. 六:SpringCloud-Config
  9. 状压[Jxoi2012]奇怪的道路
  10. java Servlet Session