From 875bbcaafbc8de65cb2460470cb9e461f7c9415c Mon Sep 17 00:00:00 2001 From: hailin cai Date: Wed, 24 Feb 2016 12:12:00 -0500 Subject: [PATCH] Update Booting/linux-bootstrap-2.md --- Booting/linux-bootstrap-2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Booting/linux-bootstrap-2.md b/Booting/linux-bootstrap-2.md index 9c45769..742a5fd 100644 --- a/Booting/linux-bootstrap-2.md +++ b/Booting/linux-bootstrap-2.md @@ -321,7 +321,7 @@ GLOBAL(memset) ENDPROC(memset) ``` -首先你会发现,`memset` 函数和 `memcpy` 函数一样使用了 `fastcall` 调用规则,因此函数的参数是通过`ax`,`dx`以及`cx`寄存器传入函数内部的。 +首先你会发现,`memset` 函数和 `memcpy` 函数一样使用了 `fastcall` 调用规则,因此函数的参数是通过`ax`,`dx` 以及 `cx` 寄存器传入函数内部的。 就像memcpy函数一样,`memset`函数一开始将`di`寄存器入栈,然后将`biosregs`结构的地址从`ax`寄存器拷贝到`di`寄存器。接下来,使用`movzbl`指令将`dl`寄存器的内容拷贝到`ax`寄存器的低字节,到这里`ax`寄存器就包含了需要拷贝到`di`寄存器所指向的内存的值。