Создание GPS на ЖК-экране с использованием C и СБОРКА
Одной из моих проблем сейчас является создание подпрограмм на ассемблере, которые нужно вызывать из программы на C, чтобы считать CountRoutes, FindRoutes или DisplayRoutes на ЖК-экране. Например, это код, в котором у меня сохранены адреса маршрутов, и для первой подпрограммы CountRoutes должен подсчитать, сколько маршрутов у меня в памяти, прежде чем он найдет -1 и остановит подсчет.
Это то, что я сделал до сих пор, и это не работает. То, что мне нужно изменить: игнорировать пустую строку.byte (перейти к двум строкам ниже), убедиться, что вы в конце строки (соответствует 0), и перепрыгнуть, пока не найдете другой.word 6 или -1.
.word 4
.byte null
.asciz "Dee Bridge"
.asciz ""
.word 5
.byte 'x
.asciz "Echt Terminus"
.asciz "Express"
.word -1 ; route 0xffff terminates the data set
.area text
_RouteCount::
pshx
tfr d,y ;
ldx #0 ; Clear index
Loop: ldab 1,y+ ; Fetch next character; inc Y
bmi Done ; If -1 is found, exit loop
bra Loop ; Repeat loop
ldx #1 ; Store no match flag in X
beq
bra Loop
Done: tfr Y,D ; Transfer index in D
pulx
rts