A corresponding C function would be something like
char fn(char * string, int index) { return string[index]; }
Specifically, the movzbl
instruction fetches the byte stored at the sum of the two parameters, zero pads it, and stores it into eax
. The movsbl
instruction takes the lowest byte of eax, sign extends it, and stores the result back in eax.
Related Posts:
- Display value found at given address gdb
- xorl %eax – Instruction set architecture in IA-32
- ARM Assembler – How do I use CMP, BLT and BGT?
- X86 assembly – Handling the IDIV instruction
- GDB no such file or directory
- What does the LEAL assembly instruction do?
- Implementing Taylor Series for sine and cosine in C
- warning: implicit declaration of function
- pthread_join() and pthread_exit()
- Why should we typedef a struct so often in C?
- What is the difference between ++i and i++?
- Stack smashing detected
- Why am I getting “void value not ignored as it ought to be”?
- Pointer Arithmetic
- Openssl : error “self signed certificate in certificate chain”
- Get a substring of a char* [duplicate]
- How do I create an array of strings in C?
- How do function pointers in C work?
- Expression must be a modifiable L-value
- “Expected expression before ‘ { ‘ token”
- How to generate a random int in C?
- How do I use valgrind to find memory leaks?
- C pointers and arrays: [Warning] assignment makes pointer from integer without a cast
- How to print the array?
- How to solve the error: assignment to expression with array type
- segmentation fault : 11
- What does “1e” mean?
- how to use uint64_t in C [duplicate]
- munmap_chunk(): invalid pointer
- How do I solve the following errors: “Undefined reference to WinMain”, “[Error] Id returned 1 exit status”?
- Warning comparison between pointer and integer
- How do I properly compare strings in C?
- Connect: Socket operation on non-socket
- How to correctly use the extern keyword in C
- What is the difference between read and pread in unix?
- What does “control reaches end of non-void function” mean?
- What’s the purpose of the LEA instruction?
- How to create my own header file in c++?
- connect Error: “No route to host”
- warning: implicit declaration of function
- C dynamically growing array
- Returning string from C function
- Why do I get an assertion failure?
- Char Comparison in C
- What is callq instruction?
- what is the unsigned datatype?
- lvalue required as left operand of assignment
- how to convert negative hexadecimal to decimal
- Why am I getting “undefined reference to sqrt” error even though I inclu de math.h header?
- Reading a string with scanf
- How to initialize a struct in accordance with C programming language standards
- Expression preceding parentheses?
- Linux equivalent of I_PUSH
- Understanding INADDR_ANY for socket programming
- getopt_long() — proper way to use it?
- C read file line by line
- The Definitive C Book Guide and List[
- When is it a good idea to use strdup (vs malloc / strcpy)
- C read file line by line
- Copying a part of a string (substring) in C
- expression must have integral type
- Incompatible implicit declaration of built-in function ‘malloc’
- Why is %c used in C?
- Need more information about Aborted (core dumped)
- What is Innermost loop in imperfectly nested loops?
- What’s wrong with my code? What is argv[1]?
- What can cause a “Resource temporarily unavailable” on sock send() command
- How to solve error: expected identifier or ‘(‘
- Reversing a string in C
- When a number is written as 0x00… what does the x mean
- How to remove the character at a given index from a string in C?
- waitpid, wnohang, wuntraced. How do I use these
- Convert C program into assembly code
- Split string with delimiters in C
- How to pause in C?
- (.text+0x20): undefined reference to `main’ and undefined reference to function
- Why am I getting this error: “data definition has no type or storage class”?
- I’m getting “Invalid Initializer”, what am I doing wrong?
- Writing binary number system in C code
- explanation about push ebp and pop ebp instruction in assembly
- Convert char array to string use C
- warning: passing argument ’from incompatible pointer type [enabled by default]’
- Return a `struct` from a function in C
- Scanning Multiple inputs from one line using scanf
- How do AX, AH, AL map onto EAX?
- Which of sprintf/snprintf is more secure?
- How do I compile the asm generated by GCC?
- `testl` eax against eax?
- Allocating char array using malloc
- Implementation of strtok() function
- switch case: error: case label does not reduce to an integer constant
- warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
- warning: return makes pointer from integer without a cast but returns integer as desired
- what does the the dword operand do in assembly
- The difference between char * and char[] [duplicate]
- How to clear input buffer in C?
- Usage of \b and \r in C
- Parsing command-line arguments in C
- Compiler warning – suggest parentheses around assignment used as truth value
- lvalue required as increment operand