寄存器与cmp,mov,add,sub,IMUL指令

一,寄存器

  x86-64处理器的16个通用寄存器(https://www.jianshu.com/p/57128e477efb

  编程语言与机器

二,基础指令

  cmp  :比较指令(相同取同,不同都取第一个的值)

  mov  :迁移指令

  add   :加法指令

  sub   :减法指令

  IMUL:乘法指令

三,基础指令说明

  mov:寄存器,数据

  mov:寄存器,寄存器

  mov:寄存器,内存单元

  mov:段寄存器,内存单元

  mov:内存单元,寄存器

  mov:内存单元,段寄存器

  mov:段寄存器,寄存器

  mov:寄存器,段寄存器

 

  add和sub指令同mov一样,都有两个操作对象。它们也可以有以下几种形式: 

  add  寄存器,数据    比如:add ax,8

  add  寄存器,寄存器   比如:add ax,bx 

  add  寄存器,内存单元       比如:add ax,[0] 

  add  内存单元,寄存器       比如:add [0],ax 

 

  sub  寄存器,数据    比如:sub ax,9 

  sub  寄存器,寄存器   比如:sub ax,bx 

  sub  寄存器,内存单元       比如:sub ax,[0] 

  sub  内存单元,寄存器       比如:sub [0],ax

 

  在 64 位模式下执行 IMUL

  在 64 位模式下,IMUL 指令可以使用 64 位操作数。在单操作数格式中,64 位寄存器或内存操作数与 RAX 相乘,产生一个 128 位且符号扩展的乘积存放到           RDX:RAX 寄存器中。在下面的例子中,RBX 与 RAX 相乘,产生 128 位的乘积 -16。
mov rax, -4
mov rbx, 4
imul rbx          ; RDX = 0FFFFFFFFFFFFFFFFh, RAX = -16

4、串指令:

  cld:

  std:

  

 

posted @ 2020-02-07 19:18  ꧁执笔小白꧂  阅读(1624)  评论(0编辑  收藏  举报