flat assembler
Message board for the users of flat assembler.
![]() Goto page 1, 2 Next |
Author |
|
vid
there was already thread about this i think. try searching before posting
|
|||
![]() |
|
LocoDelAssembly
Can you post the thread where it appears? All what I found about NOP is not related to this.
|
|||
![]() |
|
Hunter
I also not found any related topics.
Tomasz, what do you think about this problem? |
|||
![]() |
|
Tomasz Grysztar
Perphaps vid this means threads like this: http://board.flatassembler.net/topic.php?p=23957#23957 ?
|
|||
![]() |
|
vid
yup - you meant something else? (sorry, i don't have those manuals..)
|
|||
![]() |
|
Hunter
Tomasz, I've seen this link, but there are another opcodes.
NOP r/m16 ; 0F 1F /0 NOP r/m32 ; 0F 1F /0 it's official opcode from Intel manual. |
|||
![]() |
|
LocoDelAssembly
I tested the opcodes of that manual on my Athlon64 and no invalid opcode exception was generated
![]() OllyDbg does not recognizes them though |
|||
![]() |
|
vid
does it touch memory region, or what is it for? just faster padding?
|
|||
![]() |
|
mattst88
|
|||
![]() |
|
LocoDelAssembly
Here it is what Hunter is telling:
![]() |
|||
![]() |
|
LocoDelAssembly
Code: format PE GUI 4.0 macro nop src { local ..lea if ~src eq db $0F ..lea: lea eax, src store $1F at ..lea else nop end if } irps instr, noP nOp nOP Nop NoP NOp NOP {macro instr src \{nop src\}} db $66 NOP NOP DWORD [EAX] ; Due to the optimization of FASM, 00H byte displacement will not be encoded NOP DWORD [EAX + 01H] NOP DWORD [EAX + EAX*1 + 01H] db $66 NOP DWORD [EAX + EAX*1 + 01H] NOP DWORD [dword EAX + 00000000H] NOP DWORD [dword EAX + EAX*1 + 00000000H] db $66 NOP DWORD [dword EAX + EAX*1 + 00000000H] int3 At least on my CPU reaches int3 without problems. |
|||
![]() |
|
Tomasz Grysztar
66 90 is "XCHG AX,AX"
![]() |
|||
![]() |
|
Hunter
Ok, Tomasz, could you add muti-byte NOP support to FASM?
![]() |
|||
![]() |
|
RedGhost
hmm, $60 $90 is infact xchg ax, ax
xchg eax, eax generations $90, i did not know this, xchg ebx, ebx or related would be 2 bytes but xchg eax, eax is 1 learn something new everyday ![]() _________________ redghost.ca |
|||
![]() |
|
LocoDelAssembly
|
|||
![]() |
|
Reverend
RedGhost: All "xchg eax, xxx" are one-byte long. That's true for all xchgs with eax as operand. Other variations are two-byte long
|
|||
![]() |
|
MazeGen
See also U.S. Patent 5,701,442. It covers opcodes 0F18-0F1F.
|
|||
![]() |
|
vid
MazeGen wrote: See also U.S. Patent 5,701,442. It covers opcodes 0F18-0F1F. That USA crap is terrible? How can you people live there?!? |
|||
![]() |
|
UCM
vid: no kidding.
How can you patent an instruction? |
|||
![]() |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.