当前位置: 首页>>代码示例>>Python>>正文


Python Memory.set_byte方法代码示例

本文整理汇总了Python中memory.Memory.set_byte方法的典型用法代码示例。如果您正苦于以下问题:Python Memory.set_byte方法的具体用法?Python Memory.set_byte怎么用?Python Memory.set_byte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在memory.Memory的用法示例。


在下文中一共展示了Memory.set_byte方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Machine

# 需要导入模块: from memory import Memory [as 别名]
# 或者: from memory.Memory import set_byte [as 别名]

#.........这里部分代码省略.........
            return self.registers[addr.loc] & mask
        else:
            if addr.mode == 1:
                index = addr.data
            else:
                index = 0
            rv = self._get_addr(self.registers[addr.loc] + index, operand_bytes)
            if addr.mode == 3 and inc:
                self.registers[addr.loc] += 2
            return rv

    def _get_addr(self, addr, operand_bytes):
        if operand_bytes == 1:
            return self.mem.get_byte(addr)
        else:
            return self.mem[addr]

    def set_addr(self, addr, v, operand_bytes=None):
        if operand_bytes is None:
            operand_bytes = self.operand_bytes

        if addr.mode == 0:
            mask = (1 << (8 * self.operand_bytes)) - 1
            self.registers[addr.loc] = v & mask
        else:
            if addr.loc == 2 and addr.mode == 1:
                dest = addr.data
            elif addr.mode == 1:
                dest = self.registers[addr.loc] + addr.data
            else:
                dest = self.registers[addr.loc]

            if operand_bytes == 1:
                self.mem.set_byte(dest, v)
            else:
                self.mem[dest] = v

    @property
    def carry(self):
        return self.registers[SR] & 1

    @carry.setter
    def carry(self, v):
        self.registers[SR] &= 0xfffe # clear bit
        self.registers[SR] |= v

    @property
    def zero(self):
        return self.registers[SR] >> 1 & 1

    @zero.setter
    def zero(self, v):
        self.registers[SR] &= ~(1 << 1) & 0xffff
        self.registers[SR] |= v << 1

    @property
    def negative(self):
        return self.registers[SR] >> 2 & 1

    @negative.setter
    def negative(self, v):
        self.registers[SR] &= ~(1 << 2) & 0xffff
        self.registers[SR] |= v << 2

    @property
    def overflow(self):
开发者ID:int3,项目名称:uctf-msp430-tools,代码行数:70,代码来源:emulator.py


注:本文中的memory.Memory.set_byte方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。