Слияние кода завершено, страница обновится автоматически
#include "shifter.h"
#include "sim.h"
#include "helper.h"
#include <stdlib.h>
int shifter(shifttype_t shifttype, int n1, int n2)
{
int res, C = 0;
switch(shifttype) {
case SHIFT_LL:
if (n2 == 32) {
res = 0;
} else if (n2 > 32) {
res = 0;
} else {
res = n1 << n2;
if (n2) C = B(n1, 32 - n2);
}
break;
case SHIFT_LR:
if (n2 == 32) {
res = 0;
} else if (n2 > 32) {
res = 0;
} else {
res = ((unsigned)n1) >> n2;
if (n2) C = B(n1, n2-1);
}
break;
case SHIFT_AR:
if (n2 >= 32) {
res = n1 >> 31;
} else {
res = n1 >> n2;
if (n2) C = B(n1, n2-1);
}
break;
case SHIFT_LP:
if (n2 == 32) {
res = n1;
} else {
n2 %= 32;
res = (((unsigned)n1) >> n2) | (n1 << (32-n2));
}
break;
default:
printf("unknown shift type!\n");
exit(0);
}
d_reg.C = C;
return res;
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )