微机原理与接口技术(三)——指令系统

一,数据类型

1,80486 cpu 中数据类型有七种:

     1)无符号二进制数,8个字节:0-255,16个字节:0-65535,32个字节:0-4G

     2)有符号二进制数

     3)浮点数,分为单精度浮点数和双精度浮点数

     4)BCD码,分为压缩型BCD码和非压缩型BCD码

     5)字符串

     6)ASCII码

     7)指针数据,分为近指针32位和远指针48位

二,寻址方式

1,80x86 系列 cpu 的寻址方式有 8 种

     1)立即寻址:MOV AX, 56H;

     2)寄存器寻址: MOV AX, BX;

     3)直接寻址:MOV AX, [2000H];

     4)寄存器间接寻址:MOV AX, [BX];   MOV AX, DS: [BP];

     5)相对寄存器简介寻址:MOV AX, 2040H[BX];   或  MOV AX, [BX+2040H];

     6)基址加变址寻址:MOV AX, [BX+SI];  或  MOV AX, [BX][SI];

     7)相对基址加变址寻址:MOV AX, 1234H[BI+DI];  或  MOV AX, [BI+DI+1234H]  或  MOV AX, 1234H[BI][DI];

     8)与跳转有关的寻址:长跳转,中跳转,短跳转

三,指令系统

1,指令格式:[标号:]  操作码  [操作数,...]  [;注释]

2,指令可以分为整数指令,浮点数指令,操作系统型指令,整数指令相较会多很多,下面只列出整数指令

3,数据传送指令:

  1)MOV  EBX,  12345H,不影响进位寄存器

  2)交换指令:XCHG  AX,  BX

  3)I/O指令 IN 和 OUT:IN  EAX  28H,用于在I/O端口和AL,AX或EAX累加器之间交换数据。

  4)装入有效地址指令LEA:LEA  reg32  mem,将有效地址(即偏移地址)送往通用寄存器

  5)装入全地址指令:LDS,LES,LFS,LGS,LSS

  6)压栈/出栈指令:PUSH,POP,

    PUSH  AX;  SP = SP - 2,MOV  [SP]  AX

         POP  CX;  MOV  CX  [SP], SP = SP + 2

  7)全部通用寄存器压栈和出栈指令

     PUSHA/POPA   16位通用寄存器,

     PUSHAD/POPAD    32位通用寄存器,入栈顺序为EAX,ECX,EBX,EDX,ESP,EBP,ESI,EDI

        8)标志寄存器传送指令:

               LAHF:F 寄存器内容送AH指令

               SAHF:AH内容送 F 寄存器指令

    PUSHF:16位 F 寄存器内容进栈指令,保存F

    POPF:16位 F 寄存器内容出栈指令,恢复F

    PUSHFD:32位 F 寄存器内容进栈指令,保存F

              POPFD:32位 F 寄存器内容进栈指令,保存F

   9)查表转换指令XLAT

4,算数运算指令

       1)加法减法指令:ADD,SUB

       2)带进/借位的加减法指令:ADC/SBB

  3)加1减1指令:INC,DEC

  4)交换加法指令:XADD

       5)取反指令:NEG

       6)比较指令:CMP

  7)比较并交换指令:CMPXCHG

        8)无符号乘数加法指令:MUL,被乘数隐含在累加器中

        9)有符号乘法指令:IMUL

       10)无符号除法指令:DIV

        11)有符号除法指令:IDIV

        12)符号扩展指令:CBD,CWD,CWDE,CDQ

5,逻辑运算指令

      1)十进制(BCD码)调整指令:DAA,DAS,AAA,AAS,AAM,AAD

      2)逻辑与/或/异或指令:AND,OR,XOR

      3)测试指令:TEST

      4)逻辑非指令: NOT

      5)算术/逻辑左移指令:SAL/SHL

      6)算术/逻辑右移指令:SAR/SHR

      7)循环右移指令:ROL,ROR,RCL,RCR

6,串操作指令

      1)串传送指令:MOVSB,MOVSW,MOVSD,将DS:SI指定地址的数据传送到ES:DI指定的地址中去

      2)串装入地址:LODSB,LODSW,LODSD,

      3)串的存储:STOSB,STOSW,STOSD

      4)串比较指令:CMPSB,CMPSW,CMPSD

      5)串扫描指令:SCASB,SCASW,SCASD

      6)串输入指令:INSB,INSW,INSD

      7)串输出指令:OUTSB,OUTSW,OUTSD

      8)重复前缀:REP,REPZ,REPE,REPNE,REPNZ

7,控制转移类指令

      1)无条件转移指令:JMP

      2)有条件转移指令:JA,JB,JE

      3)循环控制指令:LOOP,LOOPZ,LOOPNZ

      4)调用/返回指令:CALL,RET

      5)中断/中断返回指令:INT,IRET

      6)标志操作指令:CLC,STC,CMC,CLD,STD,CLI,STI

8,处理器指令

      1)处理器暂停指令:HLT

      2)处理器脱机指令:ESC

      3)处理器等待指令:WAIT

      4)总线锁定前缀:LOCK

     

 

 

 

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值