通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 程序设计 >> 汇编语言 >> 基础教程 >> 文章正文
8086/8088指令系统
责任编辑:admin   更新日期:2005-8-6

一、数据传送指令
1.通用数据传送指令
MOV(Move)传送
PUSH(Push onto the stack)进栈
POP(Pop from the stack)出栈
XCHG(Exchange)交换

.MOV指令
格式为: MOV  DST,SRC
执行的操作:(DST)<-(SRC)
.PUSH进栈指令
格式为:PUSH  SRC
执行的操作:(SP)<-(SP)-2
           ((SP)+1,(SP))<-(SRC)
.POP出栈指令
格式为:POP  DST
执行的操作:(DST)<-((SP+1),(SP))
           (SP)<-(SP)+2
.XCHG 交换指令
格式为:XCHG  OPR1,OPR2
执行的操作:(OPR1)<-->(OPR2)

2.累加器专用传送指令
IN(Input)  输入
OUT(Output)  输出
XLAT(Translate)  换码
这组指令只限于使用累加器AX或AL传送信息.

.IN 输入指令
长格式为:    IN  AL,PORT(字节)
     IN  AX,PORT(字)
执行的操作:  (AL)<-(PORT)(字节)
             (AX)<-(PORT+1,PORT)(字)
短格式为:    IN  AL,DX(字节)
             IN  AX,DX(字)
执行的操作:  AL<-((DX))(字节)
             AX<-((DX)+1,DX)(字)
.OUT 输出指令
长格式为:    OUT  PORT,AL(字节)
             OUT   PORT,AX(字)
执行的操作:  (PORT)<-(AL)(字节)
             (PORT+1,PORT)<-(AX)(字)
短格式为:    OUT  DX,AL(字节)
             OUT  DX,AX(字)
执行的操作:  ((DX))<-(AL)(字节)
             ((DX)+1,(DX))<-AX(字)
    在IBM-PC机里,外部设备最多可有65536个I/O端口,端口(即外设的端口地址)为0000~FFFFH.其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此时机器指令用二个字节表示,第二个字节就是端口号.所以用长格式时可以在指定中直接指定端口号,但只限于前256个端口.当端口号>=256时,只能使用短格式,此时,必须先把端口号放到DX寄存器中(端口号可以从0000到0FFFFH),然后再用IN或OUT指令来 传送信息.
.XLAT  换码指令
格式为:    XLAT  OPR
或:        XLAT
执行的操作:(AL)<-((BX)+(AL))

3.有效地址送寄存器指令
LEA(Load effective address)有效地址送寄存器
LDS(Load DS with Pointer)指针送寄存器和DS
LES(Load ES with Pointer)指针送寄存器和ES
.LEA 有效地址送寄存器
格式为:  LEA   REG,SRC
执行的操作:(REG)<-SRC
    指令把源操作数的有效地址送到指定的寄存器中.
.LDS 指针送寄存器和DS指令
格式为:  LDS  REG,SRC
执行的操作:(REG)<-(SRC)
           (DS)<-(SRC+2)
    把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中.该指令常指定SI寄存器.
.LES 指针送寄存器和ES指令
格式为:  LES  REG,SRC
执行的操作: (REG)<-(SRC)
            (ES)<-(SRC+2)
    把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中.该指令常指定DI寄存器.

4.标志寄存器传送指令
LAHF(Load AH with flags)标志送AH
SAHF(store AH into flags)AH送标志寄存器
PUSHF(push the flags) 标志进栈
POPF(pop the flags) 标志出栈
.LAHF 标志送AH
格式为:    LAHF
执行的操作:(AH)<-(PWS的低字节)

.SAHF AH送标志寄存器
格式为:    SAHF
执行的操作:(PWS的低字节)<-(AH)
.PUSHF 标志进栈
格式为:    PUSHF
执行的操作:(SP)<-(SP)-2
           ((SP)+1,(SP))<-(PSW)
.POPF 标志出栈
格式为:    POPF
执行的操作:(PWS)<-((SP)+1,(SP))
           (SP)<-(SP+2)


二、算术指令
1.加法指令
ADD(add)加法
ADC(add with carry)带进位加法
INC(increment)加1

.ADD  加法指令
格式:    ADD   DST,SRC
执行的操作:(DST)<-(SRC)+(DST)
.ADC  带进位加法指令
格式:    ADC   DST,SRC
执行的操作:(DST)<-(SRC)+(DST)+CF
.ADD  加1指令
格式:    INC   OPR
执行的操作:(OPR)<-(OPR)+1

2.减法指令
SUB(subtract)减法
SBB(subtract with borrow)带借位减法
DEC(Decrement)减1
NEG(Negate)求补
CMP(Compare)比较

.SUB  减法指令
格式:  SUB  DST,SRC
执行的操作:(DST)<-(DST)-(SRC)
.SBB  带借位减法指令
格式:  SBB  DST,SRC
执行的操作:(DST)<-(DST)-(SRC)-CF
.DEC  减1指令
格式:  DEC  OPR
执行的操作:(OPR)<-(OPR)-1
.NEG  求补指令
格式:  NEG  OPR
执行的操作:(OPR)<- -(OPR)
.CMP  比较指令
格式:  CMP  OPR1,OPR2
执行的操作:(OPR1)-(OPR2)
    该指令与SUB指令一样执行减法操作,但不保存结果,只是根据结果设置条件标志西半球.

3.乘法指令
MUL(Unsigned Multiple)无符号数乘法
IMUL(Signed Multiple)带符号数乘法

.MUL 无符号数乘法指令
格式:   MUL  SRC
执行的操作:
    字节操作数:(AX)<-(AL)*(SRC)
    字操作数:(DX,AX)<-(AX)*(SRC)
.IMUL 带符号数乘法指令
格式:   IMUL  SRC
执行的操作:与MUL相同,但必须是带符号数,而MUL是无符号数.

4.除法指令
DIV(Unsigned divide)无符号数除法
IDIV(Signed divide)带符号数除法

CBW(Convert byte to word)字节转换为字
CWD(Contert word to double word)字转换为双字

.DIV  无符号数除法指令
格式:   DIV  SRC
执行的操作:

  字节操作:(AL)<-(AX)/(SRC)的商
           (AH)<-(AX)/(SRC)的余数
  字操作:  (AX)<-(DX,AX)/(SRC)的商
           (AX)<-(DX,AX)/(SRC)的余数
.IDIV  带符号数除法指令
格式:   DIV  SRC
执行的操作:与DIV相同,但操作数必须是带符号数,商和余数也均为带符号数,且余数的符号与被除数的符号相同.
.CBW 字节转换为字指令
格式:   CBW
执行的操作:AL的内容符号扩展到AH.即如果(AL)的最高有效位为0,则(AH)=00;如(AL)的最高有效位为1,则(AH)=0FFH
.CWD 字转换为双字指令
格式:  CWD
执行的操作:AX的内容符号扩展到DX.即如(AX)的最高有效位为0,则(DX)=0;否则(DX)=0FFFFH.
    这两条指令都不影响条件码.


三、逻辑指令
1.逻辑运算指令
AND(and)          逻辑与
OR(or)           逻辑或
NOT(not)         逻辑非
XOR(exclusive or)异或
TEST(test)       测试
.AND  逻辑与指令
格式:    AND   DST,SRC
执行的操作:(DST)<-(D

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

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