URL
https://opencores.org/ocsvn/t48/t48/trunk
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
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.