我现在关注的一个问题是制作一些汇编语言子程序,需要从C程序调用它们才能在LCD屏幕上调用CountRoutes,FindRoutes或DisplayRoutes。 例如,这是我保存了路由地址的代码,对于第一个子例程,CountRoutes它应该计算在找到-1并停止计数之前我在内存中有多少路由。
这是我迄今为止所做的,而且它不起作用。我需要更改的是:忽略.byte null行(跳转到下面的两个字符串),验证你是否在strin的末尾(遇到0)并再次跳转ti' ll you找到另一个.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