Announcement

Collapse
No announcement yet.

ASM Command "nop"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Scott Turchin
    replied
    Well you are all pretty much right on the money.
    My theory as to what is happening, and the SNA datastream trace will validate this when it comes in....

    a BID is received form the host, it sets the communication conversation and basically says "I'm gonna talk now"...

    This particular piece of software when installed ina particular fashion is not yet gathering data to format (Print server) so it's in a communications mode and can't handle the BID.
    (Badda Bing Badda BID Badda BOOM dr Watson... )


    The trace will also show 140 printer LU's going offline via a NOTIFY right after this, so that's the piece that is missing for validation...This product cleans up VERY nicely after a Dr Watson..) (RH of 810620 for those curious what a NOTIFY is)..

    So, my suspicion is that the noop is either debug left in by the engineer or is in NTWaitFOrMultipleObject function call (Likely since it's gather commo data from the host)..

    Scott


    ------------------
    Scott
    mailto:[email protected][email protected]</A>
    MCSE, MCP+Internet

    Leave a comment:


  • Peter Manders
    replied
    Steve,

    I agree, but INT 3 can be very useful if you want to run a program and have it stop in a a debugger at any particular point you like. With PB's inline assembler it's almost too easy.


    Peter.


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

    Leave a comment:


  • Guest
    Guest replied
    Thanks. I outta dring more coffee before I engage what's left of my brain.
    ( BTW the little embarrased red face seems not to work. )

    Ron

    [This message has been edited by Ron Pierce (edited June 24, 2000).]

    Leave a comment:


  • Steve Hutchesson
    replied
    Peter,

    The suggestion was as Lance saw it, a "simple" way to find a piece of
    compiled code in a dead listing. You can use a large number of NOP's and
    the code will compile OK and with the dead listing, you can simply find
    the NOP sequence in a text editor with the normal search.

    A debugger will not be much use actually finding the piece of code and if
    the compiled file is of a reasonable size, you may need to read through
    some megabytes of assembler dump to get it otherwise.

    Regards,

    [email protected]

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

    Leave a comment:


  • Peter Manders
    replied
    > Steve was just pointing out a simple technique that can be used to locate particular sections of a compiled file

    An INT 3 should do the trick when you want to step through the code from a particular point.


    Peter.


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

    Leave a comment:


  • Lance Edmonds
    replied
    Ron,

    Steve was just pointing out a simple technique that can be used to locate particular sections of a compiled file, rather than telling you there was something "special" that would happen if you used a bunch of NOP's.



    ------------------
    Lance
    PowerBASIC Support
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Guest
    Guest replied
    I saw nothing. What should I see?
    [code]
    With NOP
    =========
    JUNK
    =========
    :00401420 55 push ebp
    :00401421 8BEC mov ebp, esp
    :00401423 53 push ebx
    :00401424 56 push esi
    :00401425 57 push edi
    :00401426 83EC5C sub esp, 0000005C
    :00401429 6A00 push 00000000
    :0040142B 6A00 push 00000000
    :0040142D 6A00 push 00000000
    :0040142F 90 nop
    :00401430 90 nop
    :00401431 90 nop
    :00401432 90 nop
    :00401433 90 nop
    :00401434 90 nop
    :00401435 90 nop
    :00401436 90 nop
    :00401437 90 nop
    :00401438 90 nop
    :00401439 8D65F4 lea esp, dword[ebp-0C]
    :0040143C 5F pop edi
    :0040143D 5E pop esi
    :0040143E 5B pop ebx
    :0040143F 5D pop ebp
    :00401440 C3 ret

    WithOut NOP
    =========
    JUNK
    =========
    :00401420 55 push ebp
    :00401421 8BEC mov ebp, esp
    :00401423 53 push ebx
    :00401424 56 push esi
    :00401425 57 push edi
    :00401426 83EC5C sub esp, 0000005C
    :00401429 6A00 push 00000000
    :0040142B 6A00 push 00000000
    :0040142D 6A00 push 00000000
    :0040142F 8D65F4 lea esp, dword[ebp-0C]
    :00401432 5F pop edi
    :00401433 5E pop esi
    :00401434 5B pop ebx
    :00401435 5D pop ebp
    :00401436 C3 ret

    Leave a comment:


  • Steve Hutchesson
    replied
    Scott,

    db 90 hex (nop) is generally used to pad either data or code to align it.
    It can also be used to delay a following set of instructions but it
    basically the "DO NOTHING EXCEPT TAKE UP SPACE" instruction.

    Now here is a little trick when you want to have a look at Bob Zale's
    assembler code as it compiles in PowerBASIC, add about 10 or so NOPs in the
    code just before the piece of code that you want to examine.

    Code:
        ! nop
        ! nop
        ! nop
        ! nop
        ! nop
        ! nop
        ! nop
        ! nop
        ! nop
        ! nop
    Compile it and run it through your favourite disassembler and search for
    "nop". When you find the sequence of "nop's", what follows it is the piece
    of code you wish to examine.

    Regards,

    [email protected]

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

    Leave a comment:


  • Vladimir Shulakov
    replied
    I think - that NOP's have replaced any call of unused function.
    ------------
    V.Shulakov

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

    Leave a comment:


  • Ian Cairns
    replied
    NOP may mean "do nothing", but it has a function: alignment.
    regards,

    ------------------
    [email protected]

    Leave a comment:


  • Eric Pearson
    replied
    Yes, NOP means "no operation". Do nothing.

    -- Eric

    ------------------
    Perfect Sync: Perfect Sync Development Tools
    Email: mailto:[email protected][email protected]</A>



    [This message has been edited by Eric Pearson (edited June 22, 2000).]

    Leave a comment:


  • Scott Turchin
    started a topic ASM Command "nop"

    ASM Command "nop"

    I have this Dr watson that is occuring, I believe it is when a BID is received from the host, and it's not my product but I am troubleshooting the events and this is the DR Watson log, what is a "nop" ? I would like to say "No op" or no operation but I don't know...
    Code:
    function: <nosymbols>
            017e04f4 c20400           ret     0x4
            017e04f7 90               nop
            017e04f8 90               nop
            017e04f9 90               nop
            017e04fa 90               nop
            017e04fb 90               nop
            017e04fc 90               nop
            017e04fd 90               nop
            017e04fe 90               nop
            017e04ff 90               nop
    FAULT ->017e0500 8b4108           mov     eax,[ecx+0x8]          ds:00eeea06=????????
            017e0503 8b510c           mov     edx,[ecx+0xc]          ds:00eeea06=????????
            017e0506 56               push    esi
            017e0507 8b742408         mov     esi,[esp+0x8]          ss:0345e12b=????????
            017e050b 2bd0             sub     edx,eax
            017e050d 3bd6             cmp     edx,esi
            017e050f 763b             jbe     017e054c
            017e0511 8d1406           lea     edx,[esi+eax]          ds:0256f740=00000000
            017e0514 8b01             mov     eax,[ecx]              ds:00000000=????????
            017e0516 c1ea08           shr     edx,0x8
            017e0519 85c0             test    eax,eax
            017e051b 742f             jz      017e054c
    -------------
    Scott
    mailto:[email protected][email protected]</A>
    MCSE, MCP+Internet
Working...
X
😀
🥰
🤢
😎
😡
👍
👎