Как я могу получить ввод от пользователя с помощью CPUlator на языке ассемблера ARM - PullRequest
0 голосов
/ 28 мая 2020

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

Работа, которую я проделал до сих пор, выглядит следующим образом

.global _start
 _start:

LDR R11, =0xFF200100  // buttons adress
LDR R6, [R11] //adress to buttons for get value



 end: B end
 .end

Ссылка на CPUlator: https://cpulator.01xz.net/?sys=arm-de1soc

Любая помощь будет очень полезной, Спасибо.

1 Ответ

1 голос
/ 28 мая 2020

Что ж, вы на правильном пути. Кнопки CPUlator соответствуют битам слова в памяти по фиксированному адресу 0xFF200050. Таким образом, следующее будет считывать слово в регистр r0:

ldr r0, =0xFF200050  //Load the address into a register
ldr r0, [r0] //Load the contents of that address
//Now let's do something with that number...

Если вы проверите, например, кнопки 0 и 2, это даст вам 5 в r0. Подойдет ли это?

Адрес памяти, из которого можно считать состояние кнопки, удобно записан в заголовке панели CPUlator справа. Панель переключателей соответствует слову 0xFF200040. Я не уверен, что по адресу 0xFF200100. На физическом устройстве кнопки и переключатели, вероятно, разные, но в CPUlator я не вижу никакой разницы. Используйте тот источник входного сигнала, который вам больше нравится.

В устройствах также есть клавиатура, но ее обработка будет более сложной.

...