栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

8086指令系统

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

8086指令系统

8086指令系统 传送指令 传送指令 MOV

mov dest,src; dest<---src
注意:

  • 不能在两个内存单元之间直接传送数据
  • CS和IP寄存器不能作为目的操作数
  • 用BX、SI、DI来间接寻址时,默认的段寄存器为DS,而用BP来间接寻址时,默认的段寄存器为SS。
  • 所有的通用传送指令都不改变标志
交换指令XCHG

XCHG reg,mem/reg

注意:

  • 段寄存器和IP不能作为交换指令的操作数
I/O指令

执行的操作:
直接寻址:IN/OUT acc,PORT ;PORT端口号0-255H
间接寻址:IN/OUT acc,DX;DX表示的端口范围达64K

注意:

  • 只能用累加器作为执行输入输出的机构
取有效地址指令(LEA)

这里有效地址指地址偏移值
执行的操作: LEA reg,mem

    lea ax,[1142] ; (ax) = 1142

LEA AX,VARWORD
MOV AX, OFFSET VARWORD

上述两条指令执行效果相同,前者执行时确定值,后者在编译时确定偏移量。

装入地址指令

执行的操作:LDS/LES reg, mem32 ;
DS:reg←(mem开始的四个内存单元的内容,同时设置段寄存器和偏移量)

LDS	DI,[2130H] 
       ;使2130H和2131H中的偏移量送DI,
       ;2132H和2133H中的段值DS。

类似指令还有 LFS/LGS/LSS

标志传送指令
  1. 读标志指令LAHF
    LAHF把标志寄存器低8位中的5个标志位传送到AH中的指定位

  2. 设置标志指令SAHF
    SAHF的功能与LAHF的功能正好相反,用图来示意,只要将上图中5个箭头方向反一下即可。

  3. 把标志寄存器推入栈顶指令
    PUSHF执行的操作:(SP)-1←标志寄存器高8位
    (SP)-2←标志寄存器低8位
    (SP)←(SP)-2

  4. 从栈顶弹出标志寄存器指令POPF
    执行的操作:标志寄存器低8位←(SP)
    标志寄存器高8位←(SP)+1
    (SP)←(SP)+2

PUSHF和POPF指令用于保护和恢复标志寄存器内容。

堆栈操作指令
  1. 堆栈操作指令
    压入堆栈指令PUSH和弹出堆栈指令POP
    POP/PUSH dest

    注意:

    • 堆栈操作总是按字进行的
    • 允许PUSH CS,但不允许POP CS
  2. PUSHA/PUSHAD
    将8个通用寄存器全部进栈,进栈顺序为:AX,CX,DX,BX,SP,BP,SI,DI,然后SP 指针寄存减16,不过SP入栈的内容是PUSHA指令执行前的内容

  3. POPA/POPAD
    弹出堆栈 顶的8 个字,并依序存入DI、SI、BP、SP、DX、CX、BX、AX 里

符号扩展指令

CBW、CWD、CWDE、 CDQ

  • CBW:将AL寄存器中的符号位扩展到AH中,AH中各位取与AL的符号位相同的值,即对负数1扩展,正数0扩展。
  • CWD:将AX中的被除数扩展成双字,即把AX中的符号位扩展到DX中。
  • CWDE:AX(16位)->EAX(32位)
  • CWQ:EAX(32位)->EDX+EAX(64位)
    执行时,不影响标志位。
算术指令

算术运算指令涉及两种类型的数据
无符号数
8位无符号数的范围为0-255
16位无符号数的范围为0-65 535

有符号数
8位有符号数的范围为-128-+127
16位有符号数的范围为-32 768-+32 767


所有算术运算指令均影响状态标志。
规则:
当无符号数运算产生溢出时,CF为1;
当有符号数运算产生溢出时,OF为1;
如运算结果为0,则ZF=1;
如运算结果为负数,则SF=1;
如运算结果中有偶数个1,则PF=1。

CF和OF是看待数据的两个角度前者是将数据看成无符号数,后者是有符号数。


加法指令
  1. 不带进位位的加法指令(ADD)
    ADD dest, src
  2. 带进位位的加法指令ADC
    ADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容

ADC指令可用于多字节的加法运算中

  MOV  AX,BUFFER2	
  ADD  BUFFER1,AX ;低字相加
  MOV  AX,BUFFER2+2	
  ADC  BUFFER1+2,AX ;高字相加,包括低字的进位

ing

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号