Avatar billede cms Nybegynder
15. september 2001 - 19:31 Der er 14 kommentarer og
1 løsning

Opcode table / Instruction set for 86-familien

Hvor finder jeg dette?

Det skal bruges til assembling, ikke disassembling. Derfor skal det være sorteret efter instruction og ikke opcode.
Avatar billede martinlind Nybegynder
15. september 2001 - 21:36 #1
Hvis du går ind i compiler options kan du sætte delphi til at lave OBJ filer i stedet for DCU filer, kan du ikke bruge dem ??
Avatar billede cms Nybegynder
16. september 2001 - 11:35 #2
jo det kan nok lige gå, men det andet ville være smartere...
i øvrigt martin, så er det til DWSII jeg laver det :-)
Avatar billede martinlind Nybegynder
16. september 2001 - 16:58 #3
cms >> har du nogle gode eks. til DWSII, det mangler meget synes jeg
Avatar billede cms Nybegynder
16. september 2001 - 17:43 #4
I hvilken retning? Web eller plugin?

Forresten, de OBJ-filer jeg får er rimeligt ubrugelige, de har en masse binært gylle og ikke rigtigt nogle opcodes/asm
Avatar billede martinlind Nybegynder
16. september 2001 - 17:47 #5
DWSII >> Begge dele *S*

ASM >> Måske du kan finde noget på www.borland.com, de har nogle af deres gamle produkter man kan hente gratis ( Turbo asm / TP55 osv. )
Avatar billede cms Nybegynder
17. september 2001 - 17:37 #6
DWSII >> Ikke nogle færdige, køreklare, men en masse rod. Som alt andet */*
Jeg skal nok prøve at finde noget brugbart. Har du nogle specielle ønsker eller er det til en generel præsentation for dig selv/andre?

ASM >> Jeg har en gammel TASM, men kan ikke rigtig bruge den direkte. Den inkluderer opcode tables til alt andet end 86...
Jeg har ikke rigtig lyst til at sidde og finde på alle mulige kombinationer selv og bede den oversætte, og dernæst selv dekode og finde ud af hvor den bruger relative kontra absolutte offsets osv. osv. osv. :-/

PFT:)
Avatar billede martinlind Nybegynder
17. september 2001 - 17:45 #7
DWSII > til en generel præsentation for dig selv/andre *S*, jeg har rodet lidt med den, men synes ret hurtigt jeg løber ind i problemer og kunne godt bruge nogle eks. og demo\'er

/Martin
Avatar billede martinlind Nybegynder
17. september 2001 - 17:46 #8
ASM >> har du prøvet at kigge på Intel\'s hjemme side, måske du kan finde noget der
Avatar billede cms Nybegynder
17. september 2001 - 17:54 #9
prøver
Avatar billede cms Nybegynder
18. september 2001 - 19:33 #10
jeg fandt noget via en søgning på AllTheWeb.com

Hvis du så kan sige mig hvad der menes når der i tabellen står fx \"/4\".

AND - Logical And

| MNEMONICS                | OP XX XX XX XX XX | sw | len | flags    |
+---------------------------+-------------------+----+-----+-----------+
| AND    AL,ib            | 24 i0            |  B |  2  | 0---sz-p0 |
| AND    AX,iw            | 25 i0 i1          |  W |  3  | 0---sz-p0 |
| AND    rb,rmb            | 22 mr d0 d1      |  B | 2~4 | 0---sz-p0 |
| AND    rw,rmw            | 23 mr d0 d1      |  W | 2~4 | 0---sz-p0 |
| AND    rmb,ib            | 80 /4 d0 d1 i0    | NB | 3~5 | 0---sz-p0 |
| AND    rmw,iw            | 81 /4 d0 d1 i0 i1 | NW | 4~6 | 0---sz-p0 |
| AND    rmw,ib            | 83 /4 d0 d1 i0    | EW | 3~5 | 0---sz-p0 |
| AND    rmb,rb            | 20 mr d0 d1      |  B | 2~4 | 0---sz-p0 |
| AND    rmw,rw            | 21 mr d0 d1      |  W | 2~4 | 0---sz-p0 |
+---------------------------+-------------------+----+-----+-----------+

        Usage:  AND    dest,src
        Modifies flags: CF OF PF SF ZF (AF undefined)


        Performs a logical AND of the two operands replacing the destination
        with the result.
Avatar billede cms Nybegynder
18. september 2001 - 19:34 #11
Dette er fra forklarings-\'teksten\':

  mr    = Addressing mode Byte = MODRM(mod-reg-r/m)
  /0~7  = 2nd or 3rd Opcode (MODRM bits 5,4,3 from reg field)
Avatar billede cms Nybegynder
18. september 2001 - 19:34 #12
prøv at tage det ind i notepad før du kigger på tabellen, der gir den lidt mere mening :-)

pft
Avatar billede cms Nybegynder
18. september 2001 - 19:37 #13
BTW: Når Delphi har noget med EAX, ECX, EDX og hvad de hedder alle sammen (32-bit registre ?), er det så særskilte registre, eller \'overlapper\' de nogle andre.

Altså ligesom ax (16-bit) er al(8)+ah(8)

For jeg kan ikke umiddelbart finde noget kode for fx

xor eax, eax




XOR - Exclusive OR

| MNEMONICS                | OP XX XX XX XX XX | sw | len | flags    |
+---------------------------+-------------------+----+-----+-----------+
| XOR    AL,ib            | 34 i0            |  B |  2  | 0---szap0 |
| XOR    AX,iw            | 35 i0 i1          |  W |  3  | 0---szap0 |
| XOR    rb,rmb            | 32 mr d0 d1      |  B | 2~4 | 0---szap0 |
| XOR    rw,rmw            | 33 mr d0 d1      |  W | 2~4 | 0---szap0 |
| XOR    rmb,ib            | 80 /6 d0 d1 i0    | NB | 3~5 | 0---szap0 |
| XOR    rmw,iw            | 81 /6 d0 d1 i0 i1 | NW | 4~6 | 0---szap0 |
| XOR    rmw,ib            | 83 /6 d0 d1 i0    | EW | 3~5 | 0---szap0 |
| XOR    rmb,rb            | 30 mr d0 d1      |  B | 2~4 | 0---szap0 |
| XOR    rmw,rw            | 31 mr d0 d1      |  W | 2~4 | 0---szap0 |
+---------------------------+-------------------+----+-----+-----------+

        Usage:  XOR    dest,src
        Modifies flags: CF OF PF SF ZF (AF undefined)


        Performs a bitwise exclusive OR of the operands and returns
        the result in the destination.
Notations and Format used in this Document

Notation
--------
  OP        Instruction OpCode
  XX        Additional Code bytes
  s        Sign Bit -- E - Sign-extend 8-bit immediate data
                        N - Non
  w        Word/byte Bit -- W - 16-bit operanrs
                            B - 8-bit  operanrs
  len      Instruction length
  MNEMONICS Instruction syntax
  flags    oditszapc
            ||||||||+- Carry flag
            |||||||+-- Parity flag
            ||||||+--- Auxiliary flag
            |||||+---- Zero flag
            ||||+----- Sign flag
            |||+------ Trap flag
            ||+------- Interrupt flag
            |+-------- Direction flag
            +--------- Overflow flag

  mr    = Addressing mode Byte = MODRM(mod-reg-r/m)
  /0~7  = 2nd or 3rd Opcode (MODRM bits 5,4,3 from reg field)

  d0 d1 = Displacement [Low-byte High-byte]
  i0 i1 = Immediate word value
  o0 o1 = Offset value
  s0 s1 = Segment value

  r0    = Relative Short Displacement to label \'sl\' (-128/+127 bytes)
  r0 r1 = Relative Long  Displacement to label \'ll\' (-32768/+32767 bytes)



Mnemonic Notation
-----------------

  mb=memory byte    rb=register byte    rmb=register or memory byte
  mw=memory word    rw=register word    rmw=register or memory word
  md=memory double word    rd=register double word
  mq=memory quad  word

  ib=immediate byte      mwr=memory word    real
  iw=immediate word      mdr=memory double word real
              mqr=memory quad  word real
              mtr=memory ten    byte real

  sl = Short label            np = near pointer
  ll = Long  label            fp = far  pointer

  cr=control register    dr=debug register    tr=test register



Instruction General Format

  +------+      +------+      +------+      +------+      +------+
  |PreFix|      |OpCode|      |MODRM |      |Disp  |      |Imm  |
  +------+      +------+      +------+      +------+      +------+



Avatar billede martinlind Nybegynder
22. september 2001 - 18:20 #14
Har ikke så meget styr på ASM, og kæmper med nimda, hos mig selv og på min server, og er ved at flytte, så jeg er ikke på så tit.

Men tak for point.
Avatar billede cms Nybegynder
22. september 2001 - 19:01 #15
okay :-) håber du får bugt med nimda og flytningen *s*

jeg fandt en Disassembler skrevet i delphi - den hjalp mig meget - er i øjeblikket i gang med at lave en omvendt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester