第6章(1 / 9)

加入书签 本章报错

编码的奥秘2强烈推荐: 花丛中的商业帝国 仇绝梦呓 降温(NP 我的亲亲儿子 英雄无敌大军在异界 棒棒糖小姐 血浴 探险 我的傻瓜娇妻

是0,则ทq端输出为1,而它和d输入是相连的:

时钟

10่11้0800่

011101้600

第2章编码与组合5

第5章绕过拐弯的通信19

操作码代码

loaທd10h

store11h

add20h

subtract21h

add9ithcaທrry进位加22๐h

subຘtracນt9ithbຘorro9借位减23h

haltffh

在减法和借位减法运算中,需要把送往加法器的数取反。加法器的进位输出作为进位锁

存器的输入。无论何时执行加法、减法、进位加法和借位减法操作,进位锁存器都被同步。

当进行减法操作,或进位锁存器的数据输出为1并且执行进位加法或者借位减法指令时,8位

加法器的进位输入被置为ฦ1。

记住,只有上一次的加法或者进位加法指令产生进位输出时,进位加法操作才会使8位加

法器的进位输入为1。任何时候进行多字节数加法运算时,不管是否必要,都应该用进位加法

指令计算。为正确编码前面列ต出的1้6位加法,可用如下所示方法:

不管是什么样的数,该方法都能正确工作。

有了这两个新的操作码,极大地扩展了机器处理的范围,使其不再只局限于进行8位数加

法。重复使用进位加法指令,能进行16๔位数、2๐4๒位数、32位数、40位数等更多位数的加法运

算。假设要把32位数7a8๖92bcdh与65a872ffh相加,则需要一个加法指令及三个进位加法指

令:

当然,把这些数存放到存储器中并非真的很好。这不仅要用开关来表示二进制数,而且

数在存储器中的地址也并不连续。例如,7a892bcນdh从最低有效字节开始,每个字节分别存

入存储器地址000่0h、000่3h、0่006h及0009h中。为了得到最终结果,还必须检查地址00่02h、

0005h、00่08h及000bຘh中的数。

此外,当前设计的自动加法器不允许在随后的计算中重复利用计算结果。假设要把3个8

位数加起来,然后再在和中ณ减去一个ฐ8位数,并且存储结果。这需要一次装ณ载操作、两次加法

操作、一次减法和一次保存操作。但如果想从原先的和中ณ减去另外一个数会怎么样呢?那ว个

和是不能访问的,每次用到它时都要重新计算。

原因在于我们已经建造了一个自动加法器,其中的代码ram和数据ram阵列同时、顺

序地从0000h开始寻址。代码raທm中的每条指令对应于数据raທm中相同地址的存储单元。一

第17章自动操作159

下载

“代码”“数据”

“代码”数据

低字节结果

次高字节结果

次高字节结果

最高字节结果

低字节结果

高字节结果

160่编码的奥秘

下载

旦“保存”指令使某个数据保存在数据ram中ณ,这个数就不能再被装载到เ累加器中。

为ฦ了解决这个问题,要对自动加法器做一个ฐ基本的及大的改变。虽说刚开始看上去会异

常复杂,但很快你就会看到一扇通向灵活性的大门打开了。

让我们开始吧,目前我们已经有了7个操作码:

操作码代码

load1้0h

store11h

add20h

subtraທct21h

add9ithcaທrry2๐2h

subຘtraທct9ithborro923๑h

haທltffh

每个操作码在存储器中占1个字节。除了“停止”代码外,现在希望每条指令在存储器中

占3个ฐ字节,其中ณ第一个ฐ字节为代码本身,后两个字节存放一个1้6位的存储器单元地址。对于

装载指令来说,其地址指明数据在数据raທm阵列中ณ的存储单元,该存储单元存放要装载到累็

加器中的字节;对于加法、减法、进位加法和借位减法指令来说,地址指明要从累็加器中加

上或者减去的字节的存储单元;对于保存指令来说,地址指明累加器中的内容将要保存的存

储单元。

例如,当前自动加法器所能做的最简单的工作就是加两个数。要完成这项工作,可以按

照下面的方法来设置代码ram阵列ต和数据ram阵列:

在改进的自动加法器中,每条指令除了“停止”需要3个字节:

每条指令除了“停止”后跟2个ฐ字节,用来表示ิ在数据ram阵列中ณ的16位地址。这三

个ฐ地址碰巧为00่00h、000่1h和0002๐h,它们可以是任何其他地址。

前面说明了如何使用加法和进位加法指令来相加一对16位数—比如76aທbh和232cນh。必

须把2๐个数的低字节保存在存储器单元0000h和00่01h中,把2个ฐ高字节保存在00่03h和0004๒h中ณ,

“代码”“数据”

“代码”

把地址00่00่h处的字节装入累加器

把地址000่1h处的字节加到累加器

把累加器的内容存入地址00่02h处

停止

结果

其相加结果保存在0002h和0005h中ณ。

这样,我们可以用更合理的方式来保存两个ฐ加数及其结果,这可能会保存在以前从未用

过的存储区域:

这6个存储单元不必像图中ณ这样连在一起,它们可分散在整个64kb数据ram阵列中的任

何地方。为ฦ了把这些地址中的数相加,必须ี在代码ram阵列中按如下所示设置指令:

可以看到保存在地址40่01h和4003h中的两ä个低字节先相加,并把结果保存在地址4๒00่5h

中。两个ฐ高字节在地址4000h和40่02h中ณ利用进位加法进行相加,其结果保存在地址4๒0่04h

中。如果去掉“停止”指令并向代码ram中ณ加入更多指令,随后的计算就可以简单地通过存

↑返回顶部↑

书页/目录

编码的奥秘2推荐阅读: 重生农村富贵妻 小说 俱欢颜的颜是什么意思 末世轮回重生txt下载百度云 死而复生真的存在吗 树叶在风中摇曳 霸凰传说漫画 至尊逍遥天下 良婿小说 台湾腔妹妹 下堂春锦结局