hit-oslab2

2244 단어 운영 체제
오늘 히트-oslab2 실험 완료
실험 내용
  • 제6장을 읽고 컴퓨터와 Linux 0.11의 안내 과정에 대해 초보적인 이해를 한다.
  • 아래 요구에 따라 0.11의 안내 프로그램bootsect를 고칩니다.s
  • 관심 있는 학생은 보호 모드에 들어가기 전의 설정 프로그램 setup을 할 수 있다.s.

  • bootsect를 덮어씁니다.s 주요 기능은 다음과 같습니다.
  • bootsect.s 화면에 "XXX is booting..."프롬프트를 인쇄할 수 있습니다.그 중에서 XXX는 당신이 자신의 운영체제에 지은 이름입니다. 예를 들어 LZJos, Sunix 등입니다. (포럼에 올라가서 누구의 OS 이름이 가장 멋있는지 보여줄 수도 있고 특색 있는 로고를 보여줌으로써 자신의 운영체제가 남다르다는 것을 나타낼 수도 있습니다.)

  • setup을 덮어씁니다.s 주요 기능은 다음과 같습니다.
  • bootsect.s는 setup을 완성할 수 있습니다.s를 불러오고 setup으로 이동합니다.s 주소 실행을 시작합니다.그리고 setup.s 화면에 Now we are in SETUP 행을 내보냅니다.
  • setup.s 최소한의 기본 하드웨어 파라미터(예를 들어 메모리 파라미터, 그래픽 파라미터, 하드디스크 파라미터 등)를 가져와 메모리의 특정 주소에 저장하고 화면에 출력할 수 있다.
  • setup.s Linux 커널은 더 이상 로드되지 않으며 이러한 정보가 화면에 표시되도록 유지하면 됩니다.

  • 실험 절차:
  • bootsect.s의 실험에서 msg1의 문자와 순환 횟수를 수정하면 됩니다
  • 두 번째 실험은bootsect의 코드copy를 가져올 수 있으나,es 레지스터의 값
  • 을 주의해야 한다.
  • setup은 하드웨어 파라미터를 주소 0x90000에 저장하기 때문에 값을 꺼내려면 2진법과 16진법의 변환에 주의해야 한다.

  • 실험 코드
                                !code in setup.s
                                ! Print Now we are in SETUP
    mov ax,cs
    mov es,ax           
    mov ds,ax
    mov    ah,#0x03        
    xor    bh,bh
    int    0x10
    mov    cx,#25            !          
    mov    bx,#0x0007        ! page 0, attribute 7 (normal)
    mov    bp,#msg1
    mov    ax,#0x1301        ! write string, move cursor
    int    0x10
    
                                    ! Print Memory Size
    mov cx,#INITSEG
    mov ds,cx
        mov dx,[2]
        add    dx,#0x0400
        mov    cx,#4
        jmp print_hex
    
    print_hex:  
        mov    ax,#0x0E0F
        rol    dx,#4
        and    al,dl
        cmp    al,#0x0A
        jb    ltA
        jnb    nltA
    
    ltA:
        add    al,#0x30
        jmp    ctnp
    
    nltA:
        add    al,#0x37
        jmp ctnp
    
    ctnp:
        int    0x10
        loop    print_hex

    반성하다
    코드를 많이 수정해야 하니, 감히 손을 대라.사용할 수 없는 코드를 삭제해라.
    마지막 실험은 시작된 매개 변수만 얻었을 뿐이다. 어셈블리는 너무 적게 알고 0x90000에서 값을 얻는 것만 알 뿐 후속 조작에 대해서는 모른다.아니면 인터넷에서 찾은 다른 사람의 실험 보고서에서 전환을 해야 한다는 것을 알았는지,
    via:int 10 상세 설명http://blog.csdn.net/yes_life/article/details/6778834   
                             http://blog.csdn.net/zdy0_2004/article/details/48190467
                             https://github.com/hoverwinter/HIT-OSLab

    좋은 웹페이지 즐겨찾기