Ejemplo n.º 1
0
 /// <summary>
 /// Get the proper sub-register of <paramref name="reg" /> that starts at offset
 /// <paramref name="offset" /> and is of size <paramref name="width"/>.
 /// </summary>
 /// <param name="reg">The parent register.</param>
 /// <param name="offset">The bit offset of the sub-register.</param>
 /// <param name="width">The bit width of the sub-register.</param>
 /// <returns>
 /// The sub-register.
 /// </returns>
 /// <remarks>
 /// Most architectures not have sub-registers, and will use this default implementation. This
 /// method is overridden for architectures like x86 and Z80, where sub-registers <code>(ah, al,
 /// etc)</code>
 /// do exist.
 /// </remarks>
 public override RegisterStorage GetSubregister(RegisterStorage reg, int offset, int width)
 => PICRegisters.GetSubregister(reg, offset, width);
Ejemplo n.º 2
0
 /// <summary>
 /// Gets a register given its index number.
 /// </summary>
 /// <param name="i">Zero-based index of the register.</param>
 /// <returns>
 /// The register instance or null.
 /// </returns>
 public override RegisterStorage GetRegister(StorageDomain domain, BitRange range)
 => PICRegisters.GetSubregister(
     PICRegisters.PeekRegisterByIdx(domain - StorageDomain.Register),
     range.Lsb,
     range.Extent) !;