CSPspEmu.Core.Tests.CpuEmitterTest.SubstractTest C# (CSharp) Method

SubstractTest() private method

private SubstractTest ( ) : void
return void
        public void SubstractTest()
        {
            ExecuteAssembly(@"
                li r26, 0
                li r27, 1
                li r28, -1
                li r29, 0x7FFFFFFF
                li r30, 0x80000000

                sub r1, r26, r26
                sub r2, r26, r27
                sub r3, r26, r28
                sub r4, r26, r29
                sub r5, r26, r30

                sub r6, r27, r26
                sub r7, r27, r27
                sub r8, r27, r28
                sub r9, r27, r29
                sub r10, r27, r30

                sub r11, r28, r26
                sub r12, r28, r27
                sub r13, r28, r28
                sub r14, r28, r29
                sub r15, r28, r30

                sub r16, r29, r26
                sub r17, r29, r27
                sub r18, r29, r28
                sub r19, r29, r29
                sub r20, r29, r30

                sub r21, r30, r26
                sub r22, r30, r27
                sub r23, r30, r28
                sub r24, r30, r29
                sub r25, r30, r30
            ");

            var ExpectedValues = new int[] {
                0
                ,-1
                ,1
                ,-2147483647
                ,-2147483648
                ,1
                ,0
                ,2
                ,-2147483646
                ,-2147483647
                ,-1
                ,-2
                ,0
                ,-2147483648
                ,2147483647
                ,2147483647
                ,2147483646
                ,-2147483648
                ,0
                ,-1
                ,-2147483648
                ,2147483647
                ,-2147483647
                ,1
                ,0
            };

            for (int n = 1; n <= 25; n++)
            {
                Assert.AreEqual(ExpectedValues[n - 1], CpuThreadState.GPR[n]);
                //Console.WriteLine(CpuThreadState.GPR[n]);
            }
        }