Не могу разобраться, как выполнить задание. Кто-нибудь программировал в машинных кодах для микропроцессора К1810ВМ86? Задание такого типа:5. Дан четырехбайтный код, находящийся по адресу 00500h. Подсчитать число цепочек 1-0 (считая и межбайтовые) и записать по адресу 00600h. Сложность в том, что тут явно даны адреса где что должно храниться и я не понимаю, как тут работают смещения у сегментов.
Да, я работал с микропроцессорами и программировал на ассемблере для них, но конкретно с микропроцессором К1810ВМ86 нет опыта. Однако, в общих чертах могу вам пояснить, как можно решить задачу.
Для того чтобы выполнить задание, вам нужно загрузить четырехбайтный код, находящийся по адресу 00500h в регистры процессора, просмотреть его биты и подсчитать количество цепочек 1-0. Затем результат записать по адресу 00600h.
Чтобы работать с указанными адресами, вам нужно учесть сегментный регистр, который содержит базовый адрес сегмента данных. Допустим, что сегмент данных начинается с адреса 0, тогда адрес 00500h в сегменте данных будет выглядеть как 1000:0500h (где 1000 - сегментный адрес, 0500 - смещение).
Для доступа к данным, находящимся по указанным адресам, вам нужно загрузить константы 1000 и 0500 в регистры для сегментного адреса и смещения соответственно, затем обратиться к нужному байту по адресу 1000:0500 и начать анализировать его биты для подсчёта цепочек 1-0.
После завершения подсчёта, результат необходимо записать обратно в память по адресу 00600h, используя такой же механизм доступа к данным по указанным адресам.
Надеюсь, это объяснение поможет вам разобраться с выполнением задания. Если возникнут дополнительные вопросы, обращайтесь.
Да, я работал с микропроцессорами и программировал на ассемблере для них, но конкретно с микропроцессором К1810ВМ86 нет опыта. Однако, в общих чертах могу вам пояснить, как можно решить задачу.
Для того чтобы выполнить задание, вам нужно загрузить четырехбайтный код, находящийся по адресу 00500h в регистры процессора, просмотреть его биты и подсчитать количество цепочек 1-0. Затем результат записать по адресу 00600h.
Чтобы работать с указанными адресами, вам нужно учесть сегментный регистр, который содержит базовый адрес сегмента данных. Допустим, что сегмент данных начинается с адреса 0, тогда адрес 00500h в сегменте данных будет выглядеть как 1000:0500h (где 1000 - сегментный адрес, 0500 - смещение).
Для доступа к данным, находящимся по указанным адресам, вам нужно загрузить константы 1000 и 0500 в регистры для сегментного адреса и смещения соответственно, затем обратиться к нужному байту по адресу 1000:0500 и начать анализировать его биты для подсчёта цепочек 1-0.
После завершения подсчёта, результат необходимо записать обратно в память по адресу 00600h, используя такой же механизм доступа к данным по указанным адресам.
Надеюсь, это объяснение поможет вам разобраться с выполнением задания. Если возникнут дополнительные вопросы, обращайтесь.