SA-MP Forums Archive
[Tutorial] Operadores aritmйticos de #emit - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Operadores aritmйticos de #emit (/showthread.php?tid=466303)



Operadores aritmйticos de #emit - ipsBruno - 27.09.2013

Tutorial para iniciantes


Para quem nгo sabe, no #emit hб operadores, e com isto, podemos deixar nosso cуdigo mais fuckyea pra fazer uma simples somar, ou multiplicaзгo? Jб pensou?



Vou mostrar os mais bбsicos

SDIV
Faz a divisгo de PRI / ALT



SUB
Faz subtraзгo de PRI ao ALT



NEG
Transforma o valor PRI em negativo



ADD
Adiciona o valor do registro primбrio ao secundбrio



SMUL
Multiplicaзгo entre os registros



RETN
Vocк provavelmente vai precisar disto para retornar, mas nгo necessбria




Exemplos:

Quanto й 1 + 5?

pawn Код:
printf("%d", ummaiscinco());

stock ummaiscinco() {

    #emit CONST.PRI 5 // carrega o valor 1
    #emit CONST.ALT 1 // carrega o valor 2
    #emit ADD // adiciona os valores
    #emit RETN //retorna o valor
   
    return true; //pra nгo dar avisos
}

Resposta: 6

Quanto й 100 - 50?

pawn Код:
printf("%d", cemmenoscinquenta());

stock cemmenoscinquenta() {
    #emit CONST.PRI 100
    #emit CONST.ALT 50
    #emit SUB
    #emit RETN
   
    return true;
}
Resposta: 50




Qual valor negativo de 10?

pawn Код:
printf("%d", menos10());

stock menos10() {

    #emit CONST.PRI 10
    #emit NEG
    #emit RETN
   
    return true;
}
Resposta: -10






Quanto й 10 x 1000?

pawn Код:
stock dezvesesmil() {

    #emit CONST.PRI 10
   
    #emit CONST.ALT 1000
    #emit SMUL
    #emit RETN
   
    return true;
}

printf("%d", dezvesesmil());
Resposta: 10000





pawn Код:
stock mildivididodez() {

    #emit CONST.PRI 1000
   
    #emit CONST.ALT 10
    #emit SDIV
    #emit RETN
   
    return true;
}
printf("%d", mildivididodez());

Resposta: 100


Tб, cansei. Vocкs jб devem ter captado a mensagem. Na prуxima eu ensino como somar variбveis e mudar os valores delas carregando elas na memуria com LOAD.

Fui


Re: Operadores de #emit - zSuYaNw - 27.09.2013

Уtimo trabalho Bruno!


reativou seu cйrebro de alienнgena ?


Re: Operadores de #emit - ipsBruno - 27.09.2013

Sim, vou enxer essa бrea de tutoriais sobre isto para o pessoal parar de enxer. A priori, comeзarei pelo mais bбsico, como este tutorial, conforme o tempo vou colocando mais completo.

Nгo pretendo fazer enrolaзгo como o rjjj fez tambйm ..

Cara, se alguйm nгo entender como funcionou essas operaзхes bбsicas. Sу se matando mesmo, mas enfim, qualquer dъvida o pessoal que entendeu vai estar respondendo.


Re: Operadores aritmйticos de #emit - zSuYaNw - 27.09.2013

Mas vocк esqueceu de citar "oque й","Problemas por mau uso" e tambйm "para que serve". seria essencial.


Re: Operadores aritmйticos de #emit - ipsBruno - 27.09.2013

Nesse caso nгo terб problemas pois nгo estamos mexendo com configuraзгo de stack. Por isto pretendo fazer os tutoriais em vбrias etapas PUSH e STACK serгo um dos ъltimos.

Com estes cуdigozinhos aн, pode calcular a vontade


Re: Operadores aritmйticos de #emit - Schocc - 27.09.2013

Nice work. vc leu o manual? +2rep de coraзгo rs


Re: Operadores aritmйticos de #emit - Caio_Freeze - 27.09.2013

esse ai eu consegui entender уtimo tutorial


Re: Operadores aritmйticos de #emit - ipsBruno - 27.09.2013

Valeu galera Se eu aprender alguns truques, ou novas coisas, posto


Re: Operadores aritmйticos de #emit - WLSF - 27.09.2013

Tanta coisa pra fazer...

Enfim, legal vocк comentar essas coisas aqui, sу espero que o povo ao redor valorize, pra nгo ser job jogado fora.


Re: Operadores aritmйticos de #emit - ipsBruno - 27.09.2013

Bem, se nгo valorizarem eu me aposento