- 重命名和注释 变量重命名 快捷键(y),若想恢复则更名为空白名称即可方法/寄存器重命名 快捷键(N)注释:常规注释(:)/可重复注释(;),「;」表示该行为注释 如果你所分析的文件类型与常见编译器生成的普通二进制可执行文件相差甚大,你可能需要对反汇编分析和显示过程进行更多的控制。在分析采用自定义文件格式(IDA无法识别)的模糊代码或文件时,情况更是如此。 此时便需... 重命名和注释 变量重命名 快捷键(y),若想恢复则更名为空白名称即可方法/寄存器重命名 快捷键(N)注释:常规注释(:)/可重复注释(;),「;」表示该行为注释 如果你所分析的文件类型与常见编译器生成的普通二进制可执行文件相差甚大,你可能需要对反汇编分析和显示过程进行更多的控制。在分析采用自定义文件格式(IDA无法识别)的模糊代码或文件时,情况更是如此。 此时便需...
- #include <stdio.h>#include <assert.h> int strcmp(char const *str1, char const *str2){ int ret = 0; assert(str1 != NULL && str2 != NULL); while ( ! (ret = *(unsigned ch... #include <stdio.h>#include <assert.h> int strcmp(char const *str1, char const *str2){ int ret = 0; assert(str1 != NULL && str2 != NULL); while ( ! (ret = *(unsigned ch...
- 目录 第1题:字符的最短距离 第2题:棒球比赛 第3题:判定是否互为字符重排 第4题:岛屿的周长 第5题:两个数组的交集 第6题:计算质数 第7题:旋转数组 第8题:二叉树的层平均数 第9题:修建二叉搜索树 第10题:分糖果 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。 第1题... 目录 第1题:字符的最短距离 第2题:棒球比赛 第3题:判定是否互为字符重排 第4题:岛屿的周长 第5题:两个数组的交集 第6题:计算质数 第7题:旋转数组 第8题:二叉树的层平均数 第9题:修建二叉搜索树 第10题:分糖果 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。 第1题...
- 目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 整除的二进制前缀 第8题:去除重复字母 第9题:重构字符串 第10题:三角形的最大周长 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以... 目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 整除的二进制前缀 第8题:去除重复字母 第9题:重构字符串 第10题:三角形的最大周长 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以...
- 目录 第1题:数组中的第K个最大元素 第2题:字符串相乘 第3题:最长重复子数组 第4题:有效的完全平方 第5题:访问所有点的最小时间 第6题:路径总和 第7题:跳水板 第8题:解压缩编码列表 第9题:汉明距离 第10题:判断能否形成等差数列 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互... 目录 第1题:数组中的第K个最大元素 第2题:字符串相乘 第3题:最长重复子数组 第4题:有效的完全平方 第5题:访问所有点的最小时间 第6题:路径总和 第7题:跳水板 第8题:解压缩编码列表 第9题:汉明距离 第10题:判断能否形成等差数列 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互...
- 51单片机中 bit和sbit区别 回顾C语言发现在单片机中有bit sbit sfr 等一些类型! 问题:什么是bit和sbit?他... 51单片机中 bit和sbit区别 回顾C语言发现在单片机中有bit sbit sfr 等一些类型! 问题:什么是bit和sbit?他...
- 可执行程序包括BSS段、数据段、代码段。 在类UNIX系统下可使用size命令查看可执行文件的段大小信息。如size a.out: ~/Desktop/MyC$ size a.out text data bss dec hex filename 1672 600 8 2280 8e8 a.out 123 1.数据段存放已初始化的全局变量和静态变量,数据段属于静态内... 可执行程序包括BSS段、数据段、代码段。 在类UNIX系统下可使用size命令查看可执行文件的段大小信息。如size a.out: ~/Desktop/MyC$ size a.out text data bss dec hex filename 1672 600 8 2280 8e8 a.out 123 1.数据段存放已初始化的全局变量和静态变量,数据段属于静态内...
- 预处理:修改代码。用#include指令添加相关的头文件,编译器可能还需要根据实际情况跳过程序中的某些代码或补充一些代码,可以用#define和#ifdef来实现。编译:转换成汇编代码。计算机只能理解更低层的机器代码指令。而生成机器代码的第一步就是把C语言源代码转化为汇编语言代码。汇编:生成目标代码。编译器把这些汇编代码(都是些符号代码)汇编成机器代码或目标代码,即CP... 预处理:修改代码。用#include指令添加相关的头文件,编译器可能还需要根据实际情况跳过程序中的某些代码或补充一些代码,可以用#define和#ifdef来实现。编译:转换成汇编代码。计算机只能理解更低层的机器代码指令。而生成机器代码的第一步就是把C语言源代码转化为汇编语言代码。汇编:生成目标代码。编译器把这些汇编代码(都是些符号代码)汇编成机器代码或目标代码,即CP...
- 我们通过编译一个程序test.c,代码如下,来了解编译程序的过程。 #include <stdio.h> int main(){ printf("Hello world!"); return 0; } 1234567 1.预处理(Preprocessing) ~/Desktop/test$ gcc -E test.c -o test.i ~/Des... 我们通过编译一个程序test.c,代码如下,来了解编译程序的过程。 #include <stdio.h> int main(){ printf("Hello world!"); return 0; } 1234567 1.预处理(Preprocessing) ~/Desktop/test$ gcc -E test.c -o test.i ~/Des...
- 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %... 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %...
- 写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ... 写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ...
- 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在... 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在...
- 内核编程语言和环境 1. as86汇编器 语法: as[option] –o objfile srcfile .表示编译过程中的位置计数器 Objfile分为三个段(区):正文段(.text):程序的执行代码和只读数据 数据段(.data):可读/写的数据 未初始化数据段(.bss... 内核编程语言和环境 1. as86汇编器 语法: as[option] –o objfile srcfile .表示编译过程中的位置计数器 Objfile分为三个段(区):正文段(.text):程序的执行代码和只读数据 数据段(.data):可读/写的数据 未初始化数据段(.bss...
- 在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://so... 在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://so...
- 关于系统架构你不知道的那些事之架构设计的历史背景 前言机器语言(1940 年之前)汇编语言(20世纪40年代)高级语言第一次软件危机与结构化程序设计(20 世纪 60 年代~20 世纪 70 年代)第二次软件危机与面向对象(20 世纪 80 年代)软件架构的历史背景总结 前言 我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现... 关于系统架构你不知道的那些事之架构设计的历史背景 前言机器语言(1940 年之前)汇编语言(20世纪40年代)高级语言第一次软件危机与结构化程序设计(20 世纪 60 年代~20 世纪 70 年代)第二次软件危机与面向对象(20 世纪 80 年代)软件架构的历史背景总结 前言 我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现...
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签