kermit配置/反汇编/c和汇编混合编程/计算机存储介质/GPIO编程

简介: <h1>kermit配置<br></h1> <div><img src="http://img.blog.csdn.net/20150413142013492" alt=""><br></div> <h1>反汇编</h1> <p></p> <div style="font-family:'Microsoft YaHei UI','Microsoft YaHei',SimSun

kermit配置


反汇编

wuyingqiang@ty-kf1:~/1$ gcc hello.c  -o app

wuyingqiang@ty-kf1:~/1$ gcc hello.c  -g -o app
-g参数决定反汇编之后的文件中,还能否看到c代码

wuyingqiang@ty-kf1:~/1$ objdump -dSsx app > file

两种情况下, cat file。 查看文件内容,c代码出会不一样。

wuyingqiang@ty-kf1:~/1$ file app 
app: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xd32f8a05fb02a3bd91cbc3c43a358569a62aa21e, not stripped

c和汇编混合编程

ATPCS协议,
汇编用寄存器传参,参数个数在4个以内

x86中c语言利用栈来传递参数,从右向左依次压栈。
c调用汇编
//main.c
#include <stdio.h>

extern int myadd(int a, int b);

int main(void)
{
int a = 3;
int b = 5;
int c;
c = myadd(a, b);
printf("%d\n", c);
return 0;
}
//myadd.s
AREA MYADD, CODE, READONLY
;ENTRY
EXPORT myadd
myadd
ADD R2, R0, R1
MOV R0, R2
MOV R15, R14;MOV PC, LR
END

--------------------------
汇编调用c
//main.c
#include <stdio.h>

extern int fun(int a, int b);
int add(int a, int b)
{
return a+b;
}
int main(void)
{
int res;
int a = 3, b = 5;
res = fun(a, b);
printf("%d\n", res);
return 0;
}
//fun.s
AREA FUN ,CODE, READONLY
IMPORT add
EXPORT fun
fun
add r0, r0, #1
add r1, r1, #1
mov r8, r14
bl add
mov r5, r0
mov r14, r8
mov pc, r14
end
----------------------------------
内嵌汇编
//main.c
#include <stdio.h>
int main(void)
{

__asm 
{
mrs r5, CPSR
bic r5, r5, #0xf
orr r5, r5, #0x2
msr CPSR_cxsf, r5
}
printf("hello\n");
return 0;
}



计算机存储介质



DRAM:内存,动态随机存储器。
SRAM:cache缓存(cpu内部), 静态 随机存储器。
cpu内部有
IROM:只读存储
IRAM:可读可写
bootloader程序会使用到。

GPIO编程


目录
相关文章
|
4月前
|
存储 编译器 C语言
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
|
6月前
|
存储 程序员
揭秘汇编语言基础命令:掌握底层编程秘籍,你准备好挑战硬件的直接对话了吗?
【8月更文挑战第22天】大家好,今天分享汇编语言基础命令。汇编语言直接与硬件交互,高效而底层。对理解计算机原理至关重要。本文以x86架构为例,介绍环境搭建、数据定义、寄存器操作、算术运算及控制流指令。通过示例程序实现1至10的累加,展示基础命令的实际应用。虽然学习曲线陡峭,但掌握后能深刻理解计算机工作原理。一起来探索汇编语言的魅力吧!
61 3
|
8月前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
126 1
|
9月前
|
存储 Ubuntu 编译器
C与汇编混合编程
C与汇编混合编程
131 0
|
9月前
|
算法 Python Windows
|
9月前
|
存储 小程序 编译器
【编程实践】黑框框里的打字小游戏,但是汇编语言(1)
开始: 在学习王爽的《汇编语言》的过程中,我就真切地体会到编程实践对于理解的帮助。起初我没有安装书中的实验环境,看到100页左右就开始感觉无趣、吃力,看了后面忘前面,差点就要放弃这本书的学习。好在我后来还是装好了环境,这才开始在实际的编程练习中感受到一些乐趣。
99 0
|
程序员 芯片 流计算
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
138 0
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
|
Windows
实验二用机器指令和汇编指令编程
实验二用机器指令和汇编指令编程
127 0
|
前端开发 rax
实验一:查看CPU和内存,用机器指令和汇编指令编程
实验一:查看CPU和内存,用机器指令和汇编指令编程
234 0
|
编译器
【CSAPP数据段解析】汇编语言机械级编程
【CSAPP数据段解析】汇编语言机械级编程
111 0
【CSAPP数据段解析】汇编语言机械级编程