x86 Assembly

Moderators: None (Apply to moderate this forum)
Number of threads: 4556
Number of posts: 16011

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
brand newby Posted by Tsikman on 10 Dec 2003 at 3:25 AM
I have looked at some code trying to learn about assembly.
Then I picked up aoa
32-bit Windows Edition Featuring HLA
Is there something wrong with me. Before today I was used to the mov instruction to work like this

mov ax, 1000

where ax would recieve the value

mov dest, source

how about this text??????
Is this some sort of uncompiled code that works differently
I mean I am not used to the semicolons either????

//this code accesses a member of an array
//assuming that the index number is being transferred to ebx
//so taht it can be played with

mov( index, ebx ); //source to dest... right???

//multiplying by 4 to get the fourth element of the array
shl( 2, ebx ); //the fourth index into ebx
//*books comment here for previous instruction*
//Sneaky way to compute 4*ebx

//finally moving the 4 index of the array into the eax to be used
mov( SixteenInts[ ebx ], eax );


am I wrong ??? got confused here I am sure it is easy for someone with knowledge... thx for the help in advance. Tsikman!


Report
Re: brand newby Posted by jeffleyda on 10 Dec 2003 at 8:03 AM
: mov ax, 1000
:
: where ax would recieve the value
:
: mov dest, source
:

: how about this text??????

:
: mov( index, ebx ); //source to dest... right???


It's certainly confusing. This is an HLA "feature" for some, curse for others. This has been a hot topic of debate for years:

(sorry about the annoyingly long link)

http://groups.google.com/groups?q=hla+source+destination+intel&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=VU7fb.11780%24RW4.8077%40newsread4.news.pas.earthlink.net&rnum=7

Basically, the HLA author decided it was more human natural to say "put 1000 in eax" instead of "set eax to 1000".

As stated by Randal Hyde himself in the above link:

"HLA was not designed for people who know any prior assembly.
Had you never seen it[intel's method], you wouldn't care."


Funny how things would have been less confusing for you if you'd done less research! ;)

-jeff!
Report
Re: brand newby Posted by Tsikman on 10 Dec 2003 at 7:44 PM
so then correct me if I am wrong?
If I want to reverse engineer something I will be reading real x86 assembly
hence right to left mov instruction

mov dest, source

if I program in hla then I will have to write it opposite left to right
mov source, dest

I am interested in reverse engineering rather then writing most of my code in assembly.
What should I study? As a beginner I am looking for a good direction to go. I am using softice as a debugger and that.... is always "real" assembly, I am guessing?

I want to learn how to understand to write programs in assembly too.
Tsikman any help greatly appreciated!
Report
Re: brand newby Posted by jeffleyda on 11 Dec 2003 at 7:46 AM
: so then correct me if I am wrong?
: If I want to reverse engineer something I will be reading real x86 assembly
: hence right to left mov instruction
:
: mov dest, source
:
Correct.

: if I program in hla then I will have to write it opposite left to right
: mov source, dest
:

Yep. Fun isn't it?

: I am interested in reverse engineering rather then writing most of my code in assembly.
: What should I study? As a beginner I am looking for a good direction to go. I am using softice as a debugger and that.... is always "real" assembly, I am guessing?

I'd suggest dumping HLA. I really don't know that much about it, but as the author himself suggests, it's meant for people that have never written/studied asm before, and certainly your interest in debugging and reverse engineering takes you out of HLA's target audience.

I myself learned ASM by reverse engineering games (removing doc checks) using soft-ice in the late 80s. It may not have been the most structured learning environment, but it was something that interested me, which is way better than most of the homework we've seen posted on this messageboard.

I don't know what you're trying to reverse engineer, but my suggestion is to get a few sample pieces of source code (a simple "hello world" type program will do fine) compile it, then load it up in soft-ice and watch how it works. Then change the code, make it do something else and trace through it again. I'd also suggest simple DOS mode programs to start with. The knowledge gained by working there will apply to higher level windows/protected mode/whatever applications later on.

good luck,
-jeff!
Report
Re: brand newby Posted by Bitdog on 11 Dec 2003 at 7:12 PM
Mr Tsikman, I have a beginners DOS Nasm environment that has
some commented code examples, blank template.asms, & stuff for beginners.
Its free and at
http://bitdog.home.att.net/files/nasmenv.zip

Nasm is basicly standard .asm programming, except addressing.
Everything is an address that's not a reserved word (like an instruction)
You can do anything you want with my code and your softice debugger will work fine with Nasm assembled programs.

Other assemblers are availble else where that are good also.
HLA sounds like a big mistake to me, since every other assembler is
so simular in their codeing & usage, that once you learn a normal
assembler, you can easily read code from other assemblers,
& with a bit of learning, write in the other assemblers style.

Bitdog
PS, hello Jeff
I'm 1/2 way through my new nasmemv project,
then I'm thinking about going back to the cool project debugging.

Report
Re: brand newby Posted by yeohhs on 11 Dec 2003 at 7:40 PM
: Mr Tsikman, I have a beginners DOS Nasm environment that has
: some commented code examples, blank template.asms, & stuff for beginners.
: Its free and at
: http://bitdog.home.att.net/files/nasmenv.zip
:
Hi Bitdog and Mr Tsikman,

I'm using NASM for Win32 asm programming. The package I use is NaGoA and RadAsm. I'm building a collection of Win32 asm code for beginners, here:
http://groups.yahoo.com/group/win32-nasm-users/


: Other assemblers are availble else where that are good also.
: HLA sounds like a big mistake to me, since every other assembler is
: so simular in their codeing & usage, that once you learn a normal
: assembler, you can easily read code from other assemblers,
: & with a bit of learning, write in the other assemblers style.
:
HLA is certainly a big mistake. Other assemblers are FASM, RosAsm and MASM32.


: Bitdog
: PS, hello Jeff
: I'm 1/2 way through my new nasmemv project,
: then I'm thinking about going back to the cool project debugging.
:

Best Regards,
Yeoh
--
http://www.yeohhs.com

Report
Re: brand newby Posted by Bitdog on 12 Dec 2003 at 9:24 AM
This message was edited by Bitdog at 2003-12-12 9:30:45

I'm using NASM for Win32 asm programming. The package I use is NaGoA and RadAsm. I'm building a collection of Win32 asm code for beginners, here:
http://groups.yahoo.com/group/win32-nasm-users/
Best Regards,
Yeoh
http://www.yeohhs.com

That sounds great. I'ld like to check it out
but I had troubles with Yahoo in the past.
They started taking over my computer, loading stuff at startup,
home page alterations, etc (if I remember correctly ?)
Any way I spent a day going through my computer removing them,
& swore I'ld never do anything else with them again.
Got any suggestions ?
Bitdog


Report
Re: brand newby Posted by yeohhs on 12 Dec 2003 at 6:17 PM
: This message was edited by Bitdog at 2003-12-12 9:30:45

: I'm using NASM for Win32 asm programming. The package I use is NaGoA and RadAsm. I'm building a collection of Win32 asm code for beginners, here:
: http://groups.yahoo.com/group/win32-nasm-users/
: Best Regards,
: Yeoh
: http://www.yeohhs.com
:
: That sounds great. I'ld like to check it out
: but I had troubles with Yahoo in the past.
: They started taking over my computer, loading stuff at startup,
: home page alterations, etc (if I remember correctly ?)
: Any way I spent a day going through my computer removing them,
: & swore I'ld never do anything else with them again.
: Got any suggestions ?
: Bitdog
:

:
:

Hi Bitdog,

You can access Yahoo groups with a web browser. And you'll need to be a Yahoo member to sign in. There is no need to install any programs from Yahoo, so it is quite safe.

Best Regards,
Yeoh
--



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.