正在加载图片...
160编的 Chinaopub.com 下载 旦“保存”指令使某个数据保存在数据RAM中,这个数就不能再被装载到累加器中 为了解决这个问题,要对自动加法器做一个基本的及大的改变。虽说刚开始看上去会异 常复杂,但很快你就会看到一扇通向灵活性的大门打开了 让我们开始吧,目前我们已经有了7个操作码 操作码 Subtract Add with Carry Subtract with borrow 每个操作码在存储器中占1个字节。除了“停止”代码外,现在希望每条指令在存储器中 占3个字节,其中第一个字节为代码本身,后两个字节存放一个16位的存储器单元地址。对于 装载指令来说,其地址指明数据在数据RAM阵列中的存储单元,该存储单元存放要装载到累 加器中的字节:对于加法、减法、进位加法和借位减法指令来说,地址指明要从累加器中加 上或者减去的字节的存储单元:对于保存指令来说,地址指明累加器中的内容将要保存的存 储单元。 例如,当前自动加法器所能做的最简单的工作就是加两个数。要完成这项工作,可以按 照下面的方法来设置代码RAM阵列和数据RAM阵列: 数据 0000h: 10h Load DOh:4Ah BSh 11h Store 结果 FAhAl 在改进的自动加法器中,每条指令(除了“停止”)需要3个字节: nmmh:mh把地址0000的字节装入累加器 把地址000h处的字节加到累加器 Oh amh:1h把累加器的内容存入地址000h处 Dm[mh」停止 每条指令(除了“停止”)后跟2个字节,用来表示在数据RAM阵列中的16位地址。这三 个地址碰巧为0000h、0001h和0002h,它们可以是任何其他地址 前面说明了如何使用加法和进位加法指令来相加一对16位数一比如76ABh和232Ch。必 须把2个数的低字节保存在存储器单元0000h和0001h中,把2个高字节保存在0003h和0004h中,160 编码的奥秘 下载 旦“保存”指令使某个数据保存在数据 R A M中,这个数就不能再被装载到累加器中。 为了解决这个问题,要对自动加法器做一个基本的及大的改变。虽说刚开始看上去会异 常复杂,但很快你就会看到一扇通向灵活性的大门打开了。 让我们开始吧,目前我们已经有了 7个操作码: 操作码 代码 L o a d 1 0 h S t o r e 11 h A d d 2 0 h S u b t r a c t 2 1 h Add with Carry 2 2 h Subtract with Borrow 2 3 h H a l t F F h 每个操作码在存储器中占 1个字节。除了“停止”代码外,现在希望每条指令在存储器中 占3个字节,其中第一个字节为代码本身,后两个字节存放一个 1 6位的存储器单元地址。对于 装载指令来说,其地址指明数据在数据 R A M阵列中的存储单元,该存储单元存放要装载到累 加器中的字节;对于加法、减法、进位加法和借位减法指令来说,地址指明要从累加器中加 上或者减去的字节的存储单元;对于保存指令来说,地址指明累加器中的内容将要保存的存 储单元。 例如,当前自动加法器所能做的最简单的工作就是加两个数。要完成这项工作,可以按 照下面的方法来设置代码R A M阵列 和数据 R A M阵列: 在改进的自动加法器中,每条指令(除了“停止”)需要3个字节: 每条指令(除了“停止”)后跟2个字节,用来表示在数据 R A M阵列中的1 6位地址。这三 个地址碰巧为0 0 0 0 h、0 0 0 1 h和0 0 0 2 h,它们可以是任何其他地址。 前面说明了如何使用加法和进位加法指令来相加一对 1 6位数—比如7 6 A B h和2 3 2 C h。必 须把2个数的低字节保存在存储器单元 0 0 0 0 h和0 0 0 1 h中,把2个高字节保存在0 0 0 3 h和0 0 0 4 h中, “代码” “数据” “代码” 把地址0000h处的字节装入累加器 把地址0001h处的字节加到累加器 把累加器的内容存入地址0002h处 停止 结果
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有