Update Booting/linux-bootstrap-2.md

This commit is contained in:
hailin cai
2016-02-24 12:03:49 -05:00
parent fb2dfef16d
commit c5dfbfc2ba

View File

@@ -226,7 +226,7 @@ ENDPROC(memcpy)
END(name)
```
`memcpy` 的实现代码是很容易理解的。首先,代码将 `si``di` 寄存器的值压入堆栈进行保存,这么做的原因是因为后续的代码将修改 `si``di` 寄存器的值。`memcpy` 函数也包括其他定义在copy.s中的其他函数使用了 `fastcall` 调用规则,意味着所有的函数调用参数是通过 `ax`, `dx`, `cx`寄存器传入的,而不是传统的通过堆栈传入。因此在使用下面的代码调用`memcpy`函数的时候
`memcpy` 的实现代码是很容易理解的。首先,代码将 `si``di` 寄存器的值压入堆栈进行保存,这么做的原因是因为后续的代码将修改 `si``di` 寄存器的值。`memcpy` 函数也包括其他定义在copy.s中的其他函数使用了 `fastcall` 调用规则,意味着所有的函数调用参数是通过 `ax`, `dx`, `cx`寄存器传入的,而不是传统的通过堆栈传入。因此在使用下面的代码调用 `memcpy` 函数的时候
```c
memcpy(&boot_params.hdr, &hdr, sizeof hdr);