2026-05-11 15:08:03 +03:00
|
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
Кодировщик инструкций для КВС
|
2026-05-17 12:42:28 +03:00
|
|
|
|
Промежуточный модуль для обратной совместимости.
|
|
|
|
|
|
Импортирует всё из fixsize и mutsize, реэкспортирует наружу.
|
|
|
|
|
|
Нового кода не содержит.
|
2026-05-11 15:08:03 +03:00
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
import struct
|
|
|
|
|
|
import sys
|
|
|
|
|
|
from kvs_data import INSTRUCTIONS, REGISTERS, get_reg_info
|
2026-05-17 12:42:28 +03:00
|
|
|
|
|
|
|
|
|
|
# Импорт из fixsize
|
2026-05-23 08:58:10 +03:00
|
|
|
|
from kvs_encoder_fixsize import (
|
2026-05-17 12:21:28 +03:00
|
|
|
|
encode_mov_reg_reg,
|
|
|
|
|
|
encode_mov_reg8_imm8,
|
|
|
|
|
|
encode_cmp_reg_reg,
|
|
|
|
|
|
encode_add_sub_reg_reg,
|
|
|
|
|
|
encode_muldiv,
|
|
|
|
|
|
encode_and_or_xor_reg_reg,
|
|
|
|
|
|
encode_not_neg,
|
|
|
|
|
|
encode_incdec,
|
|
|
|
|
|
encode_push_reg,
|
|
|
|
|
|
encode_pop_reg,
|
|
|
|
|
|
encode_push_imm,
|
|
|
|
|
|
encode_shift_rotate,
|
|
|
|
|
|
encode_syscall,
|
|
|
|
|
|
encode_int,
|
|
|
|
|
|
encode_hlt,
|
|
|
|
|
|
encode_int3,
|
|
|
|
|
|
encode_nop,
|
|
|
|
|
|
encode_flag_instruction,
|
|
|
|
|
|
encode_in,
|
|
|
|
|
|
encode_out,
|
|
|
|
|
|
encode_string_instruction,
|
|
|
|
|
|
encode_cpuid,
|
|
|
|
|
|
encode_rdtsc,
|
|
|
|
|
|
encode_xchg,
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2026-05-17 12:42:28 +03:00
|
|
|
|
# Импорт из mutsize
|
2026-05-23 08:58:10 +03:00
|
|
|
|
from kvs_encoder_mutsize import (
|
2026-05-17 12:42:28 +03:00
|
|
|
|
parse_operand,
|
|
|
|
|
|
parse_memory_operand,
|
|
|
|
|
|
encode_mov_reg_mem_absolute,
|
|
|
|
|
|
encode_mov_mem_reg_absolute,
|
|
|
|
|
|
encode_mov_reg_mem,
|
|
|
|
|
|
encode_mov_mem_reg,
|
|
|
|
|
|
encode_lea_mem,
|
|
|
|
|
|
encode_mov_reg_imm,
|
|
|
|
|
|
encode_movzx,
|
|
|
|
|
|
encode_movsx,
|
|
|
|
|
|
encode_cmp_reg_imm,
|
|
|
|
|
|
encode_add_sub_reg_imm,
|
|
|
|
|
|
encode_jmp_rel32,
|
|
|
|
|
|
encode_jmp_short,
|
|
|
|
|
|
encode_jcc_rel32,
|
|
|
|
|
|
encode_jcc_short,
|
|
|
|
|
|
encode_call,
|
|
|
|
|
|
encode_ret,
|
|
|
|
|
|
encode_loop,
|
|
|
|
|
|
encode_instruction,
|
|
|
|
|
|
)
|