Repeat a string: Difference between revisions

Content added Content deleted
No edit summary
Line 2,661: Line 2,661:
=={{header|Yorick}}==
=={{header|Yorick}}==
<lang yorick>array("ha", 5)(sum)</lang>
<lang yorick>array("ha", 5)(sum)</lang>

=={{header|Z80 Assembly}}==
<lang z80>PrintChar equ &BB5A ;Amstrad CPC BIOS call, prints the ascii code in the accumulator to the screen.

org &8000
ld b,5 ; repeat 5 times

loop:
call PrintImmediate
byte "ha",0
djnz loop

ret ; return to basic
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PrintImmediate:
pop hl ; get the return address into HL, it's the start of the embedded string.
call PrintString
; inc hl ; if your strings are null-terminated you can omit this, since a 0 equals the "NOP" instruction
jp (hl) ; acts as a ret, returning execution to the instruction just after the embedded string.

PrintString:
ld a,(hl) ; read in a character from the string
or a ; if your strings are null-terminated you can use this as a shortcut, otherwise use the compare instruction
ret z ; exit once the terminator is reached.
call PrintChar ; BIOS call, all regs are preserved.
inc hl ; next char
jr PrintString ; back to start.</lang>

{{out}}
<pre>
hahahahaha
</pre>


=={{header|zig}}==
=={{header|zig}}==