查看全文
查看全文
查看全文

Caller Saved Register & Callee Saved Register

在使用汇编编程时,调用间需要保存与恢复寄存器,这些寄存器可以由调用者保存恢复(Caller Saved Register)也可以由被调用者保存恢复(Callee Saved Register)。

由于调用者不知道哪些寄存器会被修改,因此只能将所有 Caller Saved Register 进行保存恢复,但这样做效率低下。

因此使用 Callee Saved Register 由被调用者根据需要保存和恢复会被改变的寄存器更常用。需要保存的寄存器如下:

架构被调用者保存的寄存器
查看全文
查看全文

Linux 的三种链接文件

  • 软链接(符号链接)
    • 可以通过 cp --symbolic-link 命令创建
    • 通过文件路径进行链接
    • 可以跨文件系统
    • 可以连接目录
  • 硬链接
    • 可以通过 cp --link 命令创建
    • 通过共有 inode 进行链接
查看全文

Windows API 根据进程 ID 查找窗口的 HWND

在 Windows API 中,从进程 ID (PID) 获取窗口句柄 (HWND) 并没有一个直接的单一步骤函数(如 GetWindowByPid),因为一个进程可能拥有多个顶级窗口,也可能完全没有窗口。

通常的做法是枚举系统中的所有顶级窗口,并检查每个窗口所属的进程 ID 是否与目标 PID 匹配。

核心实现逻辑

最标准且高效的方法是使用 EnumWindows 函数。

查看全文

Apache 通过 .htaccess 配置前端路由的静态网站

1<IfModule mod_rewrite.c>
2  	RewriteEngine On
3    RewriteBase /
4
5    # 1. 如果访问的是 /about,且服务器存在 about.html,则自动映射
6    # 但不要在浏览器地址栏改变 URL(保持无后缀状态)
7    RewriteCond %{REQUEST_FILENAME} !-d
查看全文
查看全文
查看全文