Memory Flags & ASM: Understanding Hex Editors & x86 Assembly

  • Thread starter martix
  • Start date
  • Tags
    Memory
In summary: I'm sorry if I confused you.In summary, Warren is exploring the inner workings of a computer and asking for advice on what to do next. He is starting from scratch and does not know much about assembly language. He is looking for resources to help him learn more.
  • #1
martix
169
5
I'm fiddling around with a hex editor here and the processes have memory blocks that have certain flags like MEM_COMMIT, MEM_RESERVE, PAGE_READWRITE. That sort of stuff. And I was wondering what all these exactly mean.
Also I'd like some resources on x86 assembly. Something that really starts at the beginning of how and why things are the way they are. Because I'm having a little bit of trouble grasping the registers concept(among other things)...
 
Technology news on Phys.org
  • #3
Can you say more about what you mean by "grasping the registers concept?"

- Warren
 
  • #4
Well like what type of data goes where and why. Are they used just like an even faster memory than RAM or do they also have some special function? Are they the L1/L2 cache of the processor? Do you have to load everything in the registers manually? Does the compiler usually do that for you?
I mean I don't even know what to ask. I'm just starting so I basically know exactly SQUAT about ASM.
 
  • #5
In simple terms registers are the only storge inside the processor.
To add 2 numbers you load the first number into register A, the second number into register B and call ADD_AB
They are also used to store arguements to functions, so under DOS to change directory you load register A with the address of a string in memory with the directory name and call a particiular software interupt.
 
  • #6
martix said:
Well like what type of data goes where and why. Are they used just like an even faster memory than RAM or do they also have some special function? Are they the L1/L2 cache of the processor? Do you have to load everything in the registers manually? Does the compiler usually do that for you?
I mean I don't even know what to ask. I'm just starting so I basically know exactly SQUAT about ASM.

Theres a lot that goes into learning about registers and their functions. This info can be found in any computer architecture book and most intro asm books. In order to appreciate this concept you'll have to get a grasp about different memory modes, instructions sets, CPU storage and organization, and so on. There are a few books that I can recommend, but you'll want to check your local library or school for a copy and gauge whether or not its language appeals to you.

Null, Linda (2003). The Essentials of Computer Organization and Architecture
Dandamudi, Sivarama (2005) Guide to Assembly Langauge Programming in Linux

You may also find it in your best interest to have knowledge about digital logic. For non-electrical engineers, I would recommend The Science of Electronics: Digital by Thomas L. Floyd and David M. Buchla.
 
  • #8
MEM_COMMIT, MEM_RESERVE, PAGE_READWRITE are examples of constants either defined by the program or defined by Windows. They will equate to some simple integer usually and used perhaps as parameters for APIs or other procedures etc. They make life simpler for the programmer so that he/she can read something meaningfull rather that just a number. They are not flags. Flags are hardware bits in a CPU register that mean something to the assembler program. For example, the "zero" flag is set upon an operation resulting in a zero result. That content of that flag will be picked up by another part of a program to test for some other action. There are about 17 different flags I think in a x86 CPU.
 
  • #9
I wasn't talking about flags in assembly. It was on a separate note, something I found when exploring my memory with a hex editor(it said certain ranges of RAM have certain flags). Some appear to be self-explanatory, but others are not.
But basically thanks for the links. This book may be nice, but I doubt I'll be getting seriously into that stuff until I have to(which is still some time away).
Actually the ASM part of the thread was meant to be more on a side note, not the other way around.
 

FAQ: Memory Flags & ASM: Understanding Hex Editors & x86 Assembly

1. What is a memory flag?

A memory flag, also known as a flag register, is a special type of register in a computer's central processing unit (CPU) that stores the status of the current instruction being executed. These flags can indicate various conditions such as whether a certain operation was successful or if an error occurred.

2. How do memory flags relate to hex editors?

Hex editors allow for direct manipulation of the contents of a computer's memory. This includes the memory flags, which can be modified to alter the behavior of the program or to bypass certain conditions. Understanding how memory flags work is crucial for using hex editors effectively.

3. What is x86 assembly?

x86 assembly is a low-level programming language used to write instructions that can be directly executed by a computer's CPU. It is often used in the development of operating systems, device drivers, and other system software. Understanding x86 assembly is important for working with hex editors and memory flags.

4. How can understanding memory flags and x86 assembly be useful?

Understanding memory flags and x86 assembly can be useful for reverse engineering, debugging, and hacking. By manipulating memory flags and writing custom assembly code, it is possible to alter the behavior of a program, bypass security measures, and gain a deeper understanding of how a program works.

5. Are there any resources available for learning more about memory flags and x86 assembly?

Yes, there are many online tutorials and resources available for learning more about memory flags and x86 assembly. Some popular resources include online forums, YouTube videos, and online courses. It is also helpful to read documentation and practice writing assembly code to gain a better understanding of these concepts.

Similar threads

Replies
2
Views
6K
Replies
1
Views
2K
Replies
2
Views
2K
Replies
3
Views
2K
Back
Top