Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

实践第3章6节出现的错误 #21

Open
GoogleCodeExporter opened this issue Mar 14, 2015 · 4 comments
Open

实践第3章6节出现的错误 #21

GoogleCodeExporter opened this issue Mar 14, 2015 · 4 comments

Comments

@GoogleCodeExporter
Copy link

博主,您好:
实践本书第3章6节(后面几节都出现这样问题)发现核心堆栈
错误,经过定位发现是
在这个地方出错,比如以7节例子中:
LABEL_SEG_CODE32:
    ... ...
    push    $(ARDSTitle)           /* Display addr range descriptor struct
title */
    call    DispStr
    add     $4, %esp
    call    DispAddrMap            /* Display system address map */

    call    SetupPaging            /* Setup and enable paging */

    push    $(PMMessage)
    call    DispStr
    add     $4, %esp
    ... ...
把上面的代码屏蔽掉则不会出现问题。
我使用的编译系统环境是:redhat AS 4.6,内置gcc 
3.4.6,实践的BOCHS版本为2.3。

在WIN2003下使用BOCHSGDB.EXE调试,出现下面这种情况:
00000000000i[APIC?] local apic in  initializing
========================================================================
                        Bochs x86 Emulator 2.3
              Build from CVS snapshot on August 27, 2006
========================================================================
00000000000i[     ] reading configuration from bochsrc.bxrc
00000000000i[     ] WARNING: syntax has changed, please use 'vgaromimage:
file=...' now
00000000000i[     ] installing win32 module as the Bochs GUI
00000000000i[     ] using log file bochsout.txt
Next at t=0
(0) [0xfffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b         ; ea5be000f0
<bochs:1> vb 0x0008:0x00000000
<bochs:2> c
(7563480) Breakpoint 0, in 0008:00000000 (0x00090922)
Next at t=8830245
(0) [0x00090922] 0008:00000000 (unk. ctxt): mov ax, 0x0010            ;
66b81000
<bochs:3> u /12
00090922: (                    ): mov ax, 0x0010            ; 66b81000
00090926: (                    ): mov ds, ax                ; 8ed8
00090928: (                    ): mov ax, 0x0010            ; 66b81000
0009092c: (                    ): mov es, ax                ; 8ec0
0009092e: (                    ): mov ax, 0x0018            ; 66b81800
00090932: (                    ): mov ss, ax                ; 8ed0
00090934: (                    ): mov ax, 0x0020            ; 66b82000
00090938: (                    ): mov gs, ax                ; 8ee8
0009093a: (                    ): mov esp, 0x00000200       ; bc00020000
0009093f: (                    ): push 0x00000043           ; 6a43
00090941: (                    ): call .+0x000002ae         ; e8ae020000
00090946: (                    ): add esp, 0x00000004       ; 83c404
<bochs:4> pb 0x00090941
<bochs:5> c
(0) Breakpoint 2, 0x00090941 in ?? ()
Next at t=8830255
(0) [0x00090941] 0008:0000001f (unk. ctxt): call .+0x000002ae (0x00090bf4)
; e8ae020000
<bochs:6> s
Next at t=8830255
(0) [0x00090941] 0008:001f (unk. ctxt): call .+0x000002ae (0xffff02d2) ;
e8ae020000
<bochs:7> s
Next at t=8830256
(0) [0x000fe05b] f000:e05b (unk. ctxt): xor ax, ax                ; 31c0
<bochs:8> u /16
000fe05b: (                    ): xor ax, ax                ; 31c0
000fe05d: (                    ): out 0x0d, al              ; e60d
000fe05f: (                    ): out 0xda, al              ; e6da
000fe061: (                    ): mov al, 0xc0              ; b0c0
000fe063: (                    ): out 0xd6, al              ; e6d6
000fe065: (                    ): mov al, 0x00              ; b000
000fe067: (                    ): out 0xd4, al              ; e6d4
000fe069: (                    ): mov al, 0x0f              ; b00f
000fe06b: (                    ): out 0x70, al              ; e670
000fe06d: (                    ): in al, 0x71               ; e471
000fe06f: (                    ): mov bl, al                ; 88c3
000fe071: (                    ): mov al, 0x0f              ; b00f
000fe073: (                    ): out 0x70, al              ; e670
000fe075: (                    ): mov al, 0x00              ; b000
000fe077: (                    ): out 0x71, al              ; e671
000fe079: (                    ): mov al, bl                ; 88d8
<bochs:9>
因为最近在学习这些东西,很多不太明白,请博主及明白原��
�的同学告知。

Original issue reported on code.google.com by [email protected] on 1 Jun 2009 at 6:06

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant