OpenCores
URL https://opencores.org/ocsvn/t48/t48/trunk

Subversion Repositories t48

[/] [t48/] [tags/] [rel_1_1/] [sw/] [verif/] [black_box/] [call/] [call_ret/] [test.asm] - Diff between revs 289 and 292

Only display areas with differences | Details | Blame | View Log

Rev 289 Rev 292
        ;; *******************************************************************
        ;; *******************************************************************
        ;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $
        ;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $
        ;;
        ;;
        ;; Test CALL + RET(R) with simple program.
        ;; Test CALL + RET(R) with simple program.
        ;; *******************************************************************
        ;; *******************************************************************
        INCLUDE "cpu.inc"
        INCLUDE "cpu.inc"
        INCLUDE "pass_fail.inc"
        INCLUDE "pass_fail.inc"
        ORG     0
        ORG     0
        ;; Start of test
        ;; Start of test
        mov     r0, #008H
        mov     r0, #008H
        call    recursive
        call    recursive
call1:  call    sub1
call1:  call    sub1
        jc      fail
        jc      fail
        jf0     fail
        jf0     fail
        jf1     ok_1
        jf1     ok_1
        jmp     fail
        jmp     fail
ok_1:
ok_1:
        ;; check stack contents
        ;; check stack contents
        mov     r0, #008H
        mov     r0, #008H
        mov     a, @r0
        mov     a, @r0
        add     a, #(~(call1+2 & 0FFH) + 1) & 0FFH
        add     a, #(~(call1+2 & 0FFH) + 1) & 0FFH
        jnz     fail
        jnz     fail
        inc     r0
        inc     r0
        mov     a, @r0
        mov     a, @r0
        add     a, #(~((call1+2) >> 8) + 1) & 0FFH
        add     a, #(~((call1+2) >> 8) + 1) & 0FFH
        jnz     fail
        jnz     fail
        inc     r0
        inc     r0
        mov     a, @r0
        mov     a, @r0
        add     a, #(~(call2+2 & 0FFH) + 1) & 0FFH
        add     a, #(~(call2+2 & 0FFH) + 1) & 0FFH
        jnz     fail
        jnz     fail
        inc     r0
        inc     r0
        mov     a, @r0
        mov     a, @r0
        add     a, #(~((call2+2) >> 8 | 0A0H) + 1) & 0FFH
        add     a, #(~((call2+2) >> 8 | 0A0H) + 1) & 0FFH
        jnz     fail
        jnz     fail
        clr     c
        clr     c
        clr     f0
        clr     f0
        clr     f1
        clr     f1
        call    sub3
        call    sub3
        jc      fail
        jc      fail
        jf0     fail
        jf0     fail
pass:   PASS
pass:   PASS
fail:   FAIL
fail:   FAIL
        ORG     0156H
        ORG     0156H
recursive:
recursive:
        dec     r0
        dec     r0
        mov     a, r0
        mov     a, r0
        jz      rec_end
        jz      rec_end
        call    recursive
        call    recursive
rec_end:
rec_end:
        ret
        ret
        ORG     0245H
        ORG     0245H
sub1:   cpl     f0
sub1:   cpl     f0
        cpl     f1
        cpl     f1
        cpl     c
        cpl     c
call2:  call    sub2
call2:  call    sub2
        jf0     sub1_1
        jf0     sub1_1
        jmp     fail2
        jmp     fail2
sub1_1: jnc     fail2
sub1_1: jnc     fail2
        retr
        retr
sub2:   jf0     sub2_1
sub2:   jf0     sub2_1
        jmp     fail2
        jmp     fail2
sub2_1: clr     f0
sub2_1: clr     f0
        jnc     fail2
        jnc     fail2
        clr     c
        clr     c
        retr
        retr
fail2:  FAIL
fail2:  FAIL
        ORG     0311H
        ORG     0311H
sub3:   cpl     f0
sub3:   cpl     f0
        cpl     c
        cpl     c
        call    sub4
        call    sub4
        jf0     fail3
        jf0     fail3
        jc      fail3
        jc      fail3
        ret
        ret
sub4:   jf0     sub4_1
sub4:   jf0     sub4_1
        jmp     fail3
        jmp     fail3
sub4_1: clr     f0
sub4_1: clr     f0
        jnc     fail3
        jnc     fail3
        clr     c
        clr     c
        ret
        ret
fail3:  FAIL
fail3:  FAIL
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.