繁体   English   中英

为8085开发基于Java的汇编器

[英]Developing a java based assembler for 8085

我正在阅读一个文本文件,其中包含汇编语言程序(例如MOV AB; LDA 1600等)。 我想将此助记符代码转换为目标代码(不在同一文件中,而是直接将其打印到控制台中)。

对于MOV,我将其替换为01,将A替换为111,将B替换为000,将C替换为001,将D替换为010。但是,我该如何替换MVI R,32操作码为00rrr110 0011 0010请提出一种通用算法。

首先在操作码中将rrr替换为000 ,结果为00000110=0x06 然后从查找表中获取与您的寄存器对应的值(A = 111,B = 000,C = 001,依此类推),然后使用<<运算符将其向左移动3个位置。 最后,将两个值OR在一起,如下所示:

声明此参数以便在需要rrr任何地方使用:A在索引0处,B在索引1处,然后是C,D,E,H和L

static int registerLookup[] = {0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05}

对于MVI ,请使用以下代码:

int baseOpcode = 0x06; // MVI
int opcode = baseOpcode | registerLookup[regIndex]<<3;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM