第一周学习任务

第一周学习任务

C语言调用栈

栈的基本认知

  • 栈是一种典型的后进先出的数据结构,其操作主要有压栈与出栈两种操作

  • 每个程序在运行时都有虚拟地址空间,其中某一部分就是该程序对应的栈,用于保存函数调用信息和局部变量。此外,常见的操作也是压栈与出栈

  • 程序的栈是从进程地址空间的高地址向低地址增长的

在随后的学习中便可能用栈溢出来挖掘漏洞。

寄存器的基本认知

在 8086 架构中,所有的内部寄存器、内部以及外部总线都是 16 位宽,可以存储两个字节,因为是完全的 16 位微处理器。8086 处理器有 14 个寄存器,每个寄存器都有一个特有的名称。常用的可以为他们分为以下几类:

通用寄存器

EAX(累加器"accumulator") AX(累积暂存器) AH(高八位) AL(低八位)
EBX(基地址"base"寄存器) BX(基底暂存器) BH(高八位) BL(低八位)
ECX(计数器"counter") CX(计数暂存器) CH(高八位) CL(低八位)
EDX(余数寄存器) DX(资料暂存器) DH(高八位) DL(低八位)

他们均有着对应的功能

AX(Accumulator Register) : 累加寄存器,它主要用于输入/输出和大规模的指令运算。
BX(Base Register):基址寄存器,用来存储基础访问地址
CX(Count Register):计数寄存器,CX 寄存器在迭代的操作中会循环计数
DX(data Register):数据寄存器,它也用于输入/输出操作。它还与 AX 寄存器以及 DX 一起使用,用于涉及大数值的乘法和除法运算。
————————————————

                     版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_50662680/article/details/129162647

指针寄存器

ESP(Stack pointer)栈指针它是栈寄存器上的偏移量,用来定位栈
EBP(Base pointer)基础指针它也是栈寄存器上的偏移量,它用来定位栈上的变量

变址寄存器

ESI(Source Index)变址寄存器用来拷贝源字符串
EDI(Destination Index)目标变址寄存器用来复制到目标字符串

寄存器的使用约定

寄存器eax、edx和ecx为主调函数保存寄存器

ebx、esi和edi为被调函数保存寄存器

被调函数必须保持寄存器ebp和esp,并在函数返回后将其恢复到调用前的值

Linux终端命令

01.ls命令说明

-a 显示指定目录下所有子目录与文件,包括隐藏文件

-l 以列表方式显示文件的详细信息

-h 配合-l以人性化的方式显示文件大小

可以联合使用,与顺序无关

02.切换目录

cd

cd 切换到当前用户的家目录

cd ~(有空格) 切换到当前用户的家目录

cd .(有空格) 保持在当前目录不变

cd …(有空格) 切换到上级目录

cd -(有空格) 可以在最近两次工作目录之间来回切换

相对路径和绝对路径
  • 相对路径 :在输入路径时,最前面不是/或者~,表示相对当前目录所在 的目录位置
  • 绝对路径:在输入路径时,最前面是/或者是~,表示从根目录/家目录开 始的具体目录位置

03创建和删除操作

3.1touch
  • 创建文件或修改文件时间
    • 如果文件不存在,可以创建一个空白文件
    • 如果文件已经存在,可以修改文件的末次修改日期
3.2mkdir
  • 创建一个新目录

​ -p 可以递归创建目录

  • 新建目录的名称不能与当前目录中已有的目录或文件同名
3.3rm
  • 删除文件或目录

​ 使用rm命令要小心,因为文件删除后不能回复

-f 强制删除,忽略不存在的文件,无需提示

-r 递归地删除目录下的内容,删除文件夹时必须加此参数

也可以用通配符

04拷贝和移动文件

序号命令作用
01tree(目录名)以树状图列出文件目录结构
02cp(源文件)目标文件复制文件和目录移动文件
03mv源文件 目标文件移动文件或者目录/文件或者目录重命名
4.1tree
  • tree命令可以以树状图列出文件目录结构
  • -d:只显示目录

~表示Linux的家目录

4.2cp
  • cp 相当于给dos下的copy指令
选项含义
-i覆盖文件前提示
-r若给出的源文件是目录文件,则cp
将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
4.3mv
  • -i 覆盖文件前的提示

05查看文件内容

序号命令作用
01cat 文件名查看文件内容,创建文件,文件合并,追加文件内容等功能
02more 文件名分屏显示文件内容(看后续文件按空格)
03grep 搜索文本文件名搜索文本文件内容
5.1cat
  • 会一次显示全部内容,适合查看文件较少的文本文件
选项含义
-b对非空输出行编号
-n对输出的所有行编号

linux中还有一个nl的命令和cat -b效果等价

5.2more
  • more 命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合查看内容较多的文本内容
操作键功能
空格键显示手册页的下一屏
enter键一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出
5.3grep

桌面上快捷键 ctrl +f

  • 强大的搜索工具
  • grep允许对文本进行模式查找(正则表达式)
选项含义
-n显示匹配行及行号
-v显示不包含匹配文本的所有行(相当于求反)
-i忽略大小写

格式:grep +字母 +文件名

可以联合使用,如果显示不包含所有行的行号:grep -vn +文件名

搜索词可以加双引号

  • 常用的模式查找
参数含义
^a行首,搜索以a开头的行
ke$行尾,搜索以ke结尾的行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值