中文内核操作系统吧 关注:52贴子:635
  • 13回复贴,共1

再次精简指令集

只看楼主收藏回复

就剩这么几条指令了


IP属地:江西1楼2016-09-25 17:12回复
    BSWAP Byte Swap 字节交换
    默认32bit操作尺寸 交换的 64 位通用寄存器的所有 8 个字节。
    Mnemonic Opcode Description
    BSWAP reg32 0F C8 +rd 反向 reg32 字节的顺序。
    BSWAP reg64 0F C8 +rq 反向 reg64 字节的顺序。


    IP属地:江西2楼2016-09-25 17:13
    回复
      BT Bit Test 把指定的位传送给CF
      默认32bit操作尺寸 没有通用寄存器注册结果。
      Mnemonic Opcode Description
      BT reg/mem64, reg64 0F A3 /r 将所选的位的值复制到进位旗。


      IP属地:江西3楼2016-09-25 17:13
      回复
        BTC Bit Test and Complement 把指定的位传送给CF后,还使该位取反
        默认32bit操作尺寸 零扩展到 64 位的 32 位寄存器结果。
        Mnemonic Opcode Description
        BTC reg/mem16, reg16 0F BB /r 将所选的位的值复制到进位旗,然后取反选的点。
        BTC reg/mem32, reg32 0F BB /r 将所选的位的值复制到进位旗,然后取反选的点。
        BTC reg/mem64, reg64 0F BB /r 将所选的位的值复制到进位旗,然后取反选的点。
        BTC reg/mem16, imm8 0F BA /7 ib 将所选的位的值复制到进位旗,然后取反选的点。
        BTC reg/mem32, imm8 0F BA /7 ib 将所选的位的值复制到进位旗,然后取反选的点。
        BTC reg/mem64, imm8 0F BA /7 ib 将所选的位的值复制到进位旗,然后取反选的点。


        IP属地:江西4楼2016-09-25 17:13
        回复
          BTR BTR Bit Test and Reset 把指定的位传送给CF后,还使该位变为0
          默认32bit操作尺寸 零扩展到 64 位的 32 位寄存器结果。
          Mnemonic Opcode Description
          BTR reg/mem16, reg16 0F B3 /r 将所选的位的值复制到进位旗,然后清除所选的位。
          BTR reg/mem32, reg32 0F B3 /r 将所选的位的值复制到进位旗,然后清除所选的位。
          BTR reg/mem64, reg64 0F B3 /r 将所选的位的值复制到进位旗,然后清除所选的位。
          BTR reg/mem16, imm8 0F BA /6 ib 将所选的位的值复制到进位旗,然后清除所选的位。
          BTR reg/mem32, imm8 0F BA /6 ib 将所选的位的值复制到进位旗,然后清除所选的位。
          BTR reg/mem64, imm8 0F BA /6 ib 将所选的位的值复制到进位旗,然后清除所选的位。


          IP属地:江西5楼2016-09-25 17:13
          回复
            BTS Bit Test and Set 把指定的位传送给CF后,还使该位变为1
            默认32bit操作尺寸 零扩展到 64 位的 32 位寄存器结果。
            Mnemonic Opcode Description
            BTS reg/mem16, reg16 0F AB /r 将所选的位的值复制到进位旗,然后设置所选的位。
            BTS reg/mem32, reg32 0F AB /r 将所选的位的值复制到进位旗,然后设置所选的位。
            BTS reg/mem64, reg64 0F AB /r 将所选的位的值复制到进位旗,然后设置所选的位。
            BTS reg/mem16, imm8 0F BA /5 ib 将所选的位的值复制到进位旗,然后设置所选的位。
            BTS reg/mem32, imm8 0F BA /5 ib 将所选的位的值复制到进位旗,然后设置所选的位。
            BTS reg/mem64, imm8 0F BA /5 ib 将所选的位的值复制到进位旗,然后设置所选的位。


            IP属地:江西6楼2016-09-25 17:14
            回复
              CLC Clear Carry Flag
              进位拔旗 F8


              IP属地:江西7楼2016-09-25 17:14
              回复
                CLI Clear Interrupt Flag
                关中断 FA


                IP属地:江西8楼2016-09-25 17:14
                回复
                  INT Interrupt to Vector中断向量
                  Mnemonic Opcode Description
                  INT imm8 CD ib 调用指定的中断矢量 imm8 的中断服务例程。


                  IP属地:江西9楼2016-09-25 17:15
                  回复
                    IRET Return from Interrupt 从中断返回
                    IRETD Return from Interrupt 从中断返回
                    IRETQ Return from Interrupt 从中断返回
                    默认32bit操作尺寸
                    Mnemonic Opcode Description
                    IRET CF 返回从中断 (16 位的操作数大小)。
                    IRETD CF 返回从中断 (32 位的操作数大小)。
                    IRETQ CF 返回从中断 (64 位的操作数大小)。


                    IP属地:江西10楼2016-09-25 17:15
                    回复
                      JMP (Near) Near Jump 近跳转
                      默认64bit操作尺寸 RIP = 从寄存器或内存的 64 位偏移量。
                      JMP reg/mem64 FF /4 近跳转目标指定 reg/mem64。


                      IP属地:江西11楼2016-09-25 17:15
                      回复
                        MOV Move 移动
                        默认32bit操作尺寸
                        32 位立即是符号扩展到 64 位
                        64 位立即。
                        Mnemonic Opcode Description
                        MOV reg/mem8, reg8 88 /r 将 8 位寄存器的内容移动到目标 8 位寄存器或内存操作数。
                        MOV reg/mem16, reg16 89 /r 将一个 16 位寄存器的内容移动到一个 16 位目的地寄存器或内存操作数。
                        MOV reg/mem32, reg32 89 /r 将 32 位寄存器的内容移动到一个 32 位目的地寄存器或内存操作数。
                        MOV reg/mem64, reg64 89 /r 将 64 位寄存器的内容移动到 64 位目的地寄存器或内存操作数。
                        MOV reg8, reg/mem8 8A /r 将 8 位寄存器或内存操作数的内容移到 8 位目标寄存器。
                        MOV reg16, reg/mem16 8B /r 将 16 位寄存器或内存操作数的内容移到 16 位目标寄存器。
                        MOV reg32, reg/mem32 8B /r 将 32 位寄存器或内存操作数的内容移到 32 位目标寄存器。
                        MOV reg64, reg/mem64 8B /r 将一个 64 位寄存器或内存操作数的内容移动到 64 位目标寄存器。
                        MOV reg16/32/64/mem16,segReg 8C /r 将段寄存器的内容移到 16 位、 32 位或 64 位目标寄存器或一个 16 位的内存操作数。
                        MOV reg8, imm8 B0 +rb ib 将 8 位立即值移入 8 位寄存器。
                        MOV reg16, imm16 B8 +rw iw 将一个 16 位立即值移入一个 16 位寄存器。
                        MOV reg32, imm32 B8 +rd id 将一个 32 位立即值移入一个 32 位寄存器。
                        MOV reg64, imm64 B8 +rq iq 将 64 位立即值移入一个 64 位寄存器。
                        MOV reg/mem8, imm8 C6 /0 ib 将 8 位立即值移动到 8 位寄存器或内存操作数。
                        MOV reg/mem16, imm16 C7 /0 iw 将一个 16 位立即值移动到一个 16 位寄存器或内存操作数。
                        MOV reg/mem32, imm32 C7 /0 id 将一个 32 位值,立即移动到一个 32 位寄存器或内存操作数。
                        MOV reg/mem64, imm32 C7 /0 id 将 32 位签名立即值移动到 64 位寄存器或内存操作数。


                        IP属地:江西12楼2016-09-25 17:16
                        回复
                          MOV CRn Move to/from Control Registers
                          操作数大小固定为 64 位。
                          Mnemonic Opcode Description
                          MOV CRn, reg32 0F 22 /r 将一个 32 位寄存器内容移至 CRn
                          MOV CRn, reg64 0F 22 /r 将一个 64 位寄存器内容移至 CRn
                          MOV reg32, CRn 0F 20 /r 移动到一个 32 位寄存器 CRn 的内容。
                          MOV reg64, CRn 0F 20 /r 移动到一个 64 位寄存器 CRn 的内容。


                          IP属地:江西13楼2016-09-25 17:16
                          回复
                            RDRAND Read Random 读取随机
                            Mnemonic Opcode Description
                            RDRAND reg16 0F C7 /6 与一个 16 位的随机数字加载目标寄存器。
                            RDRAND reg32 0F C7 /6 与一个 32 位的随机数字加载目标寄存器。
                            RDRAND reg64 0F C7 /6 与一个 64 位的随机数字加载目标寄存器。


                            IP属地:江西14楼2016-09-25 17:16
                            回复