- 博客(45)
- 收藏
- 关注
原创 使用十六进制表示内存地址:从原理到实践
• 类比:将内存想象为一座巨大的公寓楼,每个房间存储一个字节(8位二进制数据)。为了找到特定数据,需要给每个房间一个唯一编号,即内存地址。• 本质:地址是CPU访问内存单元的唯一标识符,类似于门牌号。
2025-07-17 15:17:28
307
原创 各进制的概念与转换
进制(Radix)就是进位制度,简单说就是“逢几进一”• 十进制(Decimal):我们日常用的,逢十进一,数字有 0-9。• 二进制(Binary):计算机用的,逢二进一,数字只有 0 和 1。• 八进制(Octal):逢八进一,数字有 0-7。• 十六进制(Hexadecimal):逢十六进一,数字有 0-9 和 A-F(A=10, B=11, …, F=15)。
2025-07-17 15:03:00
576
原创 cannot read spec file ‘nosys.specs‘: No such file or directory
出现这种情况是因为gcc-arm-none-eabi工具链不完整。通过find命令可以看到,nosys.specs 文件已经被下载。
2025-07-14 07:06:48
319
原创 user is not in the sudoers file:无法使用sudo
因为用户不在 sudoers 文件中,因此无法使用 sudo 权限执行命令。• -aG表示将用户添加到指定的组(sudo 组)• user 是要添加的用户名。
2025-07-12 08:54:10
402
原创 汇编语言与操作系统交互
操作系统为应用程序提供了一系列系统调用接口,这些接口是应用程序与操作系统内核交互的桥梁。在汇编语言中,可以通过特定的指令和约定来调用这些系统服务。(一)系统调用接口系统调用接口是操作系统提供给用户程序的接口,用于请求操作系统提供的服务。这些接口通常包括文件操作(如打开、关闭、读写文件)、进程控制(如创建、终止进程)、通信(如网络通信、进程间通信)等。x86_64 系统调用在 x86_64 架构下,系统调用是通过 syscall 指令实现的。
2025-07-12 08:34:04
288
原创 C语言与汇编混合编程
(一)GCC(GNU Compiler Collection)内联汇编语法• 输出操作数列表:指定汇编指令的输出结果,格式为[约束符] (C变量),例如"=r" (result)表示将结果存储到一个通用寄存器中,并赋值给C变量result。• 输入操作数列表:指定汇编指令的输入数据,格式为[约束符] (变量C),例如"r" (input)表示将C变量input的值放入一个通用寄存器作为输入。
2025-07-12 08:26:47
707
原创 Debian:从GNOME切换到Xfce
命令中xfce4 是Xfce桌面环境的核心组件,xfce4-goodies 是一些额外的工具和插件,可以增强Xfce的功能。选择2或3,startxfce4是一个启动Xfce的脚本,而xfce4-session是Xfce的会话管理器,优先级更高。最近为20年前的T43重新安装了Debian系统,但使用的gnome桌面太卡了。于是换成轻量级的Xfce系统。重启后,系统会便进入了Xfce环境。如果没有,那么可以在用户名输入框下方的下拉菜单中,选择Xfce登录。这会列出所有可用的桌面环境。2.设置默认桌面环境。
2025-07-11 19:59:57
449
原创 apt -y参数的含义
在使用 apt(Advanced Package Tool)命令时,-y 参数可以自动确认安装过程中的提示,从而避免手动干预。
2025-07-10 20:22:57
148
原创 跨平台的ARM 和 x86 Docker 镜像:汇编语言实验环境搭建
1.安装 Docker2.加速器配置(可选):(2)添加加速器地址:(4)验证加速是否生效如果加速器配置正确,镜像拉取速度会明显提升。3.安装 buildx 插件:Buildx 支持为不同的平台和架构构建镜像,例如同时构建适用于 linux/amd64 和 linux/arm64 的镜像。19.03版本后的docker会自带buildx。查看docker版本:docker --version4.安装 QEMUQEMU 是一个硬件虚拟化工具,用于模拟不同架构的 CPU。
2025-07-08 13:11:46
354
原创 高级汇编语言编程技巧与优化
1.宏的基本概念• 定义:宏是一种文本替换机制。它允许程序员定义一个宏名,并将一组指令或代码片段与该宏名关联起来。在代码中使用宏名时,汇编器会将其替换为对应的指令或代码片段。2.宏的定义和使用(1)定义宏在汇编语言中,宏的定义通常使用MACRO指令开始,以ENDM指令结束。宏的定义包括宏名和一组指令或代码片段。(2)使用宏在代码中使用宏时,只需调用宏名,并提供相应的参数。汇编器会在预处理阶段将宏展开为对应的指令。3.宏的嵌套宏可以嵌套使用,即在一个宏的定义中调用另一个宏。
2025-07-07 14:19:01
1017
原创 汇编语言:指令系统与控制流
(一)按功能分类1.数据传送指令• MOV:用于寄存器之间、寄存器与内存之间、内存与内存之间的数据移动。• PUSH/POP:用于将数据压入堆栈或从堆栈弹出。2.算术运算指令• ADD/SUB:加法和减法运算。• MUL/DIV:乘法和除法运算。3.逻辑运算指令• AND/OR/XOR:逻辑与、或、异或运算。• NOT:逻辑非运算。4.控制转移指令• JMP:无条件跳转。• CALL/RET:子程序调用和返回。
2025-07-07 00:39:14
795
原创 汇编语言:数据表示与存储
(一)基本数据类型• 字节(Byte):8位(bit)组成一个字节,是计算机存储数据的最小单位。db(define byte)指令用于定义一个字节的数据。• 字(Word):16位组成一个字。dw(define word)指令用于定义一个字的数据。• 双字(Double Word):32位组成一个双字。dd(define double word)指令用于定义一个双字的数据。• 四字(Quad Word):64位组成一个四字。
2025-07-06 23:57:39
774
原创 汇编语言入门与基础架构
(一)历史地位• 汇编语言是计算机发展早期的重要语言,它直接与计算机硬件交互,是计算机硬件与高级语言之间的桥梁。在计算机发展的早期阶段,汇编语言被广泛用于编写操作系统、驱动程序等底层软件,因为这些软件需要直接控制硬件资源,而汇编语言提供了对硬件的直接访问能力。• 例如,早期的DOS操作系统就是用汇编语言编写的,它能够高效地管理计算机的硬件资源,为用户提供基本的操作系统功能。(二)应用场景• 性能优化:在对性能要求极高的领域,如嵌入式系统、实时操作系统等,汇编语言仍然发挥着重要作用。
2025-07-03 08:17:31
756
原创 Python正则表达式re模块全解析:模块级、Pattern对象与Match对象方法详解
模块级方法,pattern对象方法,和match对象方法。
2025-06-05 20:56:57
868
原创 深入解析 systemd 服务文件:配置与管理
systemd服务文件是用于定义服务的启动、停止、依赖等属性的配置文件,通常以 .service 结尾。
2025-06-01 10:20:05
1249
原创 debian转移根目录
如何在 BIOS 启动的 Debian 虚拟机中将根目录转移到 /dev/sda 设备上?本文将从硬盘分区,根目录复制,重新启动等几个方面介绍。
2025-04-13 20:35:21
491
原创 断开ssh连接程序继续运行
screen 和 tmux 是两款非常强大的终端复用工具,它们允许你在后台运行会话,即使断开 SSH 连接,程序也会继续运行。按下 Ctrl+A,然后按 D 键,这将把会话放到后台。• 如果需要简单地让程序在后台运行,推荐使用。• 如果只是临时需要让程序继续运行,可以使用。这将把程序放到后台运行,并将输出重定向到。• 如果需要更复杂的程序管理,可以使用。在 screen 会话中启动程序,例如。如果你已经启动了一个程序,但忘记使用。这将使程序在后台运行,并且不会被终止。键,这将把会话放到后台。
2025-02-22 21:44:04
821
原创 深度剖析 ReDoS 攻击:原理、场景与防范策略
ReDoS(Regular Expression Denial of Service)是一种利用正则表达式引擎的回溯机制进行的拒绝服务攻击。攻击者通过构造特定的输入字符串,使正则表达式匹配过程产生大量的回溯操作,从而导致系统资源耗尽,最终使服务不可用。
2025-02-09 10:32:03
1655
原创 正则表达式
正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于匹配字符串中字符组合的模式。它是一种强大的文本处理工具,可以用来执行复杂的字符串搜索、替换、验证等操作。
2025-02-07 15:38:51
1912
1
原创 systemd服务文件
systemd 服务文件(.service 文件)是用于定义和管理 Linux 系统服务的配置文件。这些文件通过指定服务的启动条件、执行命令、用户权限、重启策略等,帮助 systemd 管理服务的生命周期。一个典型的 systemd 服务文件由以下三个主要部分组成:[Unit] 部分,[Service] 部分和[Install] 部分。
2025-02-06 11:18:56
749
原创 ssh连接.bashrc无法自动生效
SSH连接时通常会加载.bash_profile文件(如果存在)。可以在.bash_profile中显式调用~/.bashrc,确保每次登录时都会加载.bashrc。确保~/.bashrc文件有正确的权限,它应该是可读的,并且对于文件所有者来说应该是可写的。编辑~/.bashrc文件时,确保没有引入语法错误。语法错误可能会导致文件无法正常加载。如果输出不是/bin/bash,可能需要切换到Bash Shell。确保你当前使用的Shell是Bash。
2025-02-04 11:20:29
829
原创 C语言扫雷解析
下面是四个字符数组,x坐标和y坐标对应了棋盘中的x轴和y轴,不过棋盘中是从1开始,数组中从0开始。开头是三个宏定义:X,Y,B。X控制了棋盘的长度,Y控制了棋盘的高度,B控制了棋盘的雷数。片段中引入了<time.h>,根据时间可以随机生成雷的位置。我们从源码开始,分析整个游戏的运行过程。minesweeper.c片段。
2025-01-29 19:11:55
573
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人