Edit Notes - Rearrange, Appendix, Bugfixes.

This commit is contained in:
2025-10-02 17:23:43 +08:00
parent 176b33ec18
commit a111647c46
12 changed files with 192 additions and 107 deletions

View File

@@ -39,7 +39,7 @@ Bottles 是由 [bottlesdevs](https://github.com/bottlesdevs) 开发的可视化
[^lazy_loading]: 经实测发现,单文件 exe 才可以在这种情况下直接在 Bottles 里启动。但凡需要读同级文件、子文件夹的,都需要在 Bottle 里添加快捷方式,并在快捷方式的设置里手动指明工作目录。
首先需要引入`archlinuxcn`源。具体步骤参见[《Arch 安装流程》](../OS/ArchInstall.md#i-cn-源和-aur-助手),这里不再重复。
首先需要引入`archlinuxcn`源。具体步骤参见[《Arch 安装流程》](../Maintenance/ArchInstall.md#i-cn-源和-aur-助手),这里不再重复。
接着`sudo pacman -Sy bottles`安装。等待进度跑完,就可以从“应用程序菜单栏”运行了。
初次运行 Bottles 会弹出一个向导跟你 blabla无脑下一步即可。

View File

@@ -92,13 +92,14 @@ int example() {
又假设`example()`被 main 函数调用,那么栈帧可能会是这种分布:
|地址|...|备注|
|-|:--:|-|
|0x524|...||
|0x520|`main()`的 EBP|`example()`栈帧从这里开始|
|0x51C|int a = 10|
|0x518|int b|
|0x514|(空余 8B|`gcc`编译器要求栈帧大小为 16B 的整数倍|
|0x510|(空余 8B|`gcc`要求栈帧大小为 16B 的整数倍|
|0x50C|1024|参数 y|
|0x508|10|参数 x即复制 a 的值|
|0x504|调用`eg_sub()`时 EIP 指向的下一指令地址|亦即被`call`压栈、`ret`返回的地址<br>`example()`栈帧到此结束|
|0x504|调用`eg_sub()`时 EIP 指向的下一指令地址|亦即被`call`压栈、`ret`返回的地址<br>`example()`栈帧到此结束|
|0x500|`example()`函数的 EBP|这里是`eg_sub()`的栈帧了|
|...|...||