Программирование сборки и обработка прерываний - PullRequest
0 голосов
/ 28 октября 2009

Я пишу программу на ассемблере с использованием архитектуры MIPS для класса, и у меня возникают проблемы с выяснением того, как получить вводимый пользователем символ и сохранить его в регистре для обработки.

Программа откроет консоль, выведет сообщение, затем пользователь может ввести символ, а затем это определяет, что должно произойти в программе.

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

спасибо

Ответы [ 2 ]

0 голосов
/ 24 января 2014

Написать код исключения. Процедура обработки прерывания (исключения) начинается с 0x80000180 (в QtSpim, PCSpim) Прочитайте регистр клавиатуры. Данные в 0xFFFF0004. Хватай чарса. Затем вернитесь из исключения.

Или вы можете опросить статус клавиатуры по номеру 0xFFFF0000. Когда бит готовности включен, прочитайте данные.

jjc.hydrus.net / cs61c / handouts / interrupts2.pdf

0 голосов
/ 30 апреля 2010

Это очень хорошая отправная точка: Краткое руководство по MIPS

Вот фрагмент из учебника

li  $v0, 5          # load appropriate system call code into register $v0;
                    # code for reading integer is 5
syscall           # call operating system to perform operation
sw  $v0, int_value  # value read from keyboard returned in register $v0;
                     # store this in desired location

Вы не будете работать с прерываниями напрямую с любой сборкой, которую вы пишете в пространстве пользователя.

...