找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2478|回复: 6
打印 上一主题 下一主题
收起左侧

关于单片机机器指令与汇编指令的一些规则

[复制链接]
跳转到指定楼层
楼主
ID:266429 发表于 2018-4-25 11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 慢慢思考 于 2018-4-27 08:59 编辑

     51单片机为8位机,所以其机器指令最多只能有256条。每一条机器指令在芯片内对应着一套硬件实现电路以达到快速运行的目的。
    汇编指令是依据机器指令而编制的计算机编程语言,但我们在指令表中可以看出它们并不是一一对应关系,所以有汇编指令111条而机器指令为255条的说法。如”MOV ARn是一条汇编指令,但对应的就是8Rn均有不同的机器指令也即其对应8条机器指令,这8条机器指令同样也是各自对应一套硬件电路。
   因此,在机器指令表中查不到的动作,你想实现就得自己编程,用已有的机器指令运行多次后来实现。
   不要认为助记符本身就是汇编语言中的命令,”MOV AR0写全了才是一条完整的命令,什么叫完整?这条语句的执行全部是芯片里的硬件实现,所以它只有一个时钟周期就执行完了,它独占着一个机器指令。
    对于SETB bit位操作,在这里面,SETB是一条完整的命令,它对应着一条机器指令,所以它先执行这条机器指令,然后再去处理bit;我们再看SETB C,它也是位操作,但在这里就不能把SETB看作一条完整的指令,它与C合起来才是一条完整的指令,所以我们在指令表中看到它单独对应一条机器指令,执行周期是一个时钟周期,而SETB bit是两个时钟周期,这样设计的目的不说自明。
    前面说过,八位机机器指令最多只能做到256条,所以我们看到有些类汇编指令可以对R0R1进行操作而对其它Rn不能操作,就是这个数量限制的原因,包括上面例子中说的位操作未能都按SETB C的规格做成一条机器指令,也是同样的原因。
    结论:所以学汇编一定要熟悉了解机器指令。
    扩展指令是怎么扩展的,没研究过。16位机理论上可以做到更多,但是,因为16位而可能会影响速度。
    以上所说仅供参考,我所看的书上没有细说,也不知对不对。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:290266 发表于 2018-4-26 02:46 | 只看该作者
着是个值得思考的问题
回复

使用道具 举报

板凳
ID:7485 发表于 2018-4-26 08:59 | 只看该作者
每条汇编指令可以编译成 1个字节、2个字节或3个字节的机器码,所以汇编指令数不可能等于机器码数。
回复

使用道具 举报

地板
ID:266429 发表于 2018-4-27 09:09 | 只看该作者
    汇编指令数少于机器指令数的原因,是汇编语言的编制者在编制时对机器指令进行了归类。这种归类自有其合理性,但却未对其进行充分的说明,如果我们不看机器指令或是看了后不分析,真的会让人对汇编指令犯迷糊,所以,如果我们说汇编指令也是255条而与机器指令一一对应,那许多不好理解的地方立即就明白了。
回复

使用道具 举报

5#
ID:111634 发表于 2018-4-28 12:00 | 只看该作者
你想说明什么问题?什么叫充分说明?充分到什么程度?对不同基础的人来讲,“充分”的标准是不同的。明
回复

使用道具 举报

6#
ID:318397 发表于 2018-4-28 13:37 | 只看该作者
说得对
回复

使用道具 举报

7#
ID:266429 发表于 2018-5-4 08:41 | 只看该作者
zl2168 发表于 2018-4-28 12:00
你想说明什么问题?什么叫充分说明?充分到什么程度?对不同基础的人来讲,“充分”的标准是不同的。明

    的确,充分的标准是不同的。
    目前单片机有关汇编语言的教材中,有些问题没说清楚,这会导致学习难度加大,如有关Ri一说,只说了是这样,但没说为什么这样,然后我们就只能死记。类似的情况还有一些。
    还有,有关对伪指令的解释,看了一些书都是不全面的,它并非如书中所说是标记,而是烧写工具在烧写程序时用的,如ORG,烧写工具会根据这个指令后面的数据,在程序存储器的第一个位置写入跳转指令,再按这个数据所指地址处开始烧写所有程序;END的作用是让烧写工具知道所有程序已经写完了,然后烧写工具据此作一些处理比如说在程序末尾写入机器约定的结束机器指令、向用户发出烧写结束后的一些信息等等。据此,个人认为称其为“伪指令”不太合适,可以称为“烧写指令”。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表