Member 13539611 Ответов: 1

Программирование на ассемблере - шаговый двигатель с виртуальной клавиатурой


Мне нужно сделать программу, чтобы я мог управлять шаговым двигателем с помощью виртуальной клавиатуры. Я должен использовать "микропроцессорный симулятор - версия 5.0 (GNU) (http://www.softwareforeducation.com/sms32v50/index.php). Я включил в себя скрипт[^Я получил его, работая с числами 1-6, но когда я пытаюсь добавить новые числа, я получаю эту ошибку: прыжок не может превышать -128..127 START. Я бы хотел, чтобы он поднялся до 1-9 и нуля. Можно ли разделить сценарий или я достиг максимума, который он может принять?

Что я уже пробовал:

Я даже не знаю, можно ли добавить к нему что-то еще, но, возможно, каким-то образом разбить сценарий..

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вам нужно использовать длинный прыжок (если он существует в вашем ассемблере) или переработать свой код, чтобы использовать вызовы подпрограмм и убедиться, что все ваши прыжки находятся в указанных пределах.


Richard MacCutchan

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

Richard MacCutchan

Я только что взглянул на ваш код, и он может быть гораздо проще. Все, что вам нужно сделать, это удалить базу ASCII из вашего входного номера, чтобы получить выходное значение, что-то вроде:

in 07
CMP AL,'0' ; Process the key press here
JL ??? ; if it is less than '0'
CMP AL,'9' ;
JG ??? ; or greater than 9 ignore
SUB AL,'0' ; remove the ASCII base of x30
OUT 05 ; output the number
JZ start ; not sure where that goes

Richard MacCutchan

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

Richard MacCutchan

Вы можете использовать JS после инструкции CMP.