80X86寻址方式总结

本文详细介绍了80X86处理器的寻址方式,包括立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址、比例变址寻址、基址比例变址寻址和相对基址比例变址寻址等,涉及段寄存器、通用寄存器、位移量和比例因子的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:概论
    80x86汇编程序都是分段程序设计结构,每个程序段都有一个开始地址:段基址。在保护模式下段基址要由16位的段选择子得到,这些段选

择子存放在六个段寄存器(CS,SS,DS,ES,FS,GS)中:
    代码段总是由 CS 段寄存器来指示;
    堆栈段总是由 SS 段寄存器来指示;
    字符处理指令总是使用 ES 段寄存器作为目标操作数的段寄存器;
    一般的数据段可用 DS、ES、FS、GS来指示,但 DS 作为数据段的默认段寄存器,用它来寻址比其它几个段寄存器的效率高,因此最好安排 DS 寻址最常引用的数据段,而 ES、FS、GS去寻址一些不常用的数据段。

    段内偏移地址(某个字节相对段基址的偏移量)也被称为有效地址 EA(effective address),它由以下4个部分组成:

    EA  =  基址  +  (变址  *  比例因子)  +  位移量

    基址、变址、位移量的值可正可负,比例因子只能为正。

    1:基址
    (32位寻址):
        1):如果基址寄存器是  ESP或EBP,则段寄存器为 SS;
        2):如果基址寄存器是其它通用寄存器,则段寄存器为 DS;
    (16位寻址):
        基址寄存器可以是  BX  或  BP

    2:变址
    (32位寻址):
        变址寄存器可以为除  ESP  之外的32位通用寄存器
    (16位寻址):
        变址寄存器可以是  SI  或  DI
    3:比例因子
        一个常数,可取  1、2、4、8。
    4:位移量
        一个8位、16位、32位的常数。

二:详解
    默认情况下,存储器寻址使用DS数据段,可以使用段寄存器来显式指出选择的段。


    1:立即寻址
       对多字节立即数,高字节放在寄存器高位,低字节放在寄存器低位。
       例:
           MOV  BL,43                ;把十进制数43放入BL中
           MOV  AX,98H             ;把十六进制数98H放入AX中
           MOV  AL,'A'                 ;把字符'A'的ASCII码放入AL中
           MOV  CX,'AB'    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值