Created
April 15, 2015 10:36
-
-
Save suqdiq/f3ab83bcf5230f181bb4 to your computer and use it in GitHub Desktop.
arvorezinha v1 PA-RISC Assembly (May/2010)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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