No.80380 作者:zjf3338025 邮件:zjf3338025@sohu.com ID:15888 登陆:5次 文章数:2篇 最后登陆IP:222.33.145.186 最后登陆:2005/10/9 21:28:41 注册:2003/11/4 11:09:12 财富:68 发帖时间:2005/6/24 17:45:48 发贴者IP:222.33.144.71 标题:zjf3338025:[求助]新手问两个汇编程序问题,内详 摘要:No.80380[求助]新手问两个汇编程序问题,内详 1、函数跳转表 AREA Jummp, CODE, READWRITE CODE32 num EQU 5 ENTRY start MOV R0, #4 ;初始复制,在程序中r0相当于switch(a)中的a MOV R4,#0 ;r4对应跳转的条目编号 CMP R0,#num ;比较入口地址和实际入口数目 BHS stop ;如果入口大于实际入口数目,程序推出 ADR R3, JumpTable CMP R0,#2 ;是调用func1吗? MOVEQ R4,#0 ;*****其他情况省略 BL JumpTableFunc stop MOV R0, #0X18 ;程序结束处理 LDR R1, =0X20026 SWI 0X123456 JumpTableFunc LDREQU pc,[R3,R4,LSL #2] ;跳转到对应处理函数 JumpTable DCD func1 DCD func2 DCD func3 DCD func4 func1 ..............;第一种可能 MOV PC,LR ;其他函数定义省略 END 我的问题:程序中r0相当于switch(a)中的a,划线的指令把R0和表示入口数目的n ......
>>返回讨论的主题
|