Что происходит, когда Вы отправляете число на 8 битов в вывод, который составляет 4 бита? Язык C

Я учусь в средней школе, и у нас есть проект электроники.

У нас есть вывод от нашего компьютера, который составляет 4 бита, выходной адрес 37Ah и мой учитель сделал это:

outportb(0x37A,0x80);

таким образом, что появится в выводе? 0h или 8-й?

1
задан unwind 19 June 2010 в 09:14
поделиться

2 ответа

Вам нужно объяснить вашу проблему немного лучше. Какой микропроцессор вы используете и т.д. У вас 4-портовый выход?

Но 0x80 равно: 0b1000000 и если вы используете младшие 4 бита: 0b1000xxx, то они будут нулевыми (не включены). Это произойдет, если 0x37A будет 8-битным.

В противном случае, объясните свою проблему лучше :)

Не можете ли вы попробовать и посмотреть, что произойдет? Или это только теоретически до сих пор?

EDIT:

Я вижу, что это порт принтера. Проверьте http://www.tinet.cat/~sag/gifs/ParallelPort.gif если вы используете порт 2,3,4,5 то верхние 4 бита действительно не имеют значения :) как сказано в моем комментарии.

1
ответ дан 2 September 2019 в 23:40
поделиться

Если это не 4-битный ЦП 70-х годов, тогда ваш выходной порт будет иметь 8 бит, но подключенное оборудование может использовать только 4. В этом случае обычно (но не обязательно) используйте младшие 4 бита, чтобы иметь значение 0x0. Но это делает использование 0x80 дымовой завесой, оно будет таким же, как 0x00 и 0xF0. Исходя из этого, я бы предположил, что здесь используются верхние 4 бита, а отправленное значение - 0x8.

Но хитрый инженер по аппаратному обеспечению мог использовать средние 4 бита.

1
ответ дан 2 September 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: