Add MUL ocpu instruction
This commit is contained in:
parent
4c4e0b9460
commit
3e85806ac7
|
@ -207,7 +207,7 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_ADD_IM:
|
case INS_ADD_IM:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) + ocpu_fetch_byte();
|
value = match_register(reg) + ocpu_fetch_byte();
|
||||||
|
@ -217,7 +217,7 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_ADD_REG:
|
case INS_ADD_REG:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) + match_register(ocpu_fetch_byte());
|
value = match_register(reg) + match_register(ocpu_fetch_byte());
|
||||||
|
@ -227,7 +227,7 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_ADC_IM:
|
case INS_ADC_IM:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) + ocpu_fetch_byte() + ocpu.CF;
|
value = match_register(reg) + ocpu_fetch_byte() + ocpu.CF;
|
||||||
|
@ -237,7 +237,7 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_ADC_REG:
|
case INS_ADC_REG:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) + match_register(ocpu_fetch_byte()) + ocpu.CF;
|
value = match_register(reg) + match_register(ocpu_fetch_byte()) + ocpu.CF;
|
||||||
|
@ -247,7 +247,7 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_SUB_IM:
|
case INS_SUB_IM:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) - ocpu_fetch_byte();
|
value = match_register(reg) - ocpu_fetch_byte();
|
||||||
|
@ -257,7 +257,7 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_SUB_REG:
|
case INS_SUB_REG:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) - match_register(ocpu_fetch_byte());
|
value = match_register(reg) - match_register(ocpu_fetch_byte());
|
||||||
|
@ -267,7 +267,27 @@ void ocpu_execute() {
|
||||||
write_register(reg, 0, word_value);
|
write_register(reg, 0, word_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INS_INC:
|
case INS_MUL_IM:
|
||||||
|
reg = ocpu_fetch_byte();
|
||||||
|
if (!is_word_reg(reg)) {
|
||||||
|
value = match_register(reg) * ocpu_fetch_byte();
|
||||||
|
write_register(reg, value, 0);
|
||||||
|
} else {
|
||||||
|
word_value = match_register(reg) * ocpu_fetch_word();
|
||||||
|
write_register(reg, 0, word_value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case INS_MUL_REG:
|
||||||
|
reg = ocpu_fetch_byte();
|
||||||
|
if (!is_word_reg(reg)) {
|
||||||
|
value = match_register(reg) * match_register(ocpu_fetch_byte());
|
||||||
|
write_register(reg, value, 0);
|
||||||
|
} else {
|
||||||
|
word_value = match_register(reg) * match_register(ocpu_fetch_byte());
|
||||||
|
write_register(reg, 0, word_value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case INS_INC:
|
||||||
reg = ocpu_fetch_byte();
|
reg = ocpu_fetch_byte();
|
||||||
if (!is_word_reg(reg)) {
|
if (!is_word_reg(reg)) {
|
||||||
value = match_register(reg) + 1;
|
value = match_register(reg) + 1;
|
||||||
|
|
Loading…
Reference in New Issue