- 1、本文档共141页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
方彦军_第3章_ARM指令系统及程序设计基础
3.5.3 汇编语言编程实例 PrintLine MOV R4,LR MOV R5,R0 Line LDRB R1,[R5],#1 AND R0,R1,#FF TST R0,#FF MOVEQ PC,R4 BL PutByte B Line PutByte LDR R3,=UARTSTAT0 LDR R2,[R3] TST R2,#40 3.5.3 汇编语言编程实例 BEQ PutByte LDR R3,=UTXBUF0 STR R0,[R3] MOV PC,LR Line1 DCB A,D,******************************************************************,0 Line2 DCB A,D,Chinese Academy of Sciences,Institute of Automation,Complex System Lab.,0 Line3 DCB A,D, ARM Development Board Based on Samsung ARM S3C4510B.,0 Line4 DCB A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,A,D,0 END 3.6 汇编语言与C语言混合编程 1. 内嵌汇编 (1)内嵌汇编指令 内嵌汇编指令的语法格式为 __asm(“指令[;指令]”); 如果有多条汇编指令嵌入,则可用“{ }”将它们归为一条语句,格式为 __asm { 指令[;指令] ... [指令] } 3.6 汇编语言与C语言混合编程 内嵌汇编指令主要有以下一些规则限制: 1) 表达式的使用不要过于复杂,以避免和指令中物理寄存器的使用发生冲突。 2) 不能向PC寄存器直接赋值;通常在内嵌汇编指令中不要指定物理寄存器。 3)内嵌汇编指令中,常量前的符号“#”可以省略。 4)只有B指令可以使用C语言程序中的标号。 5)内嵌汇编器不支持汇编语言中用于内存分配的伪操作(ADR和ADRL)。 6)在内嵌的SWI指令和BL指令中,除了正常的操作数域外,还必须增加3个可选的寄存器列表 3.6 汇编语言与C语言混合编程 (2)内嵌汇编注意事项 1)对于寄存器R0~R3、LR和PC的使用要格外小心。 2)不要使用寄存器寻址变量。 3)使用内嵌汇编时,编译器会自动保存和恢复可能用到的寄存器。读物理寄存器(除PSR寄存器之外)之前必须先进行写入。 4)LDM和STM指令的寄存器列表中只允许使用物理寄存器。 5)带“,”的C语言表达式作为操作数时,必须用“( )”括起来归为一个汇编操作数。 3.6 汇编语言与C语言混合编程 (3)内嵌汇编应用举例 例1 字符串复制 #include stdio.h void my_strcpy(char *src,const char *dst) { int ch; __asm { loop: #ifdef _arm //ARM版本 LDRB ch,[src],#1 STRB ch,[dst],#1 #else //Thumb版本 LDRB ch,[src] ADD src,#1 STRB ch,[dst] 3.6 汇编语言与C语言混合编程 ADD dst,#1 #endif CMP ch,#0 BNE loop } } int main(void) { Const char *a=”Hello World!”; Char b[20]; __asm { MOV R0,a //设置入口参数 MOV R1,b BL my_strcpy,{R0,R1} //调用my_strcpy()函数 } 3.6 汇编语言与C语言混合编程
您可能关注的文档
- 打造重点柜员.pdf
- 打造执行力(一).ppt
- 打印20110128户外部分标识.pdf.pdf
- 托马斯·罗伯特·.ppt
- 执行力与预算管理培训方案-和睿泽.doc
- 手绘个性演说PPT.ppt
- 执行力培训课程:执行的陷阱.docx
- 执行力第5章.ppt
- 扶西水果市场通道盖棚预算.ppt
- 扬州案例分析.pdf
- 云南省腾冲市事业单位公开招聘考试职业能力倾向测验(D类)(中小学教师类)真题及答案一套.docx
- 《阿房宫赋》2025年基于联邦学习的分布式教学实验 .ppt
- 八年级上册历史第七单元【大单元教学】(28页).pptx
- 八年级历史期中试卷讲评课【课件】(36页)(资料ID:304798) (1).ppt
- 八年级历史期中试卷讲评课【课件】(36页)(资料ID:304798).ppt
- 第16课_毛泽东开辟井冈山道路.pptx
- 中国近代社会发展的四大主线(pdf版)(笑笑).pdf
- 第二单元【复习课件】(18页)(资料ID:353965).pptx
- 第5课 甲午中日战争与列强瓜分中国狂潮【课件】(23页)(资料ID:425644).pptx
- 第4课 洋务运动和边疆危机【课件】(23页)(资料ID:425233).pptx
文档评论(0)