From d28d4a1e768a1bd1cf2dc27a53b2bf01bdeb827d Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Tue, 12 Aug 2014 20:58:36 +0100 Subject: [PATCH] Nao repetir os push e pop --- zx-brainfuck/main.asm | 29 +++++++++++------------------ zx-brainfuck/main.tap | Bin 247 -> 240 bytes 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/zx-brainfuck/main.asm b/zx-brainfuck/main.asm index 89896a6..1b2316d 100644 --- a/zx-brainfuck/main.asm +++ b/zx-brainfuck/main.asm @@ -24,19 +24,20 @@ main ld hl, brainfuck read_bf ld a,(hl) - + push hl + ; EOF cp 0 jr z, end_main - + ; > cp OP_INC_DP jr z, F_INC_DP - + ; < cp OP_DEC_DP jr z, F_DEC_DP - + ; + cp OP_INC_VAL jr z, F_INC_VAL @@ -44,55 +45,47 @@ read_bf ; + cp OP_DEC_VAL jr z, F_DEC_VAL - + ; . cp OP_OUT jr z, F_OUT - + continue + pop hl inc hl jr read_bf - + end_main pop bc ; Tira o BC da stack ret ; Sai para o BASIC F_INC_DP - push hl ld hl, (memory_pos) inc hl ld (memory_pos), hl - pop hl jr continue - + F_DEC_DP - push hl ld hl, (memory_pos) dec hl ld (memory_pos), hl - pop hl jr continue F_INC_VAL - push hl ld hl, (memory_pos) ld a, (hl) inc a ld (hl), a - pop hl jr continue F_DEC_VAL - push hl ld hl, (memory_pos) ld a, (hl) dec a ld (hl), a - pop hl jr continue - + F_OUT - push hl ld hl, (memory_pos) ld a, (hl) rst $10 diff --git a/zx-brainfuck/main.tap b/zx-brainfuck/main.tap index e6100c3a905f67e3567511fd50d0c7c6ed94d6e4..fe9eba2845f0824a8404d28d5a119b8c1ca877b8 100644 GIT binary patch delta 108 zcmey)_p&u>@>vw*=R`r z)7DVmjzPftVRp|ZrIgD16uOO=&^OC>%68QLJm3m~J;rd;9yh_)@4xB;TCmrGpe F0RS-#D>?uG delta 115 zcmeys_?>Y=9#gpDTrBTQ~prmHkf4#WL*Tau9r)k G$OizY@-avN