Esempio n. 1
0
        public void CurrentAddressEvaluatesProperly()
        {
            // --- Arrange
            var assembler = new Z80Assembler();

            assembler.Compile("");
            assembler.EmitByte(0x00);
            assembler.EmitByte(0x00);

            // --- Act
            var exprNode = ParseExpr("$");
            var result   = assembler.Eval(exprNode);

            // --- Assert
            result.ShouldBe((ushort)0x8002);
        }
Esempio n. 2
0
        public void CurrentAddressEvaluatesProperlyWithStartAddress()
        {
            // --- Arrange
            var assembler = new Z80Assembler();

            assembler.Compile("nop \n nop \n nop");
            assembler.GetCurrentAssemblyAddress();
            assembler.CurrentSegment.StartAddress = 0x6800;
            assembler.EmitByte(0x00);
            assembler.EmitByte(0x00);

            // --- Act
            var exprNode = ParseExpr("$");
            var result   = assembler.Eval(null, exprNode);

            // --- Assert
            result.Value.ShouldBe((ushort)0x6802);
        }