1.没有操作数的指令
指令长度为1个字节
2.操作数只涉及寄存器的的指令
指令长度为2个字节
如:mov bx,ax
3.操作数涉及内存地址的指令
指令长度为3个字节
如:mov ax,ds:[bx+si+idata]
4.操作数涉及立即数的指令
指令长度为:寄存器类型+1
8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节
16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节
5.跳转指令
分为2种情况:
5.1 段内跳转
指令长度为2个字节或3个字节
jmp指令本身占1个字节
段内短转移,8位位移量占一个字节,加上jmp指令一个字节,整条指令占2个字节
如:jmp short opr
段内近转移,16位位移量占两个字节,加上jmp指令一个字节,整条指令占3个字节
如:jmp near ptr opr
5.2 段间跳转
指令长度为5个字节
如:jmp dword ptr table[bx][di]
或 jmp far ptr opr
或 jmp dword ptr opr
6.inc指令
占用一个字节
7.push指令
占用一个字节
8.segment声明
占用两个字节
如codesg segment
9.int 21h
占用两个字节