• mov 内存地址1:内存地址2。把地址上的数据从2赋值到1
  • sub 。。。 数据1-数据2
  • add 。。。 +
  • inc 寄存器 让寄存器上的数据+1
  • dw “define word” 定义字型数据
  • and 逻辑与命令,按位进行与运算 可以通过该命令将相应为变为0,其他位不变

例如:

mov al,01100011b
and al,00111011b

执行后al=00100011b

  • or 按位进行或运算 前面一个例子,如果是or的话为01111011b,可以通过该命令将相应位变为1,其他为不变
  • db,字符型数据
  • ptr word ptr,byte ptr ,确定是什么数据
  • div 除法指令,被除数要比除数多8位,如果除数为8位,被除数为16位,除数为16位,被除数为32位,被除数可以用dx和ax存放

如果除数为8位,则用al储存商,ah储存余数,如果除数为16位,则用ax储存商,dx储存余数

例: div bl 这个就是除数为8位,默认被除数是ax

div bx 这个除数是16位,则要用dx和ax两个寄存器来储存被除数,先转为16进制,dx储存高位,ax储存低位

例 计算 100001/100
被除数大于65536,因此要用32位 寄存器,100001的16进制是186A1h

mov dx1h
mov ax,86A1h
mov bx,100
div bx

  • diwdw(这不是关键字,这是一个子程序) 进行不会产生除法溢出的运算,被除数为dword型,除数为word型,结果为dword型

参数: ax=dword 型数据低十六位

 dx=高十六位

 cx=除数

返回:dx=结果高十六位,ax=结果低十六位 cx=余数

原理(公式):x/n=int(h/n)65536+[rem(h/n)65536+l]/n

x:被除数 , n:除数 h :x高十六位 ,l :x低十六位,int():取商,例 int(38/10)=3,rem():取余数

  • dd 双字型
  • dup 用于数据的重复
  • jmp 用于跳转
  • jcxz 格式 jcxz 标号(如果cx=0,则跳转到标号处运行) 这是短指令
  • ret 用栈数据修改ip
  • retf 用栈数据修改cs和ip
  • call 先把ip存入栈,再跳转
  • call far ptr 先存 ip,再存cs,再跳转
  • call word ptr 根据内存
  • mul 乘法指令
  • offset 获取标号的偏移地址
  • adc 带进位加法指令
  • sbb 带借位减法指令
  • cmp 比较指令
  • j… 例 je ja jb 带条件跳转指令
  • movsb, movsw ,串传送指令
  • rep 根据cx的值,重复执行串传送指令
  • cld df=0
  • std df=1
  • pushf,将标志寄存器的值压入栈
  • popf,将标志寄存器的值弹出栈