如:指令NO和Ⅰ NC DPTR的二进制编码为 0000000和1010001,用十六进制表示为00和 A3。 ●指令的8位编码把操作码和工作寄存器Rn的下 标n的二进制编号放在一起(n=0~7,用二进 制编号为000~111)。如:指令MOVA,Rn, 其二进制编码为11101rrr,其中低3位rr表示 n的二进制编号,若n=7,则该指令二进制编码 为11101111,用十六进制表示为EF
如:指令NOP和INC DPTR的二进制编码为 00000000和10100011,用十六进制表示为00和 A3。 ⚫指令的8位编码把操作码和工作寄存器Rn的下 标n的二进制编号放在一起(n=0~7,用二进 制编号为000~111)。如:指令MOV A,Rn, 其二进制编码为11101rrr,其中低3位rrr表示 n的二进制编号,若n=7,则该指令二进制编码 为11101111 ,用十六进制表示为EF
2.双字节指令 双字节指令的二进制编码有二个字节, 第一个字节为操作码,第二个字节是操作 的数据(立即数)或操作数所在的地址。 如:数据传送指令MOVA,#67H的二个 字节的二进制编码格式为 01110100和01100111,前一个字节为操作码, 后一个字节是立即数67H。用十六进制表示 为7467
2.双字节指令 双字节指令的二进制编码有二个字节, 第一个字节为操作码,第二个字节是操作 的数据(立即数)或操作数所在的地址。 如:数据传送指令MOV A,#67H的二个 字节的二进制编码格式为: 01110100和01100111,前一个字节为操作码, 后一个字节是立即数67H。用十六进制表示 为7467
.三字节指令 个字节的指令中,操作码占一个字节, 操作数占二个字节,操作数既可以是立即数, 也可以是操作数所在的地址 如:数据传送指令MOV30H,#65H的二进 制编码用十六进制表示为753065:第一个字 节01110101为操作码,第二个字节00110000 操作数所在的地址,第三个字节01100101为操 作的数据
3.三字节指令 三个字节的指令中,操作码占一个字节, 操作数占二个字节,操作数既可以是立即数, 也可以是操作数所在的地址。 如:数据传送指令MOV 30H,#65H的二进 制编码用十六进制表示为753065:第一个字 节01110101为操作码,第二个字节00110000为 操作数所在的地址,第三个字节01100101为操 作的数据
4.常用的符号 ●Rn(n=0~7)一当前工作寄存器组RO~R7 ●i(i=0,1)一当前工作寄存器组的R0或R1; ●ACC一代表累加器A的直接地址EOH ●@一间接寻方式中间址寄存器标志符号; ●#data_8位立即数 ●#data16--16位立即数; ● direct8位片内RAM单元(包括SFR的地址 或符号)的直接地址; ●addr11-11位目的地址;
4. 常用的符号 ⚫Rn(n=0~7)—当前工作寄存器组R0~R7; ⚫i(i=0,1)—当前工作寄存器组的R0或R1; ⚫ACC--代表累加器A的直接地址EOH; ⚫@—间接寻方式中间址寄存器标志符号; ⚫#data—8位立即数; ⚫#data16--16位立即数; ⚫direct—8位片内RAM单元(包括SFR的地址 或符号)的直接地址; ⚫addr11—11位目的地址;
●addr16-16位目的地址,只限于在 LCALL和 LJMP指令中使用 ●Re18位带符号补码数; ●Bit一片内RAM或SFR中的直接寻址位; ●C一代表PSW中的进位标志位,称为累加位 加在位地址前面,表示对该位的状态取 反 ×)一表示寄存器×或单元×中的数据; (×))一表示将寄存器×或×存储单元的 数作为地址的这个地址单元中的数据; 从箭头右边向箭头左边传送数据 上属目录
⚫addr16--16位目的地址,只限于在LCALL和 LJMP指令中使用; ⚫Rel—8位带符号补码数; ⚫Bit—片内RAM或SFR中的直接寻址位; ⚫C—代表PSW中的进位标志位,称为累加位; ⚫/—加在位地址前面,表示对该位的状态取 反; ⚫(×)—表示寄存器×或单元×中的数据; ⚫((×))—表示将寄存器×或×存储单元的 数作为地址的这个地址单元中的数据; ⚫ 从箭头右边向箭头左边传送数据。 上层目录