打印

51机器码不解

[复制链接]
3874|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lwag|  楼主 | 2011-1-14 12:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
ningling_21| | 2011-1-14 12:39 | 只看该作者
沙发
一个指令只对应一个机器码的.

使用特权

评论回复
板凳
lwag|  楼主 | 2011-1-14 12:40 | 只看该作者
那到底选哪一个,有什么规则没有哟?

使用特权

评论回复
地板
lyjian| | 2011-1-14 12:40 | 只看该作者
因为里面有三位包含的是地址码
去除地址信息,指令码就是唯一的

使用特权

评论回复
5
lwag|  楼主 | 2011-1-14 12:45 | 只看该作者
喔,原来这样,我说怎么看一个指令表有256条指令的。谢谢!

使用特权

评论回复
6
ayb_ice| | 2011-1-14 13:13 | 只看该作者
这有什么不解
一条指令有唯一的码就行了

使用特权

评论回复
7
lyjian| | 2011-1-14 13:29 | 只看该作者
楼上的几位都没看懂楼主的意思

使用特权

评论回复
8
刘前辈| | 2011-1-14 14:28 | 只看该作者
2个指令操作差远了:根本2回事;

ACALL是函数地址调用,最后要返回的到主调函数的;要使用堆栈SP保存主调函数返回地址:需要有6个操作动作。

AJMP 直接跳转到操作数指向地址,永不返回,无需SP,仅2个操作。

怎么能同一指令码?

使用特权

评论回复
9
ayb_ice| | 2011-1-14 14:49 | 只看该作者
指令的功能都不同,居然会想到用同一编码

使用特权

评论回复
10
lyjian| | 2011-1-14 19:44 | 只看该作者
晕!
楼上两位最好看清楚理解了楼主的意图再做答复。
********************
看清楚楼主的问题“51的ACALL,AJMP的机器码为什么不唯一?如01,21,41,61,81,A1,C1,E1都是ACALL。而11,31,51,71,91,B1,D1,  F1都是AJMP。?”
楼主是问为什么“ACALL”和"AJMP"的机器码不是唯一的,而不是问为什么“ACALL”和"AJMP"不是同样的机器码。
按楼主理解,代码01,21,41,61,81,A1,C1,E1都是ACALL指令的机器码,而代码11,31,51,71,91,B1,D1,  F1都是AJMP指令的机器码。它是奇怪为什么ACALL和AJMP指令都有8个机器码,而不是一个。
至于为什么我在4楼已经给楼主解释了。

使用特权

评论回复
11
ayb_ice| | 2011-1-14 19:59 | 只看该作者
看图就明白了嘛

未命名.JPG (166.96 KB )

未命名.JPG

使用特权

评论回复
12
xwj| | 2011-1-14 20:49 | 只看该作者
4楼正解

使用特权

评论回复
13
刘前辈| | 2011-1-14 21:49 | 只看该作者
明白,是前辈理解错误。道歉。

这个从指令码结构就可看出了,由于是2K——8页地址选择,所以相当于8条指令。每页对应一条指令。

使用特权

评论回复
14
lwag|  楼主 | 2015-4-5 07:55 | 只看该作者
全都感谢回复,4楼正解!

使用特权

评论回复
15
受不了了| | 2015-4-5 11:32 | 只看该作者
今天清明,楼主四年了还想起来挖坟哇

使用特权

评论回复
16
lwag|  楼主 | 2015-7-7 12:58 | 只看该作者
刘前辈 发表于 2011-1-14 21:49
明白,是前辈理解错误。道歉。

这个从指令码结构就可看出了,由于是2K——8页地址选择,所以相当于8条指令 ...

你是前辈!还道啥歉吗?

使用特权

评论回复
17
pkuzhx| | 2015-7-8 14:00 | 只看该作者
哈哈哈,这个挖坟贴也是很逗啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

163

帖子

2

粉丝