8086指令系统

寻址方式

  1. 立即数寻址: MOV AX,34H;不能给段寄存器和标志寄存器赋立即数(MOV DS,1250是错误的)
  2. 寄存器寻址: 可以是AX,BX,CX,DX,SI,DI,SP,BP;寄存器的位数必须一致(MOV CL,BX是错误的)
  3. 内存储器寻址: 取得操作的偏移地址也称为有效地址EA
    a. 有效地址的组成:位移量+基地址+变址
    b. 不允许使用跨越前缀的情况:串处理的目的串必须用ES段;PUSH指令的目的和POP指令的源必须使用SS段;指令必须放在CS段
  4. 直接寻址方式:
    a. MOV AX,[2000H]修改AX地址;
    b. 如果在附加段中,应指定段前缀:MOV AX,ES:[values]
  5. 寄存器间接寻址:
    a. MOV AL,[BX]
    b. 操作数只包含BX/BP,SI/DI使用BP省略段SS,其它则省略DS段;
    c. 跨段使用:MOV AX,ES:[BX]
  6. 寄存器相对寻址:
    a. MOV AX,COUNT[BX];若(DS)=3000H,(BX)=1000H,CONUT=1000H,物理地址是:32000H
    b. 操作数仅有基址/变址指定位移之和
    c. 使用段跨越:MOV AX,ES:COUNT[BX]
  7. 基址变址寻址:
    a. 操作数的有效地址是基址和变址的内容之和
    b. MOV AX,[BX][DI]
    c. 使用段跨越:MOV AX,ES:]BX][DI]
  8. 相对基址变址寻址:
    a. 操作数的有效地址是基址变址和指定的位移量之和
    b. MOV AX,MASK[BX][DI]

与转移有关的寻址方式

三个表示转移距离

  1. SHORT:-128~127
  2. NEAR:-32768~32767,IP修改
  3. FAR:转移超过正/负32k的字节,CS,IP都修改
  4. CS:IP指向下一条将执行的指令首地址,当转移时修改;

寻址方式

段内直接寻址

  1. JMP NEAR PTR AGAIN
  2. JMP SHORT NEXT
  3. 适用于条件转移及无条件转移[条件转移,位移量为8]

段内间接寻址

  1. JMP BX => IP=(BX)
  2. JMP NEAR PTR[BX] IP=(DS*16+BX)
  3. JMP SHORT [BX]

段内直接寻址

JMP FAR PTR OUTSEG

段间间接寻址

  1. 为了说明寻址两个单元,指令中需要加入DWORD
  2. JMP DWORD PTR [SI]
  3. JMP DWORD PTR [TABLE+BX]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值