scientica, there is no SIB
00 000 000 - is byte moder/m
00 - mod = mem operand in m/r field specified by reg pointer only
000 - reg operand
000 - reg as memory pointer operand.
Byte SIB is extention of m/r field, presence of
byte sib is specifyed if m/r field has value 100.
8B with sib present would look in binary like
1000 10dw :** *** 100 :ss iii bbb
where ** *** any bits except for 11 as the greates two.
and ss iii bbb - bits of sib.
Byte sib is present only when byte modr/m is present too.
Thus the least size of opcode with sib would be 3 bytes:
At least one byte for code block
One byte for modr/m
And one byte for sib.
BTW:
Your second post for realvampier looks even better than the first.
It's good to have you here :)
:o ModR/M not SIB, you're right I mixed them up in my mind (I should have re-read the post before falling asleep, {/me studying for a physics test}).
Thanks Svin! I'm glad to be around and to have you as my opcode teacher/master. :) :)
Thanks Svin! I'm glad to be around and to have you as my opcode teacher/master.
.........
.........
.........
I agreed. :alright:
hi the Svin,
iv got a prob with the prefix application...it doesn't seems to be in english, i loaded it up and it has gibrish text (weird chars)..was that in russian (no fonts here)..?
mabye it can be fixed :confused:
iv got a prob with the prefix application...it doesn't seems to be in english, i loaded it up and it has gibrish text (weird chars)..was that in russian (no fonts here)..?
mabye it can be fixed :confused:
Of course it's in russian.
And you should fix it -it's the task.
Read explonation about prefixes, analyze source and replace russian strings with english ones - it's a task for better memorizing prefix values and descriptions - nobody was able to do the task yet, you could be the first.
And you should fix it -it's the task.
Read explonation about prefixes, analyze source and replace russian strings with english ones - it's a task for better memorizing prefix values and descriptions - nobody was able to do the task yet, you could be the first.
ahh, i see now, didn't know that was your intention! sorry :)
keep up the good work mate, irs awsome.
in a night i doubled my knowledge ofo opcodes from ur tuts :alright:
weird enough, your source doesn't seems to compile under masm (or i need to use fasm/tasm?)..
problem that it doesn't recognize SendMessageLVM and mm0.
keep up the good work mate, irs awsome.
in a night i doubled my knowledge ofo opcodes from ur tuts :alright:
weird enough, your source doesn't seems to compile under masm (or i need to use fasm/tasm?)..
problem that it doesn't recognize SendMessageLVM and mm0.
Change it to SendMessage and mm(0)
or add line user32.inc
SendMessageLVM equ SendMessage
the same about mmx registers.
SendMessageLVM was a way with RadAsm to use
lookup for constants for functions.
SendMessage is havinly used to call different window styles functions, for each style there is common to
all functions (Messages) and group of functions that relates only to it.
To look up for those functions in RadAsm I created alias
names for SendMessage (SendMessageLVM,SendMessageED,SendMessageTV etc.)
All they made in a way
SendMessage*** equ SendMessage
This allowed me to include in masmAPIconst.api
lines like:
2SendMessageLVM,LVM_ARRANGE,LVM_CREATEDRAGIMAGE,LVM_DELETEALLITEMS,LVM_DELETECOLUMN,LVM_DELETEITEM,LVM_EDITLABEL,LVM_ENSUREVISIBLE,LVM_FINDITEM,LVM_GETBKCOLOR,LVM_GETCALLBACKMASK,LVM_GETCOLUMN,LVM_GETCOLUMNWIDTH,LVM_GETCOUNTPERPAGE,LVM_GETEDITCONTROL,LVM_GETIMAGELIST,LVM_GETISEARCHSTRING,LVM_GETITEM,LVM_GETITEMCOUNT,LVM_GETITEMPOSTION,LVM_GETITEMRECT,LVM_GETITEMSPACING,LVM_GETITEMSTATE,LVM_GETITEMTEXT,LVM_GETNEXTITEM,LVM_GETORIGIN,LVM_GETSELECTEDCOUNT,LVM_GETSTRINGWIDTH,LVM_GETTEXTBKCOLOR,LVM_GETTEXTCOLOR,LVM_GETTOPINDEX,LVM_GETVIEWRECT,LVM_HITTEST,LVM_INSERTCOLUMN,LVM_INSERTITEM,LVM_REDRAWITEMS,LVM_SCROLL,LVM_SETBKCOLOR,LVM_SETCALLBACKMASK,LVM_SETCOLUMN,LVM_SETCOLUMNWIDTH,LVM_SETIMAGELIST,LVM_SETITEM,LVM_SETITEMCOUNT,LVM_SETITEMPOSITION,LVM_SETITEMPOSITION32,LVM_SETITEMSTATE,LVM_SETITEMTEXT,LVM_SETTEXTKCOLOR,LVM_SETTEXTCOLOR,LVM_SETEXTENDEDLISTVIEWSTYLE,LVM_SORTITEMS,LVM_UPDATE
So I can look up for window message functions used
with SendMessage, and for every window style lookup
invokes messages for only particular group.
or add line user32.inc
SendMessageLVM equ SendMessage
the same about mmx registers.
SendMessageLVM was a way with RadAsm to use
lookup for constants for functions.
SendMessage is havinly used to call different window styles functions, for each style there is common to
all functions (Messages) and group of functions that relates only to it.
To look up for those functions in RadAsm I created alias
names for SendMessage (SendMessageLVM,SendMessageED,SendMessageTV etc.)
All they made in a way
SendMessage*** equ SendMessage
This allowed me to include in masmAPIconst.api
lines like:
2SendMessageLVM,LVM_ARRANGE,LVM_CREATEDRAGIMAGE,LVM_DELETEALLITEMS,LVM_DELETECOLUMN,LVM_DELETEITEM,LVM_EDITLABEL,LVM_ENSUREVISIBLE,LVM_FINDITEM,LVM_GETBKCOLOR,LVM_GETCALLBACKMASK,LVM_GETCOLUMN,LVM_GETCOLUMNWIDTH,LVM_GETCOUNTPERPAGE,LVM_GETEDITCONTROL,LVM_GETIMAGELIST,LVM_GETISEARCHSTRING,LVM_GETITEM,LVM_GETITEMCOUNT,LVM_GETITEMPOSTION,LVM_GETITEMRECT,LVM_GETITEMSPACING,LVM_GETITEMSTATE,LVM_GETITEMTEXT,LVM_GETNEXTITEM,LVM_GETORIGIN,LVM_GETSELECTEDCOUNT,LVM_GETSTRINGWIDTH,LVM_GETTEXTBKCOLOR,LVM_GETTEXTCOLOR,LVM_GETTOPINDEX,LVM_GETVIEWRECT,LVM_HITTEST,LVM_INSERTCOLUMN,LVM_INSERTITEM,LVM_REDRAWITEMS,LVM_SCROLL,LVM_SETBKCOLOR,LVM_SETCALLBACKMASK,LVM_SETCOLUMN,LVM_SETCOLUMNWIDTH,LVM_SETIMAGELIST,LVM_SETITEM,LVM_SETITEMCOUNT,LVM_SETITEMPOSITION,LVM_SETITEMPOSITION32,LVM_SETITEMSTATE,LVM_SETITEMTEXT,LVM_SETTEXTKCOLOR,LVM_SETTEXTCOLOR,LVM_SETEXTENDEDLISTVIEWSTYLE,LVM_SORTITEMS,LVM_UPDATE
So I can look up for window message functions used
with SendMessage, and for every window style lookup
invokes messages for only particular group.
heya. yeah now it compiles OK, thnx
thus when running the exe it fails on leading its resource:
there for it quits the exe with exitprocess.
thus when running the exe it fails on leading its resource:
77E3EA56 FF15 8439E677 CALL NEAR DWORD PTR DS:[77E63984] ; KERNEL32.FindResourceExA
77E3EA5C 85C0 TEST EAX, EAX
77E3EA5E 74 3E JE SHORT USER32.77E3EA9E
there for it quits the exe with exitprocess.
Then you haven't compiled rc files or didn't include their
object in linking.
It's in RadAsm project, so I didn't suply make file.
Those projects has lines for making inside itself when used in RadAsm.
Make sure that you compiled rc file and include it in linking.
object in linking.
It's in RadAsm project, so I didn't suply make file.
Those projects has lines for making inside itself when used in RadAsm.
Make sure that you compiled rc file and include it in linking.
ok, great, got it to work now
compiled under masm8.
i'll put the prefix masm fixed as attachment.
compiled under masm8.
i'll put the prefix masm fixed as attachment.