|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这是我在学习软件中断(SWI)指令是遇到的一个例题,如下:
输出字符“A”:
MOV r0,#‘A’ ;将“A”调入r0中……
SWI SWI_WriteC ;……打印
输出调用语句之后文本串的子程序:
……
BL STROUT ;输出下列信息
= “Hello World”,&0a,&0d,0
…… ;返回这里
STROUT LDRB r0,[r14],#1 ;取字符
CMP r0,#0 ;检查结束标志
SWINE SWI_WriteC ;如果没有结束,则打印……
BNE STROUT ;……循环
ADD r14,#3 ;对准下一个字
BIC r14,#3
MOV pc,r14 ;返回
SWI SWI_Exit ;返回监控
就是这么一段小程序,我迷惑的地方主要在这里:
LDRB r0,[r14],#1 ;r14地址里面的内容是什么?应该是“Hello World”首地址的内容吧,为什么呢?
CMP r0,#0 ;这里结束的标志为什么是‘0’呢? |
|