- 注册时间
- 2004-12-25
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2007-1-13 11:01:05
|
显示全部楼层
因为我只有过TC1000,所以我就写个TC1000的显示程序吧:
scrbuf=0x02c0;显存地址
print=0xc719;显示中断地址
getchar=0xc006;按键中断地址
org 0x4000;程序从0x4000开始
db 0,0,0,0,0,0,0;前16字节的文件头的前7的字节(在TC1000上可以直接用0代替)
jmp main;标志程序的入口
db 0,0,0,0,0,0;文件头的后6个字节
str;一个标号,表示下面的字符串数据的开始地址
db "HELLO WORLD",0;...
main;主程序开始的位置
ldx #0xff;为简化程序,让X寄存器初始为255,这样在第一次inx后就为0了
loopstart;标志循环程序的开始位置
inx;使用寄存器间接寻址的方法,用递增的方式复制数据
lda str,x;以str为基准,x为偏移取得字符
sta scrbuf,x;以scrbuf为基准,x为偏移量存放字符
bne loopstart;当前累加器的数据还存在,所以不用cmp就可以直接判断,遇到str最后的零时就不会再跳转到loopstart了
int print;调用现实中断
int getchar;调用按键中断
rts;程序结束,返回
我推荐你在lavax中嵌入汇编,这样用LavaX可以帮助你调试代码. |
|