1 #ifndef V8086_MEMORY_OPERATIONS_H 2 #define V8086_MEMORY_OPERATIONS_H 7 #define get_absolute_address(segment, offset) ((uint32_t)segment * 0x10 + (uint32_t)offset) 9 #define get_byte_pointer(memory, absolute_address) (memory + (uint32_t) absolute_address) 11 #define get_word_pointer(memory, absolute_address) ((uint16_t*)(memory + (uint32_t) absolute_address)) 13 #define get_dword_pointer(memory, absolute_address) ((uint32_t*)(memory + (uint32_t) absolute_address)) 15 #define get_variable_length_pointer(memory, absolute_address, width) ((void*)(memory + (uint32_t) absolute_address)) 17 #define read_byte_from_pointer(memory, absolute_address) (*(get_byte_pointer(memory, absolute_address))) 19 #define read_word_from_pointer(memory, absolute_address) (*(get_word_pointer(memory, absolute_address))) 21 #define read_dword_from_pointer(memory, absolute_address) (*(get_dword_pointer(memory, absolute_address))) 57 #endif //V8086_MEMORY_OPERATIONS_H #define get_byte_pointer(memory, absolute_address)
Definition: memory_operations.h:9
static void write_word_to_pointer(uint8_t *memory, uint32_t absolute_address, uint16_t value)
Definition: memory_operations.h:47
#define get_word_pointer(memory, absolute_address)
Definition: memory_operations.h:11
#define get_dword_pointer(memory, absolute_address)
Definition: memory_operations.h:13
size_t uint32_t
Unsigned integral type.
Definition: string.h:8
static void write_byte_to_pointer(uint8_t *memory, uint32_t absolute_address, uint8_t value)
Definition: memory_operations.h:42
static void write_dword_to_pointer(uint8_t *memory, uint32_t absolute_address, uint32_t value)
Definition: memory_operations.h:52