本文整理汇总了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):