Skip to content

Instantly share code, notes, and snippets.

@suqdiq
Created April 15, 2015 10:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suqdiq/f3ab83bcf5230f181bb4 to your computer and use it in GitHub Desktop.
Save suqdiq/f3ab83bcf5230f181bb4 to your computer and use it in GitHub Desktop.
arvorezinha v1 PA-RISC Assembly (May/2010)
hpux$ cat arvorezinha.S
.LEVEL 1.1 ; cenas gays do hpux
.SPACE $PRIVATE$ ; o HPPA funciona por spaces, ler arch book
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 ; pra mais informacoes ou esquizofrenia antecipada
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
.SPACE $TEXT$
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
.IMPORT $global$,DATA
.IMPORT $$dyncall,MILLICODE
.IMPORT write,CODE ; eh mais simpatico fazer imports
.IMPORT exit,CODE
.IMPORT __main,CODE
.SPACE $TEXT$
.SUBSPA $LIT$
.align 4
STAR
.STRING "\x2a\x00"
LF
.STRING "\x0a\x00"
.SPACE $TEXT$
.SUBSPA $CODE$
.align 4
.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR ; a cena dos privilege levels eh funny
main
.PROC
.CALLINFO FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
.ENTRY
.CALL
xor %r4,%r4,%r4 ; aka meter %r4 a zero :)
arewedoneyet
comib,=,n 5,%r4,kk10xbai ; se %r4 for 5, BAI NAO!
nop
xor %r3,%r3,%r3 ; inicializar o counter do segundo loope
letsdothis
comb,<=,n %r3,%r4,estrela ; se o %r3 for menor ou igual a %r4
xor %r1,%r1,%r26 ; sim, isto eh um nop
ldi 1,%r26 ; escolher o fd (1 eh stdout)
ldil LR'LF,%r19 ; copiar a stringue com
ldo RR'LF(%r19),%r25 ; paneleirices...
ldi 1,%r24 ; length da stringue
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
bl write,%r2
xor %r1,%r2,%r3 ; sim, isto eh um nop
addi 1,%r4,%r4 ; incrementar o %r4
b arewedoneyet
shladd %r4,2,%r8,%r15 ; sim, isto eh um nop
estrela
ldi 1,%r26 ; ver outro write
ldil LR'STAR,%r19 ; eh a mm merda
ldo RR'STAR(%r19),%r25
ldi 1,%r24
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
bl write,%r2
add %r13,%r14,%r15 ; sim, isto eh um nop
addi 1,%r3,%r3
b letsdothis
nop ; adivinha...
kk10xbai
ldi 0,%r26
.CALL ARGW0=GR
bl exit,%r2
shrpw %r8,%r7,8,%r9 ; nop nop nop
subi,OD 42,%r3,%r12 ; nop nop nop nopppppp! :D
.EXIT
.PROCEND
hpux$ gcc arvorezinha.S
*
**
***
****
*****
hpux$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment