编写个8086的简单编译器,该如何处理

编写个8086的简单编译器
要求:
1.能做四则运算即可
2.文本框里输入2+3,输出5(这是例子,实际是可变的)
3.要求输出8086的汇编代码
4.要求输出编译后的可执行文件

分不够可以再加

------解决方案--------------------
这个叫汇编程序。

首先lz要搞明白一点:汇编程序是不能生成可执行文件的。
汇编程序生成的机器码是目标文件,不同的OS下,可执行文件除了机器码以外,还需要附加的信息(比如可执行文件的环境、执行头、入口点、外部库描述表、数据段、版本信息等等),这些信息需要链接程序完成。

最简单的,可以另外编写一个汇编的框架程序。将你的“程序”用逆波兰式,转换为一小段汇编,嵌入这个框架,再调用汇编程序、链接程序,最后得到可执行文件。
------解决方案--------------------
探讨
楼上的,是你没看清楚我的题目吧?我要的是一个微型编译器,而不是啥汇编。麻雀虽小,五脏俱全,有能力的,来挑战吧。

------解决方案--------------------
帮你顶……
------解决方案--------------------
00 ADD
01 ADD

02 ADD
03 ADD
04 ADD
05 ADD
06 PUSH
07 POP
08 OR
09 OR
0A OR
0B OR
0C OR
0D OR
0E PUSH
0F 00 LLDT
0F 00 LTR
0F 00 SLDT
0F 00 STR
0F 00 VERR
0F 00 VERW
0F 01 INVLPG
0F 01 LGDT
0F 01 LIDT
0F 01 LMSW

0F 01 SGDT
0F 01 SIDT
0F 01 SMSW
0F 01 SMSW 
0F 02 LAR
0F 03 LSL
0F 08 INVD
0F 09 WBINVD
0F 0B UD2
0F 20 MOV
0F 21 MOV
0F 22 MOV
0F 23 MOV
0F 30 WRMSR
0F 31 RDTSC
0F 32 RDMSR
0F 33 RDPMC
0F 40 CMOVO
0F 41 CMOVNO
0F 42 CMOVB

0F 42 CMOVC
0F 42 CMOVNAE
0F 43 CMOVAE
0F 43 CMOVNB
0F 43 CMOVNC
0F 44 CMOVE
0F 44 CMOVZ
0F 45 CMOVNE
0F 45 CMOVNZ
0F 46 CMOVBE
0F 46 CMOVNA
0F 47 CMOVA
0F 47 CMOVNBE
0F 48 CMOVS
0F 49 CMOVNS
0F 4A CMOVP
0F 4A CMOVPE
0F 4B CMOVNP
0F 4B CMOVPO

0F 4C CMOVL
0F 4C CMOVNGE
0F 4D CMOVGE
0F 4D CMOVNL
0F 4E CMOVLE
0F 4E CMOVNG
0F 4F CMOVG
0F 4F CMOVNLE
0F 60 PUNPCKLBW
0F 61 PUNPCKLWD
0F 62 PUNPCKLDQ
0F 63 PACKSSWB
0F 64 PCMPGTB
0F 65 PCMPGTW 
0F 66 PCMPGTD
0F 67 PACKUSWB
0F 68 PUNPCKHBW
0F 69 PUNPCKHWD

0F 6A PUNPCKHDQ
0F 6B PACKSSDW 
0F 6E MOVD
0F 6F MOVQ
0F 71 PSLLW 
0F 71 PSRAW
0F 71 PSRLW
0F 72 PSLLD
0F 72 PSRAD
0F 72 PSRLD
0F 73 PSLLQ
0F 73 PSRLQ
0F 74 PCMPEQB
0F 75 PCMPEQW
0F 76 PCMPEQD
0F 77 EMMS
0F 7E MOVD
0F 7F MOVQ
0F 80 JO

0F 81 JNO
0F 82 JB
0F 82 JC
0F 82 JNAE
0F 83 JAE
0F 83 JNB
0F 83 JNC
0F 84 JE
0F 84 JZ
0F 85 JNE
0F 85 JNZ
0F 86 JBE
0F 86 JNA
0F 87 JA