Молодец, Павел. очень умное такое блабла.
Но есть 1 момент
21(h) *47(h) = 4FE(h)
= 10011111110 (b)
затем - берем младший байт 11111110 = FE (h), в знаковом (дополнительном) коде это минус 2
берем ОF (00001111) - преобразуем в дополнительный код, это инверсия а потом +1
в итоге 11110001
вычитаем из 11111110 11110001
ответ 0001101, десятичное тринадцать
http://ru.wikipedia.org/wiki/Допол нител ьный_код_(представл ение_числ а)
Удачи. Надеюсь, ты не забудешь проставить мне лучший ответ. Это было не мгновенно посчитать даже на калькуляторе.
Да, флаг переполнения это избыточная информация, для решения не нужна. Может обрабатываться, может игнорироваться
Другие языки программирования и технологии
Подскажите, что значит вычислить выражение на знаковом байтовом регистре?
Регистр - это специальная ячейка памяти, находящаяся в процессоре и использующаяся для вычислений. Байтовый - это его размер, 1 байт - 256 разных значений. Знаковый - означает, что 1 бит используется для кодирования знака (0 - плюс, 1 - минус) , итого значения могут быть от -128 до +127 (или от -127, в зависимости от кодировки) .
Добавлено
Я не знаю, в какой форме от вас этого хотят, какие ограничения на переполнение (выставляется флаг или вызывается прерывание) и т. д. Поэтому однозначный ответ дать не могу.
Условный ассемблерный код будет примерно такой (0xN - 16-ричная запись) :
LOAD [ A ] #Загружает в аккумуляторный регистр содержимое ячейки A=0x12
MUL [ B ] #Умножает содержимое аккумулятора на B=0x47, результат будет 0x50E, что переполнит аккумулятор.
SUB [ C ] #Вычитает из аккумулятора C. Если не произойдет прерывания на пред. команде, и при переполнении аккумулятор сохраняет нижние разряды (что ни из чего не следует) , то 0x0E-0x0C=0x02=2
Ответ, видимо, 2, но возможны варианты, и очень даже значимые.
Добавлено
Я не знаю, в какой форме от вас этого хотят, какие ограничения на переполнение (выставляется флаг или вызывается прерывание) и т. д. Поэтому однозначный ответ дать не могу.
Условный ассемблерный код будет примерно такой (0xN - 16-ричная запись) :
LOAD [ A ] #Загружает в аккумуляторный регистр содержимое ячейки A=0x12
MUL [ B ] #Умножает содержимое аккумулятора на B=0x47, результат будет 0x50E, что переполнит аккумулятор.
SUB [ C ] #Вычитает из аккумулятора C. Если не произойдет прерывания на пред. команде, и при переполнении аккумулятор сохраняет нижние разряды (что ни из чего не следует) , то 0x0E-0x0C=0x02=2
Ответ, видимо, 2, но возможны варианты, и очень даже значимые.
Похожие вопросы
- Вычислить выражение с помощью оператора цикла. Turbo Pascal.
- Необходимо вычислить выражение
- Подскажите, где найти наиболее полную полную информацию о регистрах ЦП x86-x64 платформы на русском
- ПОдскажите что значит оптимизация сайта под поисковики в чем она заключаеться
- Регистры.
- Вопрос по программированию в 1с ( метод регистра сведений )
- Что такое регистры и флаги в процессоре и чем они отличаются?
- Чем различаются регистры и откуда эти их названия??
- Помогите вычислить логическое значение выражения. А=0, В=0, С=0
- Помогите получить двоичную форму внутреннего представления числа 16,8125 (в 4- х байтовой ячейке)