蛋疼arm汇编
文章平均质量分 78
leftover_crazy
这个作者很懒,什么都没留下…
展开
-
arm蛋疼汇编 part6--写程序怎能不调试 eclipse cdt zylincdt openocd gdb 调试
step1:安装eclipse cdt 这个google search 一大堆 archlinux 下 yaourt 直接 搞定step2:在线安装安装eclipse zylincdt插件 eclipse下 Help==>install new software==>work with: zylincdt - http://www.zylin.com/zylincdt 剩下的google search一堆setp3:安装openocd yaourt搞定最新版 配置文件如下:原创 2010-11-27 23:52:00 · 1984 阅读 · 1 评论 -
arm蛋疼汇编 part7--ATPCS 被调函数的标准“框架” 非山寨版本
test.S代码:@保护现场寄存器压栈 mov ip,sp @使用ip寄存器备份sp 此时sp指向函数调用前的数据栈中的最后一个数据 @即下一个存放用于本被调函数的数据栈顶地址为sp-4 stmfd sp!, {fp, ip, lr, pc} @满减栈 @ pc,lr ,ip ,fp 依次入栈 @栈中从高地址到低地址分别对应高编号入栈的寄存器到低编号的入栈寄存器原创 2010-11-29 21:17:00 · 2320 阅读 · 2 评论 -
arm蛋疼汇编 part8 -- 汇编 c 谁调用谁?
今晚学校网络真无法忍受了 哎~只能直接上代码了:makefile:test.bin: test arm-2440-linux-gnueabi-objcopy -I elf32-littlearm test -O binary test.bin cp test.bin ../../test: test.o test2.o arm-2440-linux-gnueabi-ld -Ttext=0x30000000 test.o test2.o -o testtest2.o: test2.c原创 2010-11-30 23:21:00 · 2583 阅读 · 0 评论 -
arm蛋疼汇编part 1
mov r0,r1 mov r0,#133 ldr r0,=1234567890 add r0,r1,r0 sub r0,r1,r0lable1:@以下两条指令将r1存储的内存地址为12345内的数据读取到r0中 ldr r1,=12345 ldr r0,[r1] label2: @以下两条指令将r0中的数据存储到r1保存地址为123456的内存中 ldr r1,=123456 str r原创 2010-11-18 22:46:00 · 975 阅读 · 0 评论 -
arm蛋疼汇编part 2 -- arm寻址方式
寻址方式:处理器根据指令给出的地址信息寻找物理地址的方式。立即数寻址:地址信息包含在指令中eg:add r0,r0,#2 @十进制 2为立即数 r0寄存器寻址:地址信息存放于寄存器中eg:add r0,r1,r2 @ r0原创 2010-11-23 21:50:00 · 714 阅读 · 0 评论 -
arm蛋疼汇编 part5--接着hello uboot part3! ATPCS
先上代码:test.S如下 Makefile如下 test.S代码分析如下: 压栈后栈内数据分布由上而下(从高地址到低地址)分别存放 fp ip lr此时fp存放的是栈内第一个数据的地址 即fp的地址如此压栈倒腾后sp寄存器便可在我们写的被调程序中随意操作 即可以使用该栈 并且容易根据fp寄存器弹栈 只要在程序结束前恢复fp ip lr 即符合ATPCS规范 ARM-thumb 过程调用标准”:1, r0-r3 用原创 2010-11-26 19:58:00 · 1193 阅读 · 0 评论 -
arm蛋疼汇编 part3-- 转载 ARM微处理器的指令系统
跳转指令:arm程序跳转的两种方法: 1.直接修改pc寄存器的值 可以实现4GB空间的跳转 2.使用跳转指令 只能实现前后32M空间的跳转B: 相对来说有去无回的跳转 格式: B{条件} 目标地址 eg:B Lable@@@@@@@@@@@@@@@@@@@@@@@CMP R0,#0BEQ Lable @相等则跳转 BL: 带返回的跳转 跳转前将PC寄存器的值写入LR寄存器(R14) 格式: BL{转载 2010-11-24 19:51:00 · 921 阅读 · 0 评论 -
arm蛋疼汇编 part4--接着hello uboot part2!
[leftover-crazy@leftover-crazy 3nd]$ vi test.S 代码如下:@压栈操作 str lr, [sp, #-4]!@函数调用 ldr r0, =hello @取hello标签地址给R0 既参数一的地址 @arm汇编参数传递通过 @R0传递第一个参数 @R1传递第二个参数原创 2010-11-25 21:10:00 · 1124 阅读 · 0 评论