Add tests for ADD and ADDC instructions
[emu8051.git] / tests / add.asm
diff --git a/tests/add.asm b/tests/add.asm
new file mode 100644 (file)
index 0000000..cbb6eb2
--- /dev/null
@@ -0,0 +1,44 @@
+; Test program to verify correct emu8051 operation
+;
+; Test desc: ADD
+; Test output: PC = $FFF0
+; Test output: SP = $07
+; Test output: A = $20
+; Test output: B = $00
+; Test output: PSW = $01
+; Test output: R0 = $0F
+; Test output: R1 = $11
+; Test output: R2 = $10
+; Test output: R3 = $1F
+; Test output: R4 = $20
+
+        ORG     0000h           ; Reset vector
+
+        ;; ADDC
+
+        CLR     C
+        MOV     A, #0FFh
+        ADDC    A, #10h         ; CY=1, A=$0F
+        MOV     R0, A
+
+        MOV     A, #00h
+        ADDC    A, #10h         ; CY=0, A=$11
+        MOV     R1, A
+
+        SETB    C
+        MOV     A, #0FFh
+        ADDC    A, #10h         ; CY=1, A=$10
+        MOV     R2, A
+
+        ;; ADD
+
+        MOV     A, #0FFh
+        ADD     A, #20h         ; CY=1, A=$1F
+        MOV     R3, A
+
+        MOV     A, #00h
+        ADD     A, #20h         ; CY=0, A=$20
+        MOV     R4, A
+
+        LJMP    0FFF0h
+        END