当前位置: 首页 > 知识库问答 >
问题:

LC3双世界右移

酆茂才
2023-03-14

假设我们有编号510(0000 0001 1111 1110),它存储在两个位置

低半价0000 0001

如果我们想执行右移位,我们如何计算进位?所以结果将是

0000 0011 1111 1100

共有1个答案

刘令
2023-03-14

我建议将前8位右移,看看是否有溢出,如果有溢出,将8位左移,加1。在下面的例子中,我使用二进制掩码来检查下半部分的第8位,使用< code >和操作码,我检查该位是否被置位。

.ORIG x3000

    LD R1, DATA         ; load the lower 8 bits into R1
    LD R3, MASK         ; load the mask into R3
    LEA R5, DATA        ; load the mem location of data into R5
    ADD R5, R5, #1      ; offset by 1 to get the upper 8 bits
    ADD R1, R1, R1      ; bit shift right the data in R1
    AND R4, R1, R3      ; check to see if we have overflowed
    BRz NO_CARRY        ; if bit[8] is set then we have a carry

CARRY
    NOT R3, R3          ; 2's complement
    ADD R3, R3, #1      ;
    ADD R1, R1, R3      ; remove bit[8] from the lower 8 bits
    LDR R3, R5, #0      ; load the value of the 8 upper bits into
            ; R3
    ADD R3, R3, R3      ; bit shift right the upper 8 bits
    ADD R3, R3, #1      ; add the carry bit to the upper bits
    ST R1, DATA         ; store the new value into DATA
    STR R3, R5, #0      ; store the new value for the upper bits
    BRnzp END

NO_CARRY
    LDR R3, R5, #0      ; load the value of the 8 upper bits into
                        ; R3
    ADD R3, R3, R3      ; bit shift right the upper 8 bits
    ST R1, DATA         ; store the new value into DATA
    STR R3, R5, #0      ; store the new value for the upper bits

END
    HALT            ; TRAP x25


; Variables 
DATA    .FILL b11111110
        .FILL b00000001

MASK    .FILL b0000000100000000

.END
 类似资料:
  • 4.2. Hello,世界 让我们从经典的"Hello, World"程序开始: 05 package main 07 import fmt "fmt" // Package implementing formatted I/O. 09 func main() { 10 fmt.Printf("Hello, world; or Καλημ?ρα

  • "Do not judge, so that you may not be judged. For with the judgement you make you will be judged, and the measure you give will be the measure you get." (MATTHEW 7:1-2) 问候世界 按照作家韩寒的说法,这个世界存在两种逻辑,一种是逻辑

  • 那么当http2被广泛采用的时候,世界将会成什么样呢?或者说,它会被真正的采用吗? 8.1. http2会如何影响普通人? 到目前为止,http2还没被大范围部署使用,我们也无法确定到底会发生什么变化,但至少可以参考SPDY的例子和曾经做过的实验来进行大概的估计。 http2减少了网络往返传输的数量,并且用多路复用和快速丢弃不需要的流的办法来完全避免了head of line blocking(线

  • Something important is almost never mentioned in all the literature about programming and software development, and as a result we sometimes misunderstand each other. 有一样非常重要的东西从来没有编程/软件开发书籍提到过, 因此我们有

  • 管理繁殖的种群,给人们食物和其他资源来保持他们的快乐,因为不快乐的种群会死去——没有人想看到这一点,不是吗? 可能有Bug,后面如果没有战斗按钮,请删档重玩。

  • 本文向大家介绍TypeScript 你好,世界,包括了TypeScript 你好,世界的使用技巧和注意事项,需要的朋友参考一下 示例 这里我们有一个类 Greeter,它有一个构造函数和一个 greet 方法。我们可以使用 new 关键字构造一个类的实例,然后传入一个字符串,我们希望 greet 方法输出到控制台。Greeter 类的实例存储在 Greeter 变量中,然后我们调用 greet 方