1、第5章 指令系统5.2指令编码 由指令组成的程序以二进制形式存放在计算机的存储器中。一条指令的二进制编码中,根据指令格式,包括操作码、寻址方式、寄存器名称、指令类型等信息。不同的指令含有的信息不同,指令的长度可能不同。5.2指令编码5.2指令编码5.2指令编码 已知add指令的OP代码为000000,写出下列指令的二进制代码。(1)add ax,bx(2)add ax,bx(3)add bx,cx 5.2指令编码 解:根据格式进行编码转换。(1)add ax,bx指令操作码OP编码为000000。用Reg字段表示源操作数bx,则D/S=0,Reg=011。用R/m字段表示目的操作数ax,寄存器
2、寻址方式,得Mod=11,R/m=000。指令为字操作类型,所以W=1。这样指令的编码即为000000 01 11 011 000=01D8H。5.2指令编码 对于这条指令,因为两个都是寄存器寻址方式,所以,也可以换一下源操作数和目的操作数的编码位置。用Reg字段表示目的操作数ax,则D/S=1,Reg=000。用R/m字段表示源操作数bx,寄存器寻址方式,得Mod=11,R/m=011。指令的编码为000000 11 11 000 011=03c3H。5.2指令编码(2)add ax,bx指令的操作码OP编码为000000。用Reg表示目的操作数ax,则D/S=1,Reg=000。用R/m字
3、段表示源操作数,是采用bx间接寻址方式,得Mod=00,R/m=111。指令操作类型是字类型,W=1。指令的编码为000000 1 1 00 000 111=0307H。5.2指令编码(3)add bx,cx指令的操作码OP编码为000000。用Reg表示源操作数cx,则D/S=0,Reg=001。用R/m字段表示目的操作数,是采用bx间接寻址方式,得Mod=00,R/m=111。指令操作类型是字类型,W=1。指令的编码为000000 01 00 001 111=010FH。5.2指令编码 例5-2某机指令格式为,其中X为寻址特征位,X=0表示不变址,X=1表示用变址寄存器X1变址,X=2表示
4、X2变址,X=3表示相对寻址。D是相对量。设当前IP=1234H,X1=0037H,X2=1122H,确定下列指令的有效地址:4420H,2244H,1322H,3521H。5.2指令编码 解:(1)指令代码4420H=0100 0100 0010 0000B,按指令格式划分为OP=010001,X=00,说明操作数为不变址,即直接寻址D=00100000=20H。所以有效地址=20H。(2)指令2244H=0010 0010 0100 0100B,按指令格式划分为OP=001000,X=10,采用X2 寄存器变址,D=01000100=44H。所以有效地址=X2+44H=1122H+44H=1166H。(3)指令1322H=0001 0011 0010 0010B,按指令格式划分为OP=000100,X=11,为相对寻址,即用IP加相对量寻址D=00100010=22H。所以有效地址=IP+22H=1234H+22H=1256H。(4)指令3521H=0011 0101 0010 0001B,按指令格式划分为OP=001101,X=01,采用X1 寄存器变址,D=00100001=21H。所以有效地址=X1+21H=0037H+21H=0058H。