MCS-51系列单片机指令如何判断字节数
如何区分指令为单字节,双字节还是三字节?
//------------------------------------------------------------------
最佳答案:
最基本的方法是查表,但是,查过一遍之后,就会发现规律,能够直接看出指令的字节数,这并不难。
下图是做而论道搜集的MCS-51单片机的指令代码表。
指令的字节数,其规律十分简单,一看指令便可知道,以后根本不用查表。
MCS-51系列单片机指令最长的也就是3字节指令。
其中:
指令的操作码,必定要占用一个字节;
如果指令中,含有8位的立即数,必定要占用一个字节;
如果指令中,含有直接地址或者相对转移的地址,也必定要占用一个字节。
如果指令中,含有16位的立即数或目的地址,则要占用两个字节。
例如:
MOV A, @Ri : 机器码为 (E6 + i),这里只有一个字节的操作码;
MOV A, Rn : 机器码为 (E8 + n),也只有一个字节的操作码;
MOV A, Direct: 机器码为 (E5)(Dir),含有一个字节的操作码,还有一字节的直接地址;
MOV A, #data : 机器码为 (74)(data),含有一个字节的操作码,还有一字节的立即数。
其它的指令,可以自行理解,掌握规律。
.
题目中给定两条指令,可从表中可以查出:
DA A : DA
MOV A, #25H : 74 25
//------------------------------------------------------------------
关键字:MCS-51系列 单片机指令 判断字节数
引用地址:
MCS-51系列单片机指令如何判断字节数
推荐阅读最新更新时间:2024-03-16 16:02
8051单片机教程第十一课:算术运算类指令
不带进位位的加法指令 ADDA,#DATA;例:ADDA,#10H ADDA,direct;例:ADDA,10H ADDA,Rn;例:ADDA,R7 ADDA,@Ri;例:ADDA,@R0 用途:将A中的值与其后面的值相加,最终结果否是回到A中。 例:MOVA,#30H ADDA,#10H 则执行完本条指令后,A中的值为40H。 下面的题目自行练习 MOV34H,#10H MOVR0,#13H MOVA,34H ADDA,R0 MOVR1,#34H ADDA,@R1 带进位位的加法指令 ADDCA,Rn ADDCA,direct ADDCA,@Ri A
[单片机]
PIC单片机常用指令介绍与指令功能分类表
源程序的编写主要就是用这些基本的指令实现你的控制任务。但为了增加源程序的可读性和可维护性,我们引入了伪指令的概念。伪指令本身不会产生可执行的汇编指令,但它们可以帮组“管理”你编写的程序,其实用性和必要性绝不亚于 35 条正真的汇编指令。我们在此着重介绍最常用的几种伪指令。 PIC单片机最常用的几种指令介绍 #include 或 include #include 伪指令的作用是把另外一个文件的内容全部包含复制到本伪指令所在的位置。被包含复制的文件可以是任何形式的文本文件,当然文件中的内容和语法结构必须是MPASM 能够识别的。最经常被“include”的是针对 PIC 单片机内部特殊功能寄存器定义的包 含 头
[单片机]
PIC单片机汇编指令
PIC 8位单片机汇编指令识读 各大类单片机的指令系统是没有通用性的,它是由单片机生产厂家规定的,所以用户必须遵循厂家规定的标准,才能达到应用单片机的目的。 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 在这里笔者介绍PIC 8位单片机汇编语言指令的组成及指令中符号的功能,以供初学者阅读相关书籍和资料时快速入门。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部
[单片机]
51单片机指令系统寻址方式
指令给出参与运算的数据方式称为寻址方式。换句话说,寻址方式就是寻找确定参与操作的数的真正地址。 在MCS-51系列单片机的指令系统中寻址方式共有7种, 立即寻址方式,mcs-51单片机的一种寻址方式,操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H,立即寻址方式通常用于对通用寄存器或内存单元赋初值。 直接寻址方式,指令操作数域给出的是参加运算的操作数地址。在MCS-51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据寄存器和位地址空间。其中,特殊功能寄存器和位地址空间只能用直接寻址方式访问。 寄存器寻址方式,操作数在寄存器中,由指令操作码中的rrr
[单片机]
51单片机两种减法指令的用法介绍
1.带借位减法指令 SUBBA,Rn;(A)(A)-(Rn)-(C),以下类同。 SUBBA,direct SUBBA,@Ri SUBBA,#data 注意:减法之前先清零C,减法指令无不带借位减法指令。 2.减1指令 DECA;(A)(A)-1,以下类同。 DECRn DEC@Ri DECdirect 例、设(R0)=7FH,在内RAM中,(7EH)=00H,(7FH)=40H 执行:DEC@R0 DECR0 DEC@R0 结果为: (R0)= 7EH,(7EH)=0FFH,(7FH)=3FH。
[单片机]
51单片机位及位操作指令
我们已经习惯了“位”一位就是一盏灯的亮和灭,而我们学的指令却全都是用“字节”来介绍的:字节的移动、加法、减法、逻辑运算、移位等等。用字节来处理一些数学问题,比如说:控制冰箱的温度、电视的音量等等很直观,可以直接用数值来表在。可是如果用它来控制一些开关的打开和合上,灯的亮和灭,就有些不直接了?我们知道送往P1口的数值后并不能马上知道哪个灯亮和来灭,而是要化成二进制才知道。工业中有很多场合需要处理这类开关输出,继电器吸合,用字节来处理就显示有些麻烦,所以在8051单片机中特意引入一个位处理机制。 位寻址区 在8051中,有一部份RAM和一部份SFR是具有位寻址功能的,也就是说这些RAM的每一个位都有自已的地址,可以直接用这个地址来
[单片机]
单片机背后的学问可真不少!
我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢? 这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。下面介绍几个基本概念。 1、数的本质和物
[单片机]
MCS-51系列单片机寻找操作数存放单元的地址的方式
寻找操作数存放单元的地址的方式,共6种方式。 1.立即数寻址 所要找的操作数是一二进制数或十进制数,出现在指令中,用“#”作前缀 MOV A,#20H 2.寄存器寻址 操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。 MOV A,R2 3.直接寻址 指令中直接给出操作数的地址。 MOV A,30H MOV 30H,DPH 4.寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用“@”表示前缀。 MOV R0,#30H MOV A,@R0 MOV A,#20H MOV R1,#40H MOV @R1,A 5.变址寻址 操作数地址 = 变地
[单片机]