mirror of
https://github.com/MintCN/linux-insides-zh.git
synced 2026-02-12 23:07:12 +08:00
Update Booting/linux-bootstrap-2.md
This commit is contained in:
@@ -234,11 +234,11 @@ memcpy(&boot_params.hdr, &hdr, sizeof hdr);
|
||||
|
||||
函数的参数是这样传递的
|
||||
|
||||
* `ax` 寄存器指向`boot_param.hdr`的内存地址
|
||||
* `dx` 寄存器指向`hdr`的内存地址
|
||||
* `cx` 寄存器包含`hdr`结构的大小
|
||||
* `ax` 寄存器指向 `boot_param.hdr` 的内存地址
|
||||
* `dx` 寄存器指向 `hdr` 的内存地址
|
||||
* `cx` 寄存器包含 `hdr` 结构的大小
|
||||
|
||||
`memcpy`函数在将`si`和`di`寄存器压栈之后,将`boot_param.hdr`的地址放入`di`寄存器,将`hdr`的地址放入`si`寄存器,并且将`hdr`数据结构的大小压栈。 接下来代码首先以4个字节为单位,将`si`寄存器指向的内存内容拷贝到`di`寄存器指向的内存。当剩下的字节数不足4字节的时候,代码将原始的`hdr`数据结构大小出栈放入`cx`,然后对`cx`的值对4求模,接下来就是根据`cx`的值,以字节为单位将`si`寄存器指向的内存内容拷贝到`di`寄存器指向的内存。当拷贝操作完成之后,将保留的`si`以及`di`寄存器值出栈,函数返回。
|
||||
`memcpy` 函数在将 `si` 和 `di` 寄存器压栈之后,将`boot_param.hdr`的地址放入`di`寄存器,将`hdr`的地址放入`si`寄存器,并且将`hdr`数据结构的大小压栈。 接下来代码首先以4个字节为单位,将`si`寄存器指向的内存内容拷贝到`di`寄存器指向的内存。当剩下的字节数不足4字节的时候,代码将原始的`hdr`数据结构大小出栈放入`cx`,然后对`cx`的值对4求模,接下来就是根据`cx`的值,以字节为单位将`si`寄存器指向的内存内容拷贝到`di`寄存器指向的内存。当拷贝操作完成之后,将保留的`si`以及`di`寄存器值出栈,函数返回。
|
||||
|
||||
控制台初始化
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user