汇编;8086/8088;寻址方式和简单指令

一、寻址方式

1.立即数寻址
2.储存器寻址
    物理地址 = 段基址 (BX/BP/SI/DI给出) + 16位数;
    例:MOV AX,[FFFFH]
3.直接寻址
    物理地址 = 操作数给出的有效地址(默认DS,可用段超越前缀改变);
    例1:DS : [2000H];
    例2:VAR DW FFFF
            MOV AX,VAR;(MOV BX,DS:[FFFFH]) 
4.寄存器间接寻址
    物理地址 = BX/SI/DI 中储存的有效地址;(默认DS)
    或:物理地址 = SS中储存的有效地址;(默认SS)
    可使用段超越前缀改变;
     例:MOV AX,DS:[BX]
5.相对寻址
    物理地址 = 寄存器间接寻址 + 有符号8/16位数
    例:MOV AX,16H[BX]
6.基址变址寻址
    物理地址 = 基址寄存器 + 变址寄存器
    例:MOV AX,[BX][SI/DI](默认DS)/[BP][SI/DI](默认SS)
    (可使用段超越改变默认)
7.相对基址变址寻址
    物理地址 = 基址变址寻址 + 有符号8/16位数
    例:MOV AX,-06H[BX][DI] ( [BX + DI + -06H] / -06H[BX + DI])

二、简单指令

1.数据传送

1)MOV(传送)
    MOV reg/ mem , imm
     MOV reg/mem/seg , reg

    MOV reg/seg , mem
    MOV reg/mem , seg
(注:MOV的目的操作数与源操作数类型必须一致,可通过WORD PTR/BYTE PTR指定类型)
(imm传给mem时立即数可以被理解为字,所以必须指明(PTR)类型)

2)XCHG(交换)
    XCHG reg , reg/mem
    同MOV,与mem操作时需指明类型

3)XLAT(换码指令)
    XLAT    ;AL<-[BX+AL]
2.堆栈操作

    PUSH r16/m16/seg;    操作数进栈,SP-2
    POP r16/m16/seg;    栈顶至目的操作数,SP+2
3.标志操作

    LAHF/SAHL;    标志位第八位放AH/AH放标志位低八位
    PUSHF/POPF;    标志寄存器进/出栈
    CLC/STC;    CF复/置位
    CMC;    CF位求反
    CLD/STD;    DF 复/置位
    CLI/STI;    IF复/置位
4.地址传送
    LEA r16 , mem;    r16←[mem]
    LDS  r16 , mem;     r16←[mem],DS←[mem+2]
    LES  r16 , mem;     r16←[mem],ES←[mem+2]
    附:MOV r16 , OFFSET mem;    r16←[mem]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值