Создание 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   

0 ответов

Другие вопросы по тегам