MicrOS
mov_operations.c File Reference
#include <stdint.h>
#include <v8086/v8086.h>
#include <v8086/memory_operations.h>
#include <v8086/mod_rm_parsing.h>
#include "mov_operations.h"
#include "internal_funcs.h"

Functions

int16_t perform_mov (v8086 *machine, void *source, void *dest, uint8_t width, uint8_t flags_affected)
 
int16_t perform_mov_rm (v8086 *machine, uint8_t opcode)
 
int16_t perform_movzx_variable_length (void *source, void *dest, uint8_t source_width, uint8_t dest_width)
 
int16_t perform_movsx_variable_length (void *source, void *dest, uint8_t source_width, uint8_t dest_width)
 
int16_t perform_movzx (v8086 *machine, uint8_t opcode)
 
int16_t perform_movsx (v8086 *machine, uint8_t opcode)
 
int16_t perform_mov_segment (v8086 *machine, uint8_t opcode)
 
uint16_t perform_mov_gpr_imm (v8086 *machine, uint8_t opcode)
 
uint16_t perform_mov_rm_imm (v8086 *machine, uint8_t opcode)
 
int16_t perform_mov_moffset (v8086 *machine, uint8_t opcode)
 
int16_t perform_lea (v8086 *machine)
 
int16_t convert_byte_to_word (v8086 *machine)
 
int16_t convert_word_to_double (v8086 *machine)
 
int16_t store_flags (v8086 *machine)
 
int16_t load_flags (v8086 *machine)
 
int16_t perform_load_far_pointer (v8086 *machine, segment_register_select segment_op)
 
int16_t perform_xlat (v8086 *machine)
 

Function Documentation

◆ convert_byte_to_word()

int16_t convert_byte_to_word ( v8086 machine)

◆ convert_word_to_double()

int16_t convert_word_to_double ( v8086 machine)

◆ load_flags()

int16_t load_flags ( v8086 machine)

◆ perform_lea()

int16_t perform_lea ( v8086 machine)

◆ perform_load_far_pointer()

int16_t perform_load_far_pointer ( v8086 machine,
segment_register_select  segment_op 
)

◆ perform_mov()

int16_t perform_mov ( v8086 machine,
void *  source,
void *  dest,
uint8_t  width,
uint8_t  flags_affected 
)

◆ perform_mov_gpr_imm()

uint16_t perform_mov_gpr_imm ( v8086 machine,
uint8_t  opcode 
)

◆ perform_mov_moffset()

int16_t perform_mov_moffset ( v8086 machine,
uint8_t  opcode 
)

◆ perform_mov_rm()

int16_t perform_mov_rm ( v8086 machine,
uint8_t  opcode 
)

◆ perform_mov_rm_imm()

uint16_t perform_mov_rm_imm ( v8086 machine,
uint8_t  opcode 
)

◆ perform_mov_segment()

int16_t perform_mov_segment ( v8086 machine,
uint8_t  opcode 
)

◆ perform_movsx()

int16_t perform_movsx ( v8086 machine,
uint8_t  opcode 
)

◆ perform_movsx_variable_length()

int16_t perform_movsx_variable_length ( void *  source,
void *  dest,
uint8_t  source_width,
uint8_t  dest_width 
)

◆ perform_movzx()

int16_t perform_movzx ( v8086 machine,
uint8_t  opcode 
)

◆ perform_movzx_variable_length()

int16_t perform_movzx_variable_length ( void *  source,
void *  dest,
uint8_t  source_width,
uint8_t  dest_width 
)

◆ perform_xlat()

int16_t perform_xlat ( v8086 machine)

◆ store_flags()

int16_t store_flags ( v8086 machine)