c_cpp 基于样本的图灵虚拟机c
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 基于样本的图灵虚拟机c相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
/* prototype for vm
*/
#define MAX_STACK 1000
#define SIZE_OF_SIZE_T (sizeof(size_t) * CHAR_BIT)
struct vm_inst_t
{
size_t stack[MAX_STACK];
int cur_call;
};
struct vm_inst_t*
vm_inst_create(void)
{
struct vm_inst_t* vm = malloc(sizeof(struct vm_inst_t));
memset(vm, 0, sizeof(struct vm_inst_t));
vm->cur_call = -1; // Starts with no calls
return vm;
}
static inline size_t
vm_inst_space(struct vm_inst_t* vm)
{
return MAX_STACK - vm->cur_call - 1;
}
static inline size_t
vm_inst_call_count(struct vm_inst_t* vm)
{
return vm->cur_call + 1;
}
static inline void
vm_inst_add_call(struct vm_inst_t* vm, size_t value)
{
vm->stack[++(vm->cur_call)] = value;
}
static inline size_t
vm_inst_rem_call(struct vm_inst_t* vm)
{
return vm->stack[vm->cur_call--];
}
int main(void) {
int a = 3;
void* b = &a;
// Casts everything to a size_t
size_t c = (size_t)b;
printf("a is %d, b is %p, c is %lu\n",a, b, c);
return 0;
}
以上是关于c_cpp 基于样本的图灵虚拟机c的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 简单的寄存器虚拟机实现
c_cpp C ++ TMP图灵机
基于unicorn-engine的虚拟机的实现(WxSpectre)
TritonVM——基于Recursive STARK的虚拟机
区块链 虚拟机 比特币的脚本解释器evmwasm 是什么 区别
c_cpp dlib图样本