---------------------------------------
       mips NXJ e
---------------------------------------



@GNU binutils  mips (RV[YėpEgGfBA) łڐA
܂Bx[X2.8.1łBIWiƂ̎ȈႢ͈ȉ̒ʂłB

AZu:
EWX^𒼐ڋLqł
E16i萔̕\L '$' gpł (]ʂ̕\LI\)
EftHg̏o̓t@C̓t@C玩
Ȇ낢()

J:
EftHg̏o̓t@C̓t@C玩
EPS-X EXE ()݊`̃t@C̃T|[g(Cӂ̃AhXw\)

ec[:
EELF, ECOFF `ɑΉ

@ƂƂ̃c[̂ėpĂ邽߁Aݒ莟ŗlX
ŗp\łƎv܂BAPS-X ()̃AvP[
VJɂgp邱Ƃł܂B

@ȂA PS-X ()̊JŁAl GNU binutils 𗘗p
Ɖ\Ă̂ƂāANY ()܂AcOȂ{v
OƂ̊SȌ݊͂Ȃ܂B



@GNU binutils Ɋ܂܂Ăc[̂Aȉ̂̂gp\łB

---
	mipsar		A[JCo		ar
	mipsas		AZu		as
	mipsld		J			ld
	mipsdump	IuWFNg\	objdump
---

@GNU binutils ɂ͑ɂ̃R}h܂Aʏ̗prł
ΏL̃R}hŏ\Ώł܂B܂AL̃R}hp
đ̃R}h̑p邱Ƃ\łB(͋C)

---
	nm:		mipsdump --syms (قړ)
	ranlib:		mipsar -s	(S݊)
	size:		mipsdump -h	(Ȃꂵ)
	strip:		mipsld -s	(t@C쐬̂)
---

@evO PATH ̒ʂfBNgɒuŁAɐݒ͕K
v܂B

@ݒ̗ȒPɏĂ܂B

--- Installation
Human68k:
	mkdir c:/usr/psx/bin		CXg[ꏊ̍쐬
	move *.x c:/usr/psx/bin		t@C̈ړ
	path %path%;c:/usr/psx/bin	pX̐ݒ

MS-DOS:
	mkdir c:\usr\psx\bin		CXg[ꏊ̍쐬
	move *.exe c:\usr\psx\bin	t@C̈ړ
	path %path%;c:\usr\psx\bin	pX̐ݒ
---

@evOƂAIvV --help ƋLqƊȒPȎgp@
\A--version ƋLqƃo[Wԍ\܂B

@gp@̏ڍׂɂẮA}jAQƂĂB
@ȂAAZuɊւ{̏ƂāAwmips RISC A[LeN
` -R2000/R3000-x(Gerry Kane, O Ė, ISBN4-320-02598-9)
̏ЂQlɂȂƎv܂B

@}jAނ́A{Ƃ̃z[y[W HTML `̂̂̂ŁA
QƂĂB

	http://www.cygnus.com/pubs/gnupro/

@R[h ISO-8859-1(Latin1) Ȃ̂ŁAǂݍŃwb_
Ăƕ֗łB

---
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
---

AZuɂ

@\[Xł̃WX^̎wɂ GNU Assembler ̃WX^ł͂
AʓIȃWX^gp܂BGNU Assembler {̃WX^
wsȂꍇ́Aq -N IvVgpĂB

@WX^ƃWX^ԍƂ̑Ή͈ȉ̒ʂłB
@ȂAWX^̑啶͋ʂ܂B

--- mips Register Name
r0 ` r31 c ėpWX^0ėpWX^31ɑΉ

zero, at, v0, v1, a0, a1, a2, a3 c  r0 `  r7 ɑΉ
  t0, t1, t2, t3, t4, t5, t6, t7 c  r8 ` r15 ɑΉ
  s0, s1, s2, s3, s4, s5, s6, s7 c r16 ` r23 ɑΉ
  t8, t9, k0, k1, gp, sp, fp, ra c r24 ` r31 ɑΉ
---

@16i\ƂāA]́u0xcvɉāAu$cv̕\Lg
p\ƂȂĂ܂B

@o͂t@ĆA̓t@C̊gq .o ɕύX̂
gp܂BȂA̓t@Cs(W)̏ꍇɂ́A-o I
vVŖIɏo̓t@Cw肵Ȃt@C͍쐬
B

@s̃IvV͈ȉ̂̂ǉĂ܂B

--- mipsas Options
-N	WX^A16i\L̊g֎~܂B(--native)
	̃IvVw肷ƁAu$cv`̃WX^ŵ
	\ƂȂA16 i̕\Ĺu0xcv݂̂ƂȂ܂B

-S	';' RgƂ܂B
	}`Xe[gĝ߂̋؂蕶ł ';' Rg
	ƓɂȂ܂B

-B	mdebug ZNV̍폜sȂ܂B
	o͂t@C̃TCY}邱Ƃł܂AfobO
	ɕKvȏ(̈ꕔ)폜Ă܂܂Bw肷ۂɂ͒
	ӂKvłB

-F	reginfo ZNV̍폜sȂ܂B
	o͂t@C̃TCY͂قƂǕω܂BɁAgp 
	΃AhbVOsȂĂꍇ̓NɃG[
	邱Ƃ܂Bw肷ۂɂ͒ӂKvłB
---

Jɂ

@o͌`Ƃ psx y binary gĂ܂B-m IvV
gp邱Ƃŏo͌`ݒ肷邱Ƃł܂B̍ہAo͌`ɉ
ďo̓t@C̊gqݒ肳܂B(.elf .eco .psx .bin Ȃ)

@psx ` PS-X EXE ()݊`ƂȂĂ܂Aꕔ̕
Ă镔()ɂ͉ݒ肳܂(S0܂)B

@binary ` --oformat binary ̑p`łBZNVɕ
ꂽIuWFNgɕϊ邱Ƃł܂B

@psx y binary `ł͊eZNV͈ȉ̏Ŕzu܂B

1: .text .rodata/.rdata	c TEXT	(AhX:_ftext ` _etext TCY:_ltext)
2: .data .sdata		c DATA	(AhX:_fdata ` _edata TCY:_ldata)
3: .sbss .bss 		c BSS	(AhX:_fbss  ` _ebss  TCY:_lbss)

@eZNV̐擪AhXyуTCÝAL̃xŎQƂ邱
Ƃ\łB܂Agp WX^̏lƂăx _gp  .sdata Z
NV̐擪AhX + $8000 ݒ肳Ă܂B炩߃x _
gp ̒lݒ肵ĂƂŁACӂ̃AhXɐݒ肷邱Ƃ\łB

@gp WX^gp(.sdata/.sbss ZNV錾Ă)vO
ł́AJn la gp,_gp Ƃ gp WX^̐ݒsȂAK
vɉ BSS ̈̏sȂKv܂B

@psx y binary `ƂɁAvO̐擪AhXύX
 -Ttext IvVgpĂBftHg̐擪AhX 
elf32, ecoff, psx, binary SĂ̌` $80100000 ƂȂĂ܂B

@psx `̏ꍇ́AsJnAhXyуX^bNJnAhXݒ肷
邱Ƃł܂B(x .global 錾ĂKv܂B)

Ex _start `Ăꍇ́AsJnAhXƂȂA
@`ĂȂꍇ .text ZNV̐擪AhXsJnA
@hXƂȂ܂B

Ex _stack `Ăꍇ́AX^bNJnAhX
@ȂA`̏ꍇ $801FFFF0 ݒ肳܂B



uƂɂŏIIȃR[ho͂ł΂悢vƂȂKȕj
̂߁Aꕔ@\ɓ삵ȂȂǂ̕sł邩
BȂAHuman68k/Win32 łƂɁA܂CĂiKłA
ݒ@啝ɕς\̂ŒӂKvłB

@_ŔĂ_ȉɏĂ܂B

Eas ɊԈt@C͂Ɩ\ꍇ
Eld ̈ꕔ̃XNvgɓ삵Ȃꍇ
Ȇ낢()

Ql

@AZũTvƂ mult.s 𓯕Ă܂BAZu
@͈ȉ̒ʂłBڍׂ̓\[XXgQƂĂB

1. mult.s AZu mult.o o
	mipsas mult.s

2. mult.o N mult.psx o
	mipsld -Ttext 801F8000 -m psx mult.o

@IvV͔ʂ\Ȓx܂ŒZkł܂B(̏ꍇ -Tt, -mp)



v2.8.1 :
	E悤₭RpCʂē

	AZu
	Eʏ̃WX^̈g
	(Oh!MAGICOM ł̃pb`Qlɂ܂B肪Ƃ܂)

v2.8.1+1:
	AZu
	EAZurňُIdlC
	EC++ ̃RgɑΉ
	EWX^ r ̒ǉ
	EWX^̍(C̖)()
	E16i萔 '$' gpł悤ɂA-N IvVǉ
	E-S IvVǉ
	Eo̓t@C(*.o)

	J
	Eo̓t@C(*.elf *.bin)

v2.8.1+2:
	AZu
	EVtgJISR[hɑΉ(񒆂̂)
	E.sbss ZNV𖾎IɎwł悤Ɋg
	E[ .byte .dc.b .ascii ɂāAƒ萔𓯈
	@Ɉ悤Ɋg
	E[ .insert (t@Ĉ܂܎荞ދ@\)ǉ
	E[߂̐擪 . ̏ȗɑΉ

	J
	Et@CTpXɃvOƓfBNgǉ
	Ebinary `̕ZNV΍̂ bin `(*.bin)ǉ
	EPS-X EXE ()݊`(*.psx)ǉ

	̑
	EBFD64 (64rbg)ɑΉ
	EevÕRpCsC

v2.8.1+3:
	AZu
	EGCC ΍̂߁A-N IvVw莞͕\L̊gsȂ
	@悤ɕύX

	J
	Eo̓tH[}bg̓G~[VŎw肷悤ɕύX
	@({IɊԈĂ炵c ^^;)
	EG~[V̂Zkwł悤ɕύX
	Ee`̃IuWFNg݂̍ɑΉ
	EELF/ECOFF `̊JnAhX$80100000ɕύX
	EPSX/BINARY `̃V{ ELF/ECOFF ɍ킹ĕύX
	EECOFF ` -s IvVɓ삵ȂdlC

	̑
	EECOFF `(*.eco)ɑΉ
	Eo̓t@CɃS~dlC

v2.8.1+4:
	EAZu -B -F IvVǉ
	Eʏt@C̑̈ "rw-r--r--" ɕύX

v2.8.1+5:
	EAZuɃWX^ s8 ǉ(fp Ɠ)
	Ex _gp Cӂ̒lɐݒł悤ɏC

--
co
