提交 71351b98 编写于 作者: H H. Peter Anvin

[x86 setup] Make sure AH=00h when setting a video mode

Passing a u8 into a register doesn't mean gcc will zero-extend it.
Also, don't depend on thhe register not to change.

Per bug report from Saul Tamari.
Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
上级 b015124e
......@@ -73,9 +73,10 @@ static u8 vga_set_basic_mode(void)
mode = 3;
/* Set the mode */
ax = mode;
asm volatile(INT10
: : "a" (mode)
: "ebx", "ecx", "edx", "esi", "edi");
: "+a" (ax)
: : "ebx", "ecx", "edx", "esi", "edi");
do_restore = 1;
return mode;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册