本文整理汇总了C#中Reko.UnitTests.Mocks.ProcedureBuilder.IMul方法的典型用法代码示例。如果您正苦于以下问题:C# ProcedureBuilder.IMul方法的具体用法?C# ProcedureBuilder.IMul怎么用?C# ProcedureBuilder.IMul使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Reko.UnitTests.Mocks.ProcedureBuilder
的用法示例。
在下文中一共展示了ProcedureBuilder.IMul方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DtbArrayAccess2
public void DtbArrayAccess2()
{
ProcedureBuilder m = new ProcedureBuilder();
Identifier ds = m.Local(PrimitiveType.SegmentSelector, "ds");
Identifier bx = m.Local16("bx");
Expression e = m.Array(PrimitiveType.Word32, m.Seq(ds, m.Word16(0x300)), m.IMul(bx, 8));
e.Accept(eqb);
TraitCollector coll = new TraitCollector(factory, store, dtb, program);
e.Accept(coll);
Verify("Typing/DtbArrayAccess2.txt");
}
示例2: CEB_SegmentedArray
public void CEB_SegmentedArray()
{
var m = new Reko.UnitTests.Mocks.ProcedureBuilder("CEB_SegmentedArray");
var aw = new ArrayType(PrimitiveType.Int16, 0);
var ds = m.Temp(PrimitiveType.SegmentSelector, "ds");
var bx = m.Temp(PrimitiveType.Word16, "bx");
var acc =
m.Array(
PrimitiveType.Word16,
m.Seq(
ds,
m.Word16(0x5388)),
m.IMul(bx, 2));
CreateTv(globals, Ptr32(factory.CreateStructureType()), Ptr32(factory.CreateStructureType()));
CreateTv(ds, Ptr16(factory.CreateStructureType()), Ptr16(factory.CreateStructureType()));
}
示例3: TrcoArrayAccess
public void TrcoArrayAccess()
{
ProcedureBuilder m = new ProcedureBuilder();
Identifier ds = m.Local(PrimitiveType.SegmentSelector, "ds");
Identifier bx = m.Local16("bx");
Expression e = m.Array(PrimitiveType.Word32, m.Seq(ds, m.Word16(0x300)), m.IMul(bx, 8));
coll = CreateCollector();
e.Accept(eqb);
e.Accept(coll);
StringWriter sb = new StringWriter();
handler.Traits.Write(sb);
string sExp =
"T_1 (in ds : selector)" + nl +
"\ttrait_primitive(selector)" + nl +
"\ttrait_mem_array(300, 8, 0, T_7)" + nl +
"T_2 (in 0x0300 : word16)" + nl +
" trait_primitive(word16)" + nl +
"T_3 (in SEQ(ds, 0x0300) : ptr32)" + nl +
" trait_primitive(ptr32)" + nl +
"T_4 (in bx : word16)" + nl +
" trait_primitive(word16)" + nl +
" trait_primitive(ui16)" + nl +
"T_5 (in 0x0008 : word16)" + nl +
" trait_primitive(word16)" + nl +
" trait_primitive(ui16)" + nl +
"T_6 (in bx * 0x0008 : word16)" + nl +
" trait_primitive(ui16)" + nl +
"T_7 (in SEQ(ds, 0x0300)[bx * 0x0008] : word32)" + nl +
" trait_primitive(word32)" + nl;
Assert.AreEqual(sExp, sb.ToString());
}
示例4: TrcoMultiplication
public void TrcoMultiplication()
{
var prog = CreateProgram();
var m = new ProcedureBuilder();
var id = m.Local32("id");
var e = m.IMul(id, id);
coll = CreateCollector(prog);
e = e.Accept(en);
e.Accept(eqb);
e.Accept(coll);
Verify(null, "Typing/TrcoMultiplication.txt");
}