一、操作数类型,指令格式
1.操作数类型
1)立即数
3)内存单元地址
2)寄存器号(X86)
通用寄存器(16位):ax(ah(高8位)+al(第8位)),bx(bh+bl),cx(ch+cl)dx(dh+dl)
基址变址寄存器:si,di,bp,sp
程序计数器:ip
状态寄存器:psw
2.指令格式(一般dst用于存放运算结果)
op dst
op dst,src
二、汇编指令MOV(格式:MOV DST,SRC)
MOV EAX,#050aH ;将十六进制050a 传送到通用寄存器eax中
MOV DI,BX(寄存器到寄存器之间传数)
MOV ES,AX(通用寄存器与段寄存器之间传数)
MOV AX,DS(段寄存器至通用寄存器)
MOV AL,23H(将立即数"复制"到寄存器)
MOV [2000H],02H(直接寻址)
三、ADD ADC INC和SUB SBB DEC
指令格式:ADD DST,SRC ; DST←DST+SRC
指令格式:SUB DST,SRC;DST←DST-SRC
该指令要求DST、SRC 不能同时为存储器,DST不能为立即数,运算结果对标志位有影响。
指令格式:ADC DST,SRC ;DST ← SRC+DST+ CF (进位计数器,存进位值)
指令格式:SBB DST,SRC;DST←DST-SRC-CF
DST、SRC 不能同时为存储器, SRC可为立即数,运算结果对标志位有影响。
指令格式:INC AL ; AL←AL+1
指令格式:DEC BX ; BX ←BX-1
操作数可以是通用寄存器,也可以在内存单元中
四、MUL IMUL和DIV IDIV
无符号乘
MUL SRC;AX←AL*SRC
有符号乘
IMUL SRC;(DX,AX)←AL*SRC
无符号除
DIV SRC
有符号除
DIV SRC
有/无符号除规则
(字节)AL←AX/SRC AH←AX%SRC
(字) AX←(DX,AX)/SRC DX←(DX,AX)%SRC
五,数值位数扩展
CBW AX←AL //只扩展al(8位)到ax(16位)
CWD (DX,AX)←AX //只扩展ax(16位)到dx,ax(32位)
汇编基础知识
原文:https://www.cnblogs.com/itml/p/13263238.html