Rechercher dans la communauté
Affichage des résultats pour les étiquettes 'amx'.
3 résultats trouvés
-
Trier par
- Date
- Pertinence
-
This Is crp gamemode Link : htpps://rapidtory.com/7W8k
-
Ce n'est pas vraiment un tutoriel, mais plus une liste des p-codes que j'ai recueilli dans amx.c en les accompagnant de leur implémentation en C. Pour les comprendre, vous devez savoir déréférencer un pointeur. Cela peut vous aider à coder en assembleur AMX, seulement si vous avez compris comment la mémoire fonctionne. CELL = 4 hdr = header cod = code segment data = data segment cip = Current Instruction Pointer frm = Frame pointer stk = stack stp = stack top pointer heap = heap (lol ?) pri = Registre primaire alt = Registre alterné offset = Adresse locale ou constante LOAD.PRI > pri = *(data + offset) LOAD.ALT > alt = *(data + offset) LOAD.S.PRI > pri = *(data + frm + offset) LOAD.S.ALT > alt = *(data + frm + offset) LREF.PRI > pri = *(data + *(data + offset)) LREF.ALT > alt = *(data + *(data + offset)) LREF.S.PRI > pri = *(data + *(data + frm + offset)) LREF.S.ALT > alt = *(data + *(data + frm + offset)) LOAD.I > pri = *(data + pri) LODB.I > pri = *(data + pri) CONST.PRI > pri = offset CONST.ALT > alt = offset ADDR.PRI > pri = frm + offset ADDR.ALT > alt = frm + offset STOR.PRI > *(data + offset) = pri STOR.ALT > *(data + offset) = alt STOR.S.PRI > *(data + frm + offset) = pri STOR.S.ALT > *(data + frm + offset) = alt SREF.PRI > *(data + *(data + offset)) = pri SREF.ALT > *(data + *(data + offset)) = alt SREF.S.PRI > *(data + *(data + frm + offset)) = pri SREF.S.ALT > *(data + *(data + frm + offset)) = alt STOR.I > *(data + alt) = pri STRB.I > *(data + alt) = pri LIDX > pri = *(data + (pri * CELL + alt)) LIDX.B > pri = *(data + (pri << offset) + alt) IDXADDR > pri = pri * CELL + alt; IDXADDR.B > pri = (pri << offset) + alt; ALIGN.PRI > pri ^= CELL - offset; ALIGN.ALT > alt ^= CELL - offset; LCTRL > pri = valeur du registre/segment (constantes valides : 0=hdr cod, 1=hdr data, 2=heap, 3=stp, 4=stk, 5=frm, 6=cip) SCTRL > registre/segment = pri (constantes valides : 2=heap, 4=stk, 5=frm, 6=cip) MOVE.PRI > pri = alt MOVE.ALT > alt = pri XCHG > pri = alt | alt = pri PUSH.PRI > *(data + (stk - CELL)) = pri PUSH.ALT > *(data + (stk - CELL)) = alt PUSH.R > ??? PUSH.C > *(data + (stk - CELL)) = offset PUSH > *(data + (stk - CELL)) = *(data + offset) PUSH.S > *(data + (stk - CELL)) = *(data + frm + offset) PUSH.ADDR > *(data + (stk - CELL)) = frm + offset POP.PRI > pri = *(data + (stk - CELL)) POP.ALT > alt = *(data + (stk - CELL)) STACK > alt = stk, stk += offset; HEAP > alt = heap, heap += offset; PROC > *(data + (stk - CELL)) = frm, frm = stk RET > ??? RETN > Simple return CALL > Appelle une fonction en offset CALL.PRI > Appelle une fonction du registre primaire JUMP > cip = cod + offset JUMP.PRI > cip = cod + pri JREL > cip = cip + offset + CELL JZER > cip = pri == 0 ? cod + offset : cip + CELL JNZ > cip = pri != 0 ? cod + offset : cip + CELL JEQ > cip = pri == alt ? cod + offset : cip + CELL JNEQ > cip = pri != alt ? cod + offset : cip + CELL JLESS > cip = pri < alt ? cod + offset : cip + CELL JLEQ > cip = pri <= alt ? cod + offset : cip + CELL JGRTR > cip = pri > alt ? cod + offset : cip + CELL JGEQ > cip = pri >= alt ? cod + offset : cip + CELL JSLESS > cip = pri < alt ? cod + offset : cip + CELL JSLEQ > cip = pri <= alt ? cod + offset : cip + CELL JSGRTR > cip = pri > alt ? cod + offset : cip + CELL JSGEQ > cip = pri >= alt ? cod + offset : cip + CELL SHL > pri <<= alt SHR > pri >>= alt SSHR > pri >>= alt SHL.C.PRI > pri <<= offset SHL.C.ALT > alt <<= offset SHR.C.PRI > pri >>= offset SHR.C.ALT > alt >>= offset SMUL > pri *= alt SDIV > offset = (pri % alt + alt) % alt, pri = (pri - offset) / alt, alt = offset SDIV.ALT > offset = (alt % pri + pri) % pri, pri = (alt - offset) / pri, alt = offset UMUL > pri *= alt UDIV > offset = (pri % alt + alt) % alt, pri = (pri - offset) / alt, alt = offset UDIV.ALT > offset = (alt % pri + pri) % pri, pri = (alt - offset) / pri, alt = offset ADD > pri += alt SUB > pri -= alt SUB.ALT > pri = alt - pri AND > pri &= alt OR > pri |= alt XOR > pri ^= alt NOT > pri = !pri NEG > pri = -pri INVERT > pri = ~pri ADD.C > pri += offset SMUL.C > pri *= offset ZERO.PRI > pri = 0 ZERO.ALT > alt = 0 ZERO > *(data + offset) = 0 ZERO.S > *(data + frm + offset) = 0 SIGN.PRI > pri |= ~0xff SIGN.ALT > alt |= ~0xff EQ > pri = pri == alt ? 1 : 0 NEQ > pri = pri != alt ? 1 : 0 LESS > pri = pri < alt ? 1 : 0 LEQ > pri = pri <= alt ? 1 : 0 GRTR > pri = pri > alt ? 1 : 0 GEQ > pri = pri >= alt ? 1 : 0 SLESS > pri = pri < alt ? 1 : 0 SLEQ > pri = pri <= alt ? 1 : 0 SGRTR > pri = pri > alt ? 1 : 0 SGEQ > pri = pri >= alt ? 1 : 0 EQ.C.PRI > pri = pri == offset ? 1 : 0 EQ.C.ALT > pri = alt == offset ? 1 : 0 INC.PRI > pri++ INC.ALT > alt++ INC > *(data + offset) += 1 INC.S > *(data + frm + offset) += 1 INC.I > *(data + pri) += 1 DEC.PRI > pri-- DEC.ALT > alt-- DEC > *(data + offset) -= 1 DEC.S > *(data + frm + offset) -= 1 DEC.I > *(data + pri) -= 1 MOVS > memcpy(data + alt, data + pri, offset) CMPS > pri = memcmp(data + alt, data + pri, offset) FILL > ??? HALT > ??? BOUNDS > ??? SYSREQ.PRI > Appelle une native du registre primaire SYSREQ.C > Appelle une native en offset SYSREQ.D > ??? FILE > ??? LINE > ??? SYMBOL > cip += offs SRANGE > ??? SYMTAG > ??? SWITCH > ??? CASETBL > ??? SWAP.PRI > offset = *(data + stk), *(data + stk) = pri, pri = offset SWAP.ALT > offset = *(data + stk), *(data + stk) = alt, alt = offset NOP > ??? BREAK > ???
-
- amx
- mnémonique
-
(et 3 en plus)
Étiqueté avec :
-
Ce sujet fait office de support le tutoriel Liste des P-Codes (mnémoniques) + définition. Merci de poster vos questions ici.
- 1 réponse
-
- mnémonique
- pcode
-
(et 3 en plus)
Étiqueté avec :