通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 程序设计 >> 汇编语言 >> 基础教程 >> 文章正文
8086/8088指令系统
责任编辑:admin   更新日期:2005-8-6
ST)^(SRC)
.OR  逻辑或指令
格式:    OR   DST,SRC
执行的操作:(DST)<-(DST)V(SRC)
.NOT  逻辑非指令
格式:    NOT   OPR
执行的操作:(OPR)<-(OPR)
.XOR  异或指令
格式:    XOR   DST,SRC
执行的操作:(DST)<-(DST)V(SRC)
.TEST  测试指令
格式:    TEST   OPR1,OPR2
执行的操作:(DST)^(SRC)
两个操作数相
的结果不保存,只根据其特征置条件码

2.移位指令
SHL(shift logical left)          逻辑左移
SAL(shift arithmetic left)      算术左移
SHR(shift logical right)        逻辑右移
SAR(shift arithmetic right)     算术右移
ROL(Rotate left)                 循环左移
ROR(Rotate right)                循环右移
RCL(Rotate left through carry)  带进位循环左移
RCR(Rotate right through carry) 带进位循环右移
格式:    SHL  OPR,CNT(其余的类似)
其中OPR可以是除立即数以外的任何寻址方式.移位次数由CNT决定,CNT可以是
1CL.
    循环移位指令可以改变操作数中所有位的位置;移位指令则常常用来做乘以2除以2操作.其中算术移位指令适用于带符号数运算,SAL用来乘2,SAR用来除以2;而逻辑移位指令则用来无符号数运算,SHL用来乘2,SHR用来除以2.

四、串处理指令
1.与REP相配合工作的MOVS,STOS和LODS指令
.REP重复串操作直到(CX)=0为上
格式:  REP   string primitive
其中String Primitive可为MOVS,LODS或STOS指令
执行的操作:
1)如(CX)=0则退出REP,否则往下执行.
2)(CX)<-(CX)-1
3)执行其中的串操作
4)重复1)~3)
.MOVS  串传送指令
格式:可有三种
    MOVS  DST,SRC
    MOVSB(字节)
    MOVSW(字)

其中第二、三种格式明确地注明是传送字节或字,第一种格式则应在操作数中表明是字还是字节操作,例如:
            MOVS    ES:BYTE PTR[DI],DS:[SI]
执行的操作:
1)((DI))<-((SI))
2)字节操作:
   (SI)<-(SI)+(或-)1,(DI)<-(DI)+(或-)1
   当方向标志DF=0时用+,当方向标志DF=1时用-
3)字操作:
   (SI)<-(SI)+(或-)2,(DI)<-(DI)+(或-)2
   当方向标志DF=0时用+,当方向标志DF=1时用-
该指令不影响条件码.
.CLD(Clear direction flag)该指令使DF=0,在执行串操作指令时可使地址自动增量;
.STD(Set direction flag)该指令使DF=1,在执行串操作指令时可使地址自动减量.

.STOS  存入串指令
格式:   STOS  DST
        STOSB(字节)
        STOSW(字)
执行的操作:
   字节操作:((DI))<-(AL),(DI)<-(DI)+-1
   字操作:  ((DI))<-(AX),(DI)<-(DI)+-2
该指令把AL或AX的内容存入由(DI)指定的附加段的某单元中,并根据DF的值及数据类型修改DI的内容,当它与REP联用时,可把AL或AX的内容存入一个长度为(CX)的缓冲区中.
.LODS  从串取指令
格式:    LODS  SRC
         LODSB
         LODSW
执行的操作:
   字节操作:(AL)<-((SI)),(SI)<-(SI)+-1
    字操作: (AX)<-((SI)),(SI)<-(SI)+-2
该指令把由(SI)指定的数据段中某单元的内容送到AL或AX中,并根据方向标志及数据类型修改SI的内容.指令允许使用段跨越前缀来指定非数据段的存储区.该指令也不影响条件码.
    一般说来,该指令不和REP联用.有时缓冲区中的一串字符需要逐次取出来测试时,可使用本指令.
  

2.与REPE/REPZ和REPNZ/REPNE联合工作的CMPS和SCAS指令
.REPE/REPZ  当相等/为零时重复串操作
格式:     REPE(或REPZ)    String Primitive
其中String Primitive可为CMPS或SCAS指令.
执行的操作:
1)如(CX)=0或ZF=0(即某次比较的结果两个操作数不等)时退出,否则往下执行
2)(CX)<-(CX)-1
3)执行其后的串指令
4)重复1)~3)
.REPNE/REPNZ  当不相等/不为零时重复串操作
格式:     REPNE(或REPNZ)   String Primitive
其中String Primitive可为CMPS或SCAS指令
执行的操作:
    除退出条件(CX=0)或ZF=1外,其他操作与REPE完全相同.
.CMPS  串比较指令
格式:     CMP   SRC,DST
          CMPSB
          CMPSW
执行的操作:
1)((SI))-((DI))
2)字节操作:(SI)<-(SI)+-1,(DI)<-(DI)+-1
  字操作:  (SI)<-(SI)+-2,(DI)<-(DI)+-2
指令把由(SI)指向的数据段中的一个字(或字节)与由(DI)指向的附加段中的一个字(或字节)相减,但不保存结果,只根据结果设置条件码,指令的其它特性和MOVS指令的规定相同.
.SCAS  串扫描指令
格式:   SCAS   DST
        SCASB
        SCASW
执行的操作:
    字节操作:(AL)-((DI)),(DI)<-(DI)+-1

    字操作:  (AL)-((DI)),(DI)<-(DI)+-2
该指令把AL(或AX)的内容与由(DI)指定的在附加段中的一个字节(或字)进行比较,并不保存结果,只根据结果置条件码.指令的其他特性和MOVS的规定相同.

五、控制转移指令
 
1.无条件转移指令
.JMP(jmp)  跳转指令
1)段内直接短转移
格式:JMP  SHORT OPR
执行的操作:(IP)<-(IP)+8位位移量

2)段内直接近转移
格式:JMP  NEAR PTR OPR
执行的操作:(IP)<-(IP)+16位位移量

3)段内间接转移
格式:JMP  WORD PTR OPR
执行的操作:(IP)<-(EA)

4)段间直接(远)转移
格式:JMP  FAR PTR OPR
执行的操作:(IP)<-OPR的段内偏移地址
           (CS)<-OPR所在段的段地址

5)段间间接转移

格式:JMP  DWORD PTR OPR
执行的操作:(IP)<-(EA)
           (CS)<-(EA+2)

2.条件转移指令
1)根据单个条件标志的设置情况转移
.JZ(或JE)(Jump if zero,or equal)  结果为零(或相等)则转移
格式:JE(或JZ)  OPR
测试条件:ZF=1

.JNZ(或JNE)(Jump if not zero,or not equal) 结果不为零(或不相等)则转移
格式:JNZ(或JNE)  OPR
测试条件:ZF=0

.JS(Jump if sign)  结果为负则转移
格式:  JS  OPR
测试条件:SF=1

.JNS(Jump if not sign)  结果为正则转移
格式:JNS  OPR
测试条件:SF=0

.JO(Jump if overflow)  溢出则转移
格式:   JO  OPR
测试条件:OF=1

.JNO(Jump if not overflow)  不溢出则转移
格式:   JNO OPR
测试条件:OF=0

.JP(或JPE)(Jump if parity,or parity even) 奇偶位为1则转移
格式:   JP  OPR
测试条件:PF=1

.JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位为0则转移
格式:   JNP(或JPO)  OPR
测试条件:PF=0

.JB(或JNAE,JC)(Jump if below,or not above or equal,or carry) 低于,或者不高于或等于,或进位位为1则转移
格式:JB(或JNAE,JC)  OPR
测试条件:CF=1

.JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry)

上一页  [1] [2] [3] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程