ocpu: Add XOR instruction

This commit is contained in:
g1n 2022-04-20 14:26:41 +03:00
parent c2d209bbf2
commit 84305fe0fb
Signed by: g1n
GPG Key ID: 8D352193D65D4E2C
1 changed files with 22 additions and 2 deletions

View File

@ -376,7 +376,7 @@ void ocpu_execute() {
value = match_register(reg) | ocpu_fetch_byte();
write_register(reg, value, 0);
} else {
word_value = match_register(reg) & ocpu_fetch_byte();
word_value = match_register(reg) | ocpu_fetch_byte();
write_register(reg, 0, word_value);
}
break;
@ -386,7 +386,27 @@ void ocpu_execute() {
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());
word_value = match_register(reg) | match_register(ocpu_fetch_byte());
write_register(reg, 0, word_value);
}
break;
case INS_XOR_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_byte();
write_register(reg, 0, word_value);
}
break;
case INS_XOR_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;