- 博客(74)
- 收藏
- 关注
原创 day30.buzzer蜂鸣器
第30节:buzzer蜂鸣器1、编写编译运行测试root@ubuntu:/home/linuxsystemcode/buzzer# cat buzzer.c#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <unistd...
2018-02-28 20:25:46 770
原创 day33.字符与字符串
第33节:字符与字符串例子:int x = 123;//补码float f = 123.4F //IEEE编码int i =‘A’ //储存的是字符1、字符:上面的例子中的字符‘A’在C语言和汇编里的表示如下:C语言例子:#include<stdio.h>void main(){ int i = 'A'; return;}汇编代码:4: int i = 'A...
2018-02-28 18:20:14 153
原创 day32.浮点类型
第32节:浮点类型学习数据类型主要有两点,数据类型决定了一个变量能存储多少数据,还是它存储的数据是什么格式的。浮点类型的种类float 4个字节double 8个字节long double 8个字节(某些平台的编译器可能是16个字节)赋值:float x = 1.23;double ...
2018-02-27 18:19:48 144
原创 day29.led 灯
第29节:led 灯1、编写运行编译例程:root@ubuntu:/home/linuxsystemcode/led# cat led.c#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <unistd.h>#in...
2018-02-26 21:40:08 327
原创 day31.整数类型
第31节:整数类型在之前的课程我们提到了,所谓变量就是一种容器可以存储数据,里面的数据可以改变。整数类型的宽度如下:char、short、int、longchar 8bit 1字节 0~0xFFshort 16bit 2字节 0~0xFFFFint 32bit 4字节 0~0xFFFFFFFFlong 32bit 4字节 0~0x...
2018-02-26 20:40:16 180
原创 day14.python的列表(三)
第14节:python的列表(三)Type "help", "copyright", "credits" or "license" for more information.>>> a = range(100)>>> a.reverse()>>> a[99, 98, 97, 96, 95, 94, 93,
2018-02-25 11:30:15 180
原创 day28.main函数传参数
第28节:main函数传参数1、编写运行编译main函数例程:root@ubuntu:/home/linuxsystemcode/main# cat argvc.c#include<stdio.h>#include<string.h>int main(int argc,char *argv[]){ int i,j; i = atoi(argv[1...
2018-02-24 19:32:02 142
原创 day30.函数嵌套调用的内存布局
第30节:函数嵌套调用的内存布局我们在函数里面可以定义变量,可以做加法运算,当然也可以调用其它的函数。例子:#include<stdio.h>int plus1(int x,int y){ return x+y;}int plus(int x,int y,int z){ int m = plus1(x,y); return m+z;}void main() //程序入口{ int...
2018-02-24 13:55:34 273
原创 day27.read读操作
第27节:read读操作1、编写运行编译read函数例程:root@ubuntu:/home/linuxsystemcode/read# cat read.c#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <unist...
2018-02-23 22:29:08 206
原创 day13.python 的列表(二)
第13节:python 的列表(二)Type "help", "copyright", "credits" or "license" for more information.>>> a = range(100)>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2018-02-23 21:45:07 231
原创 day29.变量与参数的布局
第29节:变量与参数的布局在之前的课程里面,大家已经掌握了,函数、调用、变量、参数、返回值等相关的一些概念,那么这节课我们从内存的角度来分析一下,这些所谓的概念它们的本质是什么。这节课解决三个问题:1、参数在内存中的位置2、局部变量在内存中的位置3、返回值是如何返回,如何使用的例子:#include <stdio.h>int plus(int x,int y){ int z = x +...
2018-02-23 21:17:19 163
原创 day12.python 的列表(一)
第12节:python 的列表(一)什么是listlist是处理和存放一组数据的列表用途:工资列表、购物列表、送礼列表例子1:Type "help", "copyright", "credits" or "license" for more information.>>> name = [‘Blue Polo','dashuai','tieda']>>&
2018-02-22 21:28:37 295
原创 day26.write写操作
第26节:write写操作1、编写运行编译write函数例程:root@ubuntu:/home/linuxsystemcode/write# cat write.c#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <u...
2018-02-22 19:44:52 304
原创 day28.什么是变量
第28节:什么是变量变量是什么?在程序的进程中需要存储一些数据。大家之前学汇编的时候知道了,存储数据可以存到CPU中也就是存在寄存器里也可以存在内存中。但是在C语言中存储数据的时候我们要把这个数据存储到哪里呢?在C语言里所为的变量就是一个容器,也就是一块内存。1、声明变量变量类型 变量名变量类型 用来说明宽度是多大int 4个字节short 2个字节char 1个...
2018-02-22 18:37:47 335
原创 day25.creat创建操作
第25节:creat创建操作1、编写运行编译creat函数例程:root@ubuntu:/home/linuxsystemcode/create# cat creat.c#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>main(){ ...
2018-02-21 20:14:26 235
原创 day27.什么是参数,什么是返回值通过堆栈形式表示
第27节:什么是参数,什么是返回值通过堆栈形式表示返回类型 函数名( 参数列表){ return;}例子:int plus(int x,int y){ return x+y;}void main() //程序入口{ //调用函数 plus(1,2); return;}1、在上节课主要说了一下函数的写法,和形式,上面的例子回顾一下,...
2018-02-21 15:05:00 224
原创 day24.open 打开文件操作
第24节:open 打开文件操作驱动设备的节点ls /dev/leds编写运行编译open例程1)首先看一下帮助文档内容topeet@ubuntu:~$ man 2 open2)open.c创建#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>...
2018-02-20 15:09:10 340
原创 day11.文件处理(二)
第11节:文件处理(二)例子:1、拷贝文件到当前文件路径下strom@strom-virtual-machine:~/Desktop/Learn_python/day07$ cp /var/log/syslog ./strom@strom-virtual-machine:~/Desktop/Learn_python/day07$ lssyslog test.txt2、查看文件内容行数strom@...
2018-02-20 12:36:39 143
原创 day10.文件处理(一)
第10节:文件处理(一)例子:strom@strom-virtual-machine:~/Desktop/Learn_python/day07$ pythonPython 2.7.12 (default, Dec 4 2017, 14:50:18)[GCC 5.4.0 20160609] on linux2Type "help", "copyright", "credits" or "licen...
2018-02-19 22:19:15 179
原创 day26.C语言的汇编表示
第26节:C语言的汇编表示1)编写第一个C程序void main() //程序入口,程序开始执行的地方{ __asm{ mov eax,eax mov ecx,ecx } return; //程序结束}以上的代码在MOV eax,eax 按F9下段,进行调试如下汇编代码:0040D440 push ebp0040D441 mov ebp,...
2018-02-19 19:26:09 395
原创 day23.返回的信息有哪些
第23节:返回的信息有哪些1)启动信息– 操作系统启动之后会在终端中打印硬件信息以及驱动程序信息:硬件信息:U-Boot 2010.03 (May 17 2017 - 09:00:45) for iTOP-4412 Android APLL = 1000MHz, ...
2018-02-18 15:33:03 265
原创 day25.什么是JCC
第25节:什么是JCC这节讲一下·JCC指令,回想一下在之前的章节里讲过了,能改EIP的寄存器的一些指令为:JMP、CALL、RET 。这节讲JCC都是可以改EIP寄存器的。这个JCC指令更改寄存器不像JMP指令,这个JCC指令属于无条件修改EIP寄存器,但是JCC这个指令是否要改EIP这个寄存器,它需要看一些条件的,主要看标志寄存器的一些位。首先了解一下标志寄存器如下:1)CF位这个位主要是用来...
2018-02-18 14:01:54 5186
原创 day24.什么是EBP寻址
第24节:什么是EBP寻址上节ESP寻址回顾:当我们的汇编函数在执行的时候它怎么去找参数,怎么去找临时的值。主要使用ESP的寻址方式来寻找参数和其他的值,那么这种ESP有一个弊端的情况,因为ESP存储的是堆栈的栈顶的地址,如果当前汇编指令在执行过程中要使用到堆栈的话,那么栈顶就会发生变化(ESP的值会发生变化)。当你在下面再次使用的话,ESP的值会去寻找它的参数和变量,就要修正这个变化,如果不修正...
2018-02-17 18:25:39 452
原创 day22.绝对路径和相对路径
第22节:绝对路径和相对路径1)绝对路径举例如下:root@ubuntu:/home/minilinux/system/bin# cd /mntroot@ubuntu:/mnt#绝对路径就是以“/”开头的都属于绝对路径2)相对路径举例如下:root@ubuntu:/mnt# cd ../root@ubuntu:/#绝对路径就是以“../../”开头的都属于相对路径(注意:有符号“..”)...
2018-02-17 17:12:28 486
原创 day21.linux权限
第21节:linux权限1)权限包括读、写、执行分别如下:Linux下用对应字母为 r、w、x。2)看如下例子:root@ubuntu:/home/minilinux/system/bin# ls -l hello-rwxr-xr-x 1 root root 648462 Feb 17 00:01 hello第1位“-”:表示是这个文件是一个文件不是其他第1个rwx:表示是用户权限第2个r-x:表...
2018-02-17 17:02:44 166
原创 day20.回顾一下创建和删除用户组
第20节:回顾一下创建和删除用户组1)创建用户组并查看创建的组root@ubuntu:/home# groupadd stromroot@ubuntu:/home# cat /etc/group|grep stromstrom:x:1001:2)删除用户组并查看组是否删除root@ubuntu:/home# groupdel stromroot@ubuntu:/home# cat /etc/gro...
2018-02-17 16:47:52 162
原创 day19.回顾一下创建和删除用户
第19节:回顾一下创建和删除用户1)创建一个用户root@ubuntu:/home# useradd strom2)查看创建的用户的方式root@ubuntu:/home# cat /etc/passwd|grep stromstrom:x:1001:1001::/home/strom:/bin/sh3)删除创建的用户root@ubuntu:/home# userdel stromroot@ubu...
2018-02-17 16:40:45 132
原创 day18 .编写一个helloworld通过烧写system.img执行hello程序
第18节:编写一个helloworld通过烧写system.img执行hello程序1)拷贝hell文件到system的bin目录下root@ubuntu:/home/linuxsystemcode/helloworld# cp -r hello /home/minilinux/system/binroot@ubuntu:/home/linuxsystemcode/helloworld# cd /...
2018-02-17 16:24:42 338
原创 day17.编写一个helloworld在arm系统中运行
第17节:编写一个helloworld在arm系统中运行1)创建文件linuxsystemcodestrom@strom-virtual-machine:/home$ sudo mkdir linuxsystemcode/strom@strom-virtual-machine:/home/linuxsystemcode$ sudo mkdir helloworld2)编写hello.c代码如下:#...
2018-02-17 14:01:11 631
原创 day08.while语句
第8节:while语句while是计算机的一种基本循环模式。我们来看python的while循环模式是什么样的:例子:#!/usr/bin/env pythoni = 0while True:i=i+1if i == 50:print 'i have got to the round 50th!'continueelif i>70:breakprint i当i =0时候执行while循环,i...
2018-02-16 18:42:19 167
原创 day03.Jmp指令的使用
day03. Jmp指令的使用例子:1234567891011121314#include<stdio.h>int i,gi;void * address;void main(){ _asm { mov eax,eax mov address,offset _lb1 jmp address } i = 2; _lb1: ...
2018-02-16 18:29:21 512
原创 day09.回顾用户交互、循环例句
第9节:回顾用户交互、循环例句1)使用raw_input、while函数写出用户交互#!/usr/bin/env pythonimport sysusername = 'strom'password = '123456'locked = 0retry_counter = 0while retry_counter<3: user = raw_input('Username:').stript...
2018-02-16 16:17:23 140
原创 day23.什么是ESP寻址
第23节:什么是ESP寻址寄存器传参与堆栈传参寄存器传参回顾一下:例子: MOV ECX,1 MOV EDX,2 CALL 004183D7 004183D7 MOV EAX,ECX ADD EAX,EDX ...
2018-02-16 13:21:11 459
原创 day16.最小linux系统如何生成的
第16节:最小linux系统如何生成的1)使用下载好的busybox源码包,这个包基础已经包含了linux常用的linux命令。2)创建目录存放解压busybox源码包并且topeet@ubuntu:/home$ sudo mkdir minilinuxtopeet@ubuntu:/home$ sudo mv busybox-1.22.1.tar.bz2 minilinux/topeet@ubun...
2018-02-16 00:04:37 182
原创 day15.烧写最小linux系统
第15节: 烧写最小linux系统1)将zImage、system、ramdisk-uboot这三个文件拷贝到USB_fastboot_tool\platform-tools路径下2)进入uboot模式3)查看磁盘分区结构iTOP-4412 # fdisk -c 0.fdisk is completed partion # size(MB) blo...
2018-02-15 22:42:17 319
原创 day14.烧写ARM的Ubuntu
第14节:烧写ARM的Ubuntu1)测试TF的速度(使用ATTO Disk bench32工具)首先确认你的TF卡是FAT32格式接着驱动器选择你接的TF卡的盘符数据包的大小选择1024到1024总长度选择32M,其他默认点开始测试读写速度都要达到5M才行,不然烧写Ubuntu系统是不行的。2)先跳过这节烧写Ubuntu系统,因为我的卡测试过达不到这个效果,年后补上这节。注意:购买卡的时候要买c...
2018-02-15 14:11:28 241
原创 day22.什么是推栈平衡
第22节: 什么是推栈平衡如果要返回一个程序,则当我们在推栈中进行推栈的操作的时候,一定要保证在RET这条指令之前,ESP指向的是我们压入的栈中的地址。怎么理解这句话呢?我们看一下错误的例子: CALL 0041840D0041840D MOV EAX,1 PUSH ECX RET ...
2018-02-15 12:39:07 807
原创 day07.for语句
第7节:for语句1)用for循环语句输出从1到100的例子: for i in range(1,100): print i 2)用range实现奇数偶数方法: range(0,100,2) //偶数 以0开始到99 ,每位相隔2位 range(1,100,2) //奇数 以1开始到99 ,每位相隔2位 3)使用break和continue方法:break用法:跳出...
2018-02-14 21:03:24 171
原创 day02.修改全局变量值,查看反汇编存储方式
day02.修改全局变量值,查看反汇编存储方式12345678910#include <stdio.h> int gi;void main(){ _asm mov eax,eax; //伪代码使用ollydbg定位到这行 gi = 0x12345678; return 0; }使用ollydbg工具调试在window里情况:0041139E 8BC0 ...
2018-02-14 19:06:57 507
原创 day13.查看编译文件build-all中的参数属性意思和下载系统中的触摸插件下载
第13节:查看编译文件build-all中的参数属性意思和下载系统中的触摸插件下载1、参数属性意思 ./configure -opensource ####选择免费开放源代码 -embedded arm ####设置嵌入式模式 -xplatform qws/linux-arm-g++ ####对应的编译平台 -no-webkit ##...
2018-02-14 17:55:29 241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人