2003-03-22  higepon  <higepon@users.sourceforge.jp>

        * disp.cpp: semaphoreˤ롢꥽å¸

        * syscalls.cpp: ƥॳ

        * kthread.cpp: ͥ륹åɼ

2003-03-09  higepon  <higepon@users.sourceforge.jp>

        * kthread.cpp: 4ĤΥåɤưȤ

2003-03-08  higepon  <higepon@users.sourceforge.jp>

        * pic.cpp: PIC򤤤ޤ

2003-03-07  higepon  <higepon@users.sourceforge.jp>

        * mode12h.asm (_write_font): fontѹ(by Guripon)

2003-03-02  higepon  <higepon@users.sourceforge.jp>

        * kthread.cpp: thread_idleɲ

2003-03-01  higepon  <higepon@users.sourceforge.jp>

        * ihandler.asm (_arch_timerhandler): ޳߻˥쥸򥻡

        * include/kthread.h: kthread ø٥륹åɺ

2003-02-28  higepon  <higepon@users.sourceforge.jp>

        * boot.mac

        * FDCDriver.cpp:

        * MFDCDriver.cpp: FD read µС

        * GuriponΥ

        * MFDCDriver.cpp: FD write µС

2003-02-25  higepon  <higepon@users.sourceforge.jp>

        * ihandler.asm (_arch_timerhandler): ɲ

        * ihandler.asm (_arch_dummyhandler): ɲ


2003-02-24  higepon  <higepon@users.sourceforge.jp>

        * ihandler.asm (_arch_fdchandler): ߥϥɥ򾯤ĥ֥˰ܹ

2003-02-23  higepon  <higepon@users.sourceforge.jp>

        * GraphicalConsole.cpp: ϢΥХեå

        * IA32MemoryManager.cpp:ͥޥåפѹ

2003-02-22  higepon  <higepon@users.sourceforge.jp>

        * GraphicalConsole.cpp:write_fontΥåѡǤ

2003-02-21  guripon  <guripon@users.sourceforge.jp>

        * mode12h.asmɲ ˤꤤʤޤ

2003-02-20  higepon  <higepon@users.sourceforge.jp>

        * MFDCDriver.cpp: read.µǲư

2003-02-16  higepon  <higepon@users.sourceforge.jp>

        * Makefile (SOURCES): cygwin.envѹ nasmw->nasm

2003-02-15  higepon  <higepon@users.sourceforge.jp>

        * IA32MemoryManager.cpp: allocateMemory()κ祢ɥ쥹0x150000

2003-02-14  higepon  <higepon@users.sourceforge.jp>

        * MFDCDriver.cpp: seekޤǼλ

2003-02-10  higepon  <higepon@users.sourceforge.jp>

        * MFDCDriver.cpp: motor(on/off)

2003-02-09  higepon  <higepon@users.sourceforge.jp>

        * MFDCDriver.cpp: FDCDriver줫ľϤ롣

2003-02-03  higepon  <higepon@users.sourceforge.jp>

        * include/ProcessManager.h: Process¤Τ饯饹ѹ

2003-02-02  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp (initProcess): 3ĤΥ¹Ԥ褦ѹ

        * ڤؤλ˥쥸¤Τ򤹤褦ѹ

2003-02-01  higepon  <higepon@users.sourceforge.jp>

        * include/ProcessManager.h (_saveRegisters): 쥸ѤΥޥɲ

2003-01-31  higepon  <higepon@users.sourceforge.jp>

        * include/ProcessManager.h struct Process˥ɲá

        * _sysUnlock,_sysLock()̾ѹ

        * Semaphore.cpp: ޥե饹Υȥɲ

2003-01-28  higepon  <higepon@users.sourceforge.jp>

        * include/ProcessManager.h (_switchProcess): pop %%eax

2003-01-27  higepon  <higepon@users.sourceforge.jp>

        * IA32MemoryManager.cpp: enableA20()ѻ secondboot.asm˰ܹ
2003-01-26  higepon  <higepon@users.sourceforge.jp>

        * KeyBoardManager.cpp:getCharacter();

        * monaKernel.cpp: printOKɲ
                          printBannerɲ

2003-01-25  higepon  <higepon@users.sourceforge.jp>

        * Mona develop beta 0.02b꡼

        * monaKernel.cpp: طʿʸѹ

        * monaIhandler.cpp: åڤؤƥȤ

2003-01-24  higepon  <higepon@users.sourceforge.jp>

        * monaIhandler.cpp: å¸ޤȤưޤ

2003-01-19  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp: å¸ˤĤޤưޤ

2003-01-16  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp: TSSȤʤå¸

2003-01-14  higepon  <higepon@users.sourceforge.jp>

        * monaVga.cpp:_sys_printf() %x

        * _sysdump()ޥɲ: ƤӽФ줿ǤΥ쥸ɽޤ

2003-01-13  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp

        * ⡧ؿƤӽФ
          ƤӽФ줿ؿEBPа֤ǥѥ᡼˥롣
          dword[EBP]  :EBPݻƤ
          dword[EBP+4]:ƤӽФpushƤ꥿󥢥ɥ쥹
          dwodd[EBP+8]:ѥ᡼

2003-01-12  higepon  <higepon@users.sourceforge.jp>

        * monaIdt.cpp: enableTimer(),disableTimer()ɲá
          thanks OSASK礵

2003-01-12 Guripon  <>

        * firstboot.asm: VirtualPCFDư褦ˤʤä
          TEMPSEG0x9fe0ޤäߤ

2003-01-10  higepon  <higepon@users.sourceforge.jp>

        * firstboot.asm: VirtualPCFDưʤ顼ʤΤ
          ΥС˴ᤷ

2003-01-08  higepon  <higepon@users.sourceforge.jp>

        * Tino󶡤ΥѥåˤSTLportѤǤ褦ˤʤޤ
          ޤȼgcc2.953.2˰ܹԤޤ

2003-01-04  Guripon  <>

        * firstboot.asm:A20ͭˤ륳ɤɲ

2003-01-03  higepon  <higepon@users.sourceforge.jp>

        * IA32MemoryManager.cpp: ͥѥΰĥ
        (resetGDT): type򥭥ȼ褦ˤ

        * monaIdt.cpp: IDT_BASE0ѹ

2003-01-01  higepon  <higepon@users.sourceforge.jp>

        * SystemInfo.cpp: vendorID

2002-12-31  higepon  <higepon@users.sourceforge.jp>

        * SystemInfo:cpuid̿Ѥơƥ륯饹ɲ

        * IA32MemoryManager.h: secondboot.asmǤGDTŪʤΤȤ
                               C++ܹԸGDTꤷʤ褦ѹ

2002-12-29  higepon  <higepon@users.sourceforge.jp>

        * monaKernel.cpp: IntelΥޥ˥奢TSSΥ˴ؤƵҤäΤ
                          碌ƽ

2002-12-28  higepon  <higepon@users.sourceforge.jp>

        * monaIhandler.cpp: fault0d()ѹ

2002-12-27  higepon  <higepon@users.sourceforge.jp>

        * monaIhandler.cpp (handlers): ߥϥɥpusha(),popa();ɲ

2002-12-26  higepon  <higepon@users.sourceforge.jp>

        * IA32MemoryManager.cpp (flushTLB): flushTLB()ɲá

2002-12-25  higepon  <higepon@users.sourceforge.jp>

        * IA32MemoryManager.cpp: staticؿ.h.cpp˰ư

        * include/IA32MemoryManager.h: startPaging(),stopPaging()ɲ

        * IA32MemoryManager.cpp: setCR3()ɲ

2002-12-24  higepon  <higepon@users.sourceforge.jp>

        * IA32MemoryManager.cpp: X86MemoryManager͡षޤ

        * X86MemoryManager:enableA20()˲
        * monaKernel.cpp: KeyBoardManager򥿥å
                          󥹥󥹲Ƥ

2002-12-23  higepon  <higepon@users.sourceforge.jp>

        * secondboot.asm (gdtr): CS,DS base=0,limit=4GBȤޤ

2002-12-22  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp: ޳ߤˤ륿ڤؤ

2002-12-16  higepon  <higepon@users.sourceforge.jp>

        * monaOperator.cpp: new[],delete[]ɲ gcc3.2б

2002-12-15  higepon  <higepon@users.sourceforge.jp>

        * doxygen:dot.exeȤ饹ġƳ

        * Makefile : libǥ쥯ȥб

2002-12-09  higepon  <higepon@users.sourceforge.jp>

        * include/ProcessManager.h: 󥰥ȥѥŬ

        * monaIhandler.cpp : iret() ޥ

        * H_SIZE_T,H_BYTEѻ

        * monaTester.cpp: multi task ok!! but some error.

2002-12-06  Guripon  <>

        * firstboot.asm: add retry on errror

2002-12-03  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp: add ltr()
        * ProcessManager.cpp: add setTSS()
        * ProcessManager.cpp: add setGDT()

2002-12-02  higepon  <higepon@users.sourceforge.jp>

        * ProcessManager.cpp: add sgdt()

        * monaKernel.cpp: panic()ɲ

2002-12-01  higepon  <higepon@users.sourceforge.jp>

        * secondboot.asm:TSSǥץɲ

2002-11-23  higepon  <higepon@users.sourceforge.jp>

        * firstboot.asm: Guriponˤ

2002-11-22  higepon  <higepon@users.sourceforge.jp>

        * monaIhandler.cpp (handlers): add timerHandler

        * include/ProcessManager.h: add

        * ProcessManager.cpp: add

        * monaTester.cpp: processTester()ɲ Ϥޤʤ

2002-11-20  higepon  <higepon@users.sourceforge.jp>

        * monaTester.cpp: typeTester()ɲ

        * include/monaTypes.h: byte,word,dwordɲ

2002-11-17  higepon  <higepon@users.sourceforge.jp>

        * MakeFile:HowToBuild

2002-11-16  higepon  <higepon@users.sourceforge.jp>

        * higeKernel.cpp (startKernel): enableA20()ȥ
          µȥܡϤȤʤ

        * higeVga.cpp (scrollUp): ʸطʿб

2002-11-15  higepon  <higepon@users.sourceforge.jp>

        * higeVga.cpp:ʸطʿɲ

2002-11-14  syn <syn@users.sourceforge.jp>

        * higeKernel.cpp, higeTester.cpp: FDCDriverΥƥȥɤ higeTester.cppذܹ
        * FDCDrive.cpp, FDCDrive.h: 2002/11/02˴ᤷѹ

2002-11-11  higepon  <higepon@users.sourceforge.jp>

        * X86MemoryManager.cpp: enableA20ɲ
        * higeTester.cpp: add
        * higeTester.h: add
        * ƥȥɤhigeTester.cpp˰ܹԤޤ
        * firstboot.asm:ޥɤ߹б powered by Guripon,syn
        * higeIdt.h:嵭бȼidtrɥ쥹0x68000x0500ѹ

2002-11-04  higepon  <higepon@users.sourceforge.jp>

        * KeyBoardManager.cpp:Ĺʥɤθľ

2002-11-02  syn <syn@users.sourceforge.jp>

        * bootǽΤᡢܤδᤷ

2002-11-02  syn <syn@users.sourceforge.jp>

        * FDCDriver.cpp, FDCDriver.h writeSectorμ
          FDCDriver::write_dma ɲ
        * FDCDriver.cpp ʣɤ߹ߤμ
        * FDCDriver::motor motor-offμ(˺Ƥ:-P)
        * FDCDriver::sector_to_hcr ɲ
        * FDCDriver.cpp Ƽ泌顼ɲ

2002-10-31  syn <syn@users.sourceforge.jp>

        * FDCDriver.cpp readSectorμ

2002-10-26  higepon  <higepon@users.sourceforge.jp>

        * higeVga.cpp: _sys_printf() %xб

2002-10-23  higepon  <higepon@users.sourceforge.jp>

        * firstboot.asm: number of sector to read 1832ѹ

2002-10-23  syn <syn@users.sourceforge.jp>

        * FDCDriver.cpp ɲ
        * include/FDCDriver.h ɲ
        * higeKernel.cpp: FDCDriverѤΥƥȥɲ(ȥȾ)
        * higeIhandler.cpp: fdcHandler add
        * higeIo.cpp: _sysInitIo: ߥޥѹFDCˤߤ
        * Makefile*: FDCDriverεɲ


2002-10-23  higepon  <higepon@users.sourceforge.jp>

        * higeKernel.cpp:test for HVectorɲ
        * MakeFile.cygwin:HVector.hεɲ
        * HVectorɲ
        * higeOperator.cpp: __builtin_vec_delete add

2002-10-22  higepon  <higepon@users.sourceforge.jp>

        * KeyBoardManager.cpp:constɲ
        * KeyBoardManager.h:constɲ
        * MemoryManager.cpp:פʥǥХååHIGEPOS_DEBUG_MM

        syncommitMakeFile˼ľ롣

2002-10-20  higepon  <higepon@users.sourceforge.jp>

        * ȯĶhigepos_v1.1˰ܹԤޤ

2002-10-19  higepon  <higepon@users.sourceforge.jp>

        * vga.cpp: _sys_printf%c ǽɲ

        * KeyBoardManager.cpp:̾Υ¸

        * firstboot.asm : Guripon rawwrite

2002-10-12  higepon  <higepon@users.sourceforge.jp>

        KeyBoardManagerɲ ȤϤޤǤ

        * Makefile.linux: KeyBoardManagerɲб
        * Makefile: KeyBoardManagerɲб
        * KeyBoardManager.cpp: ɲåܡϴ饹
        * KeyBoardManager.h: ɲåܡϴ饹
2002-10-06  higepon  <higepon@users.sourceforge.jp>

        linuxб

        * higeOperator.cpp: operator newΰsize_tѹ
          higepostypes.hinclude褦ѹ

        * higepostypes.h:size_t

2002-10-06  syn <syn@users.sourceforge.jp>

        * higeOperator.cpp: operator new operator delete򥳥ȥ
          (gcc __builtin_new(delete)Ȥ֤Ĥȥ顼Ф)
        * higeOperator.cpp: operetor new ΰ unsigned intѹ
          (gcc 㤦ȥ顼Ф)
        * higeOperator.h: operetor new ΰ unsigned intѹ
          (gcc 㤦ȥ顼Ф)

2002-10-06  higepon  <higepon@users.sourceforge.jp>

        * vga.cpp: add scrollUp()function, but it seems bad.

2002-09-08  higepon  <higepon@users.sourceforge.jp>

        * vga.cpp: create _sys_printf().

        * higeOperator.cpp: modify return value of allocateMemory, param value of freeMemory

2002-09-07  higepon  <higepon@users.sourceforge.jp>

        * X86MemoryManager.cpp: modify constructor

2002-09-07  higepon  <higepon@users.sourceforge.jp>

        * include/X86MemoryManager.h: add higepostypes.h
          and define H_SIZE_T
                     H_BYTE

2002-09-06  higepon  <higepon@users.sourceforge.jp>

        *  ƼԻfault0HandlerƤФ褦ˤ

        * add fault0Handler

--------------------------------------------
* ץ
* allocateMemoryNULL֤˳߽ư
* ̥ΥǥХå
* ߥȥ顼

ʲhttp://www.bekkoame.ne.jp/~bero/docj/gas.txt
ȯѥ
        3. 饤󎥥֥
~~~~~~~~~~~~~~~~~~~~~~~~
  饤󎥥֥, C ʸǤ,  C ǲ⤹٤
ǤǤ(Τ) gasΤȤǲ⤷ޤ

  饤󎥥֥νϡ

    asm("֥" :ϥѥ᥿ :ϥѥ᥿ :ѹѥ᥿ );
  ,
    asm volatile("֥" :ϥѥ᥿ :ϥѥ᥿ :ѹѥ᥿);

Ǥ ,

    (1) ֥ν, 嵭Υ֥򤽤Τޤ޽񤭤ޤ
    ( asm("movw  %ax, %ds"); AX DSؤžǤ)

    (2) â, ѥ᥿ϡ쥸̾ˤϤ⤦¿ %դޤ
    ( asm("movl  %0, %%eax" : /* no output */ : "g" (var) : "ax");
     ѥ᥿ %0Τ, %%eax Τ褦ˤʤޤ)

    (3) ѥ᥿ϡC ʬȡ֥ҤΤǤ
    ϥѥ᥿, C 饢֥ͤϤ, ϥѥ᥿,
    ֥ν̤ C ϤΤ˻Ȥޤ
    ( asm("movl  %%eax, %0" : "=g" (var));
    , EAXͤ C ѿ var˳Ǽޤ)

    (4) C ѥ, " ֥ "Ȥ򤷤ޤ
    ä, ѹ쥸̾ѹѥ᥿ǽ񤤤Ƥޤ
    Τ  "AX", "BX"Τ褦 16ӥåȥ쥸̾ΤǤ
    ˽񤤤ƤȡΥ쥸ѹΤȲᤷ,
    ɬפʤ, Υ쥸Ƥ򥻡,ꥹȥ륳ɤưŪ
    Ƥޤ

    (5) asm volatile, ʸϥѥΤʤѤʸǤ
    Ȥꤷޤȥѥ, ʸŬо
    ˤޤ󡣤Ĥޤꡤʸ, 줿ꤻɬ¹Ԥޤ

 3.1 ϥѥ᥿
 ~~~~~~~~~~~~~~~~~~
  ϥѥ᥿,

    "" ( Cμ)

ηǻꤷޤ ( )ϡ C μǤ, Τ褦ñʤѿ̾
Ǥʤ

    "g" (var1 * 16 + var2)

ʤɤȤ񤱤ޤ

    "g" ( func(a, b, c))

Τ褦˴ؿƤӽФƤɤ櫓Ǥդ,¾Υ饤󎥥֥
ä, Ǥ

  ϥѥ᥿, פΤȤ, "=g"Τ褦 = դޤޤ( )
C μǤ ͤǼǤΤȸ¤դޤ

 3.2 פλ
 ~~~~~~~~~~~~~~~~
  פȤƤ, ʲΤΤޤ(äȤ뤬, ɤȤΤ

    (1) r    ѥ쥸
    (2) f    ư쥸
    (3) m    
    (4) i,n  ¨
    (5) F    ¨ư
    (6) g    ѥ쥸/¨/ ɤǤ

  פ, ϡconstraintȸ̾, ֥ιʸȤϤ˵
륿פ񤭤ޤ㤨,

    asm( "movl %0, %%eax" : : "g"(var) : "ax");

ΥǤϡi386 mov̿Ǥ, ǥƥ͡ EAXξϡ
ѥ쥸, ¨, βηǽʤΤ "g"Ƚ񤭤ޤ 

    asm( "movl %0, %%dr0" : : "r"(var));

ξϡƱ movlǤ, DR0ü쥸ʤΤǡi386Ǥѥ쥸
ȸ̿ᤷޤ󡣤ΰ, "r"Ȼꤹɬפޤ
, gcc, varͤöѥ쥸˳Ǽ DR0˥ԡ̿
ƤޤʤȤǤΰ٤ˤɤΥ쥸ȤäƤ뤫
Τɬפꡤѹѥ᥿λ꤬ɬפǤ

  ޤ"g"ꤷΥǤϡvarͤ˲褫Υ쥸ä
СΥ쥸ࡼ֤̿Ф, ̵ϥ꤫ࡼ
̿ȸäŬޤ

  դϤʤΤǤԤͭʺѤ򤷤ƤʤȽ
, 㤨, ʸ줿, 롼פγ˽Ф줿ȸäפ̺Ŭ
򤵤Ƥޤ礬ޤȻפä, cc1νϤΥ֥򸫤
ǧǤ

  ޤϡasm volatileʸȤä, ŬǺưʤ褦ˤޤ

 3.3 ϥѥ᥿ȥڥɤб
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  嵭Υѥ᥿ȥڥɤб, ʲǸƸޤ礦 Υץ
, DOSΥƥॳȤä, ե򥪡ץ, η̤ɽ
Ǥ
=============================================================================
#include <stdio.h>
main(int argc, char **argv)
{
    int result;
    volatile int     error = 0;
asm("
    movl    %2, %%edx
    movw    $0x3d00, %%ax
    int $0x21
    jae noerror
    movl    %3, %1
noerror:
    andl    $0x0000ffff, %%eax
    movl    %%eax, %0
"   : "=g"(result), "=g"(error)
    : "g"(*++argv), "n"(-1)
    : "ax", "dx");

    printf("error=%d, result= 0x%x\n", error, result);
}
=============================================================================

  ֥ʸΤȤ, ʸˤޤȤƤޤǤϥѥ᥿
, %0, %1, %2, %3 4ĤȤƤޤ餬, ֹ , Ϥ
ѥ᥿бޤ Ĥޤꡤ %0 "=g"(result)ˡ%1 "=g(error), %2
"g"(*++argv)ˡ%3 "n"(-1)бǤ

  %3, ϥѥ᥿Ȥʤľ $-1Ƚ񤯤Ȥޤ

  Ǥ, ƤΥ֥餬ʸˤʤäƤޤ, noerrorμιԤ
褦,ιԤˤϥѥ᥿λȤ̵Ƥ, Ʊʸ˻ȤΤǡ
쥸̾ %%eaxΤ褦 %¿ɬפǤ

  ֥ʸν, ʸˤޤȤ᤺

    asm("movl  %0, %%edx":: "g"(*++argv): "dx");
    asm("movw  $0x3d00, %ax"::: "ax");

Τ褦,֥̿ᤴȤasmʸ񤯤Ȥޤ ޤ

    asm("movl %0, %%edx; movw $0x3d00, %%ax":: "g"(*++argv): "ax", "dx");

Τ褦, ʣΥ֥̿ ; Ƕڤä, Ԥ˽񤯤ȤǤޤ

 3.4 쥸ѿؤγդ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ֥Ѥ, ̿ˤäƤ, ڥɤΥ쥸ˤ
ȤɬפǤäꡤ̤Υ쥸ΤޤΤ褦
, 嵭Τ褦Υ쥸ؤ mov̿񤯤Ȥޤ, ̤ˡ
Ȥ, ѿ˥쥸Ū˳դˡޤ

  register unsigned char val asm("dx");

Τ褦, ѿ val, edx쥸κǲ̤ΥХȤ˸Ū˳դ
ޤȤä, Υ쥸Ȥ̿򼡤Τ褦ˤƻȤȤ
Ǥޤ

  unsigned char inp(int port)
  {
    register unsigned short p asm("dx");
    register unsinged char  c asm("ax");

    asm("inb  %1, %0" : "=r"(c) : "r"(p = port) : "ax", "dx");
    return c;
}

  Τ褦, ѿ˥쥸Ū˳Ƥ, Τ褦Υ쥸
ؤ mov̿񤯤ʤ褦ǤޤɤθΨŪˤɤ褦
Ǥ

  â, Υ쥸Ū˻ѤƤޤޤ, ¾ν˻Ȥ
쥸Τ, θΨʤޤä, 嵭ξʴؿ
Τ褦ʥפξϰϤ˸ꤷƻѤɤȻפޤ

 3.5 ٥λ
~~~~~~~~~~~~~~~~
  ޤǤ, ٥ȤäƤޤasmʸ " ֥ "ʬ,
٥⤽Τޤޥ֥ˤʤޤä, ̤˥٥Ȥäʬ
ޤ

  Ǥ, ֥ޤȤưʸˤޤ̡ʸˤƤƱͤ
٥񤯤Ȥޤ

  ٥̾Ǥѥ餬ȯ٥, Х̾ _ 
ϤޤꡤʬΥ٥ L , ʸ LCǻϤޤޤ, ʳαѻ
ǻϤޤ̾Υ٥ʤ֤Ĥ뤳Ȥ̵Ȼפޤ( C, goto
٥ȤƻꤷΤ LxxxxѹΤ, 饤󎥥֥餫
C Υ٥ؤʬϤǤޤ)

 3.6 
 ~~~~~~~~
  ĤΤޤ, 3.3Ǥ error volatile int 
ޤ, errorȸѿ, ѥΤʤѤ
(γߤѹ줿, 񤭹ߤˤ곰Ϥäˤȸ
̣Ǥ

  volatile intꤷʤ, gcc "֥"ʬ򤷤ʤǡƤʸ
˼¹ԤȲꤷƺŬԤΤǡjaeǧ, error 
ȻפäƤޤޤΰ, error = 0ȸάƤޤޤ

  ʬդǤ

  ˤĤ, (PED00647), Τ褦˽񤯤٤ȤΤĺޤ
ϥѥ᥿ΤȤ, ʲΤ褦˽񤭴ΤǤ

    : "g"(*++argv), "n"(-1), "1"(error)

  , 1֤Υѥ᥿ error, ϤˤʤäƤǧvolatile int
ʤƤ, ֥餬Ϥޤ

  , ä񤷤 asmʸνϡgcc1.37.1ΥΤȤˤ
gcc.texȸ TeXǽ񤫤줿ѥΤΥޥ˥奢˾ܤ񤫤Ƥޤ
顤򻲾ȤƲ (, ʸǤ

                                        ʾ
