Pcode Opcode meanings--vb__ Software analysis

Source: Internet
Author: User

Pcode Opcode Meanings

==============================================================================

Prefixes:

------------------------------------------------------------------------------

Ad Address

IMP Import

Ld Load

Lit Literal (ie "Hi", 2,8)

Rf Refrence

St Store

V Virtual

DOC Duplicate/redundante Opcode (in the table it'll redirect you to another Opcode)

------------------------------------------------------------------------------

Variable types:

------------------------------------------------------------------------------

i# Integer (#-size:2,4)

Cy Currency

r# Real (#-Size:4,8-single)

Str String

------------------------------------------------------------------------------

Informative (takes no bytes tells to process data):

------------------------------------------------------------------------------

' > ' Put the "following hex in subsegments" to next offset following ARGSTR

Char should be "p" to procedure address

' h ' return hex output of following typechars. Possible (?%,&);

'} ' end Procedure

' < ' to stack

'|' Ignore

------------------------------------------------------------------------------

Arguments (would usually take bytes from the DataStream):

------------------------------------------------------------------------------

'.' The name of Object at the address specified by a Long off the datastream

' B ' a byte off the datastream-formerly '?

'% ' an integer off the datastream

' & ' A long off the datastream

'!' A single off the DataStream

' A ' an argument reference. followed by a Int and a type char.

Takes variable out of the Constantpool

' C ' return the control index,uses one int from the DataStream

' L ' return to local variable reference (uses int off datastream)

' L ' Take (Value of Int off DataStream) local variable references

' m ' return to local Variable reference followed by Typechar

' n ' return hex Integer

' O ' return item off the stack (POP)

' P ' return (value of an Integer off datastream) + Procedure Base Address

' t ' followed by Typechar (' O ' return objectname; ') C ' return control name)

' u ' push...not used anymore

' V ' vTable This is slightly complicated;)

' Z ' return null-termed Unicode String from File (not used?)

------------------------------------------------------------------------------

Type Characters

------------------------------------------------------------------------------

"B" Byte

"?" Boolean

"%" Integer

"!" Single

"&" Long

"~" Variant

"Z" String

------------------------------------------------------------------------------

2 Largebos

5 Invalidexcode

2 Selectcasebyte

1 DOC

3 Fldrfvar UL | ' Ignore used to load a copied var

3 IMPADLDRF A2

3 Memldrfvar

Modified 5 FMEMLDRF

3 FLDPR L | Ignore this loads a memory pointer for previous item? Stores memory items address in variable next function uses address in variable

5 Impadcallhresult

0A 5 ImpAdCallFPR4 h%h%

0B 5 ImpAdCallI2

0C 5 Impadcallcy

0D 5 Vcallhresult VW%P1

0E 3 VCallFPR8

0F 3 Vcallad UC | controlindex= (arg-760)/4

Ten to 5 Thisvcallhresult

3 Thisvcall

3 Thisvcallad

1 Exitprochresult}}

1 Exitproc}

1 ExitProcI2

1 ExitProcR4

1 ExitProcR8

1 exitproccy

3 Fstadfunc L | ' Always followed by FLDPR, i cant find a good not to ignore it

1 a 3 ffree1ad l |

1 B 3 Litstr Uaz |

1C 3 BRANCHF >p If (%p1) then| | End If

1D 3 Brancht >p

1E 3 Branch >up Goto LINE%P1

1F 3 Crec2ansi

3 Crec2uni

1 Fldprthis Uto |

3 IMPADLDPR

3 Fststrnopop

3 NEWIFNULLPR h%

1 Popadldvar | ' Ignore comes after a optional param

Num 3 arydesctemp

3 Litvar_missing L <

5 LitVarI2 La2 ' have something on this just confused

29-1 Ffreead L |

2 a 1 concatstr <%p2 &%P1

2 B 3 PopTmpLdAd2

2 C 5 LATEIDST

2d 3 Aryunlock

2E 3 Arylock

2F 3 Ffree1str L |

3 PopTmpLdAd8

3 Fststr ums%p1 =%p2

32-1 Ffreestr L |

3 Ldfixedstr

1 Cstr2ansi

3 Ffree1var L |

36-1 Ffreevar L |

Panax 1 PopFPR4

3 copybytes

1 PopFPR8

3 a 5 litvarstr LuAZ | ' Have something on this just confused

3 B 1 Ary1ststrcopy

3 C 1 Setlastsystemerror

3D 3 Castad

3E 3 Fldzeroad L |

3F 3 Cvarcy

1 ARY1LDRF

1 ARY1LDPR

1 Cr4var

3 Fststrcopy ul%p1=%p2

3 CVarI2

1 Error

3 Cvarstr L

3 Stfixedstr

3 ILDPR

1 PopAdLd4

4 a 1 Fnlenstr

4 B 3 Onerrorgoto ' questions on this one too

4C 1 Fnlbound

4D 5 Cvarref

4E 3 fstvarcopyobj ul%p1 =%p2 Ignore used to copy an object before passing

4F 3 midstr w Mid (%p4,%p3,%p2) =%p1

1 ci4str

Wuyi 3E DOC

1 Ary1stvar

1 Cboolcy

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.