TOPy[W > TOP > Ĉ > C̕@ > C̃Ǘ
@wywm@z[y[W

@@wywm@@
@|b̃Ǘ|@@
ŏIXVF2025N11

@p[\iERs[^̑́ANECЂ1976NɔTK-80Ƃ{[hE}CRłBROM(Read Only Memory)1KoCgARAM(Random AccessMemory)512oCgȂACe8080CPU݊NECPD8080A𓋍ڂĂ܂BCPU@B̖߂𒼐16iL[{[hł݁A16i7LEDɕ\ĊmFAƂ㕨łBɁABASICƂ𓮍삳lj{[hTK-80BSATSG(_ȊwO[v)쐬uGCAvƌQ[Av삳A{PC(́A}CNERs[^𗪂ă}CRƌĂ΂Ă܂Bp[\iERs[^悤ɂȂ͍̂@\Ăł)u[ɉ΂t܂BȂ݂ɁA͓TSGOBłBݐЂẮA͂4̖ɂׂꂻȃT[NłB

@@B̖߁AEAhX(Ԓn)́A16iŕ\܂BTK-80ŁAvƂ싅Q[ƂőłŗVł܂A813EԒn̖߂ւ̃Tu[`́ACDC3EC81(CDCALL߂̋@B)C8175ԒñeAWX^ɓǂݍނƂɂ́A3AC75C81(3AWX^AւLD߂̋@B)ƁA0`F܂ł16iL[őłł킯łB̒ɁADEWX^̎wԒn烌WX^AɃeǂݍޖ߂Ƃ̂ADEWX^81EFĂƂƁA1AƂ@B̖߂CPUsƁA81EFԒn̓eAWX^ɓ܂BDEWX^̓삪AC|C^łB

@@BňXłނ̂ł͑ςƂƂŁA@B𖽗߂ɓǂݑւAZuꂽ̂łAAZułJ͂ςAƂƂŁAlԓIȌŃvO~O邽߂ɁAClĂ܂BȂ̂ŁAC̒ɃAZủecĂ܂B|C^łȂAifAwhileAgotoA֐̔zȂǂłBCPUǂݍł@Bꖽ߂̕тA1ACC03C1AƂȂĂƁA81EFƂȂĂDEWX^̎wԒnAWX^Ƀf[^ǂݍ݉炩̏sāA03DEWX^1₵81F0ƂA1AŁA81F0ԒnAWX^Ƀf[^ǂݍށAƂɁACPU͏i߂čs܂BACł́A
pc1 = 0x81EF;
a = *pc1++;
a = *pc1;
ƕ\̂łBŏɕϐpc1ɃAhX81EFZbg܂B*pc1́Apc1̎wEAhX̓e܂Ba = *pc1ƂƁApc1ł͂ȂApc1̎wEAhX̃f[^ϐaɎĂ܂B*pc1++ƂȂĂ̂́AϐaɃf[^ꂽŁApc11₷(CNg)ƂӖ܂Bpc1̓e1āA81F0ɂȂ܂Ba=*pc1ƂƁApc1̎wAhX81F0Ԓnf[^oĕϐaɃZbg܂Bpc1|C^łB

@a1oCg̃f[^Apc1͕f[^̈ʒuAhXȂ̂ŁAOɁA
char a;
char *pc1;
Ɛ錾Ă͂łBpc11oCg̕f[^ێ킯ł͂Ȃ̂ŁAchar pc1;Ƃ͂Ȃ܂B1oCg̕f[^̓ĂAhXAƂƂ'*'t܂Bpc1̎wchar^f[^ʒuAƓǂłB64bit CPȔꍇAAhXwɂ8oCgv̂ŁApc1̓e8oCg̃Ɏ[܂B

@eLXgEt@C̓eǂݍŁA1oCg(1)“ǂݍʼn͂i߂Ƃ܂BႦ΁A
char c1;
char *pc1;
char str[] = "abcd";
Ɛ錾Ƃ܂Bstrł邱Ƃ߂ɁA[]‚char^f[^̔zł邩̂悤ɐ錾܂Bz͒ʏarray[3]̂悤ɗvf3ł邱Ƃ𖾎̂łAvfmłȂꍇɂ͗vfȗ[]Ƃ܂Bł́Astr"abcd"Ƃ4̕łBstrɂ͕̐擪AhXĂAstr̎wɂ͕̐擪'a'̂ŁAstř^char *łB

@stŕA̒ێĂ܂BJavaScriptł́A璷ɂĂł̒𕶎IuWFNglengthvpeBɕێ̂łAߖbg[ƂCnł́A̒Ƃێ܂BɁA̖0ɂAƂ񑩂܂BꂪC̊{łBȂ̂ŁA
pc1 = str;
c1 = *pc1;
printf("c1:%c, pc1:%x\n", c1, pc1);
pc1++;
c1 = *pc1;
printf("c1:%c, pc1:%x\n", c1, pc1);
pc1++;
c1 = *pc1;
printf("c1:%c, pc1:%x\n", c1, pc1);
pc1++;
c1 = *pc1;
printf("c1:%c, pc1:%x\n", c1, pc1);
pc1++;
c1 = *pc1;
printf("c1:%d, pc1:%x\n", c1, pc1);
pc1++;
ƂvO(5‚߂printfc1:̌낪A%c(o)ł͂ȂA%d(lo)ł邱Ƃɒ)gœ삳ƁAʂɁA
c1:a, pc1:ffffcc1b
c1:b, pc1:ffffcc1c
c1:c, pc1:ffffcc1d
c1:d, pc1:ffffcc1e
c1:0, pc1:ffffcc1f
ƕ\܂Bstr̍ŏ̕'a'łBpc1͕str̐擪A'a'̈ʒuwĂffffcc1bԒn(64rbgAhXȂ̂ŁA00000000ffffcc1bԒnł)wĂ܂Bpc11‘₵ȂAc1 = *pc1;ƂāApc1̎wԒnf[^ǂݏoƁAc1ɂ́A'b'C'c'C'd'ƓĂ܂A'd'̓Ăffffcc1eԒn̎A‚܂A擪ffffcc1b5oCgڂffffcc1fԒnɂ0Ă邱Ƃ܂B

@̔zœl̂ƂĂ݂܂BႦ΁A
int x1;
int ar1[] = {1, 2, 3};
int *pi1;
Ɛ錾A^i[zar1ar1[0] = 1Car1[1] = 2Car1[2] = 3ƂȂ悤ɏA^f[^ւ̃|C^pi1pӂ܂B
pi1 = ar1;
x1 = *pi1;
printf("x1:%d, pi1:%x\n", x1, pi1);
pi1++;
x1 = *pi1;
printf("x1:%d, pi1:%x\n", x1, pi1);
pi1++;
x1 = *pi1;
printf("x1:%d, pi1:%x\n", x1, pi1);
ƂvO𓮍삳ƁA
x1:1, pi1:ffffcc04
x1:2, pi1:ffffcc08
x1:3, pi1:ffffcc0c
ƕ\܂Bar1͔z񂪒uĂ郁ʒu̐擪AhX܂Bpi1 = ar1ƂƁApi1ɔz̐擪AhX܂Bx1 = *pi1ƂāApi1̎wAhX琮lx1Ɏox1ar1[0]1ɂȂ܂BŁApi1++Cx1 = *pi1ƂāApi1̎wAhX琮lx1Ɏox1ar1[1]2ɂȂ܂Bpi1̓CNg͂łAffffcc08ɂȂĂāA4Ă܂BȂ4邩ƌƁA^̃f[^4oCgL邩łB‚܂A^ւ̃|C^pc1ȂCNg1̂łA^̃f[^ւ̃|C^pi1ł̓CNgƐ^̃f[^̃TCY4̂łB

@1‚̃f[^8oCgL{x^̃f[^ւ̃|C^ł΁ACNg8܂B炱Az̃f[^ւ̃|C^1i߂ƁAz̎̃f[^w悤ɂȂ̂łBŃf[^ǂ̂悤ɔzu邩ƂƂ藝邱ƂC}X^[łB

@āAŒӂȂ΂ȂȂƂ܂BLpi1Ƃ|C^ɁApi1 += 4Ƃ4i߂ƁAffffcc0cpi1́A^̃f[^4•iŁAffffcc1cɂȂ܂BŁA*pi1 = x1ƂāA^ϐx1ɓĂf[^pi1̎wAhXɓƂǂȂł傤Hffffcc1cɂ́Astr = "abcd"'b'疖0Ă܂AR4oCg̃f[^͉܂B̌ŁA'd'oƂāAc1 = str[3]ƂĂApc1 = str + 3Cc1 = *pc1ƂĂÄʒũf[^͉Ă̂ŁAc1ɂ'd'͓܂B

@Cł́AvOc1 = str[3]LqĂAʂɂȂȂAƂƂN蓾܂BꂪAC̃vÕfoOĂ錴łBPythonJavaScriptł́Az̑傫zYzɎw肷ƃG[ɂȂ܂ACł́Az̗vf3ł鐮^̔zar1ŁAar1[7] = 3ƂĂAʂ̃̕f[^j󂷂̂ɃG[ɂ͂Ȃ܂BCł́Az̓Y|C^̎wAhXz݂̑ʒuI[o[ȂǂA莩ȊǗ邱Ƃ߂܂Bar1[j] = 3ƂOɁAYj0ȏ3ł邱ƂvO}ŊmFKv̂łB

@Cɂ́AW(L[{[h)͂gets()Ƃ֐܂BvO}A16oCgȓŖOȂǂ͂Ă炨ƎvāA
char name[16];
char c2, c3;
c2 = name[16];
c3 = name[17];
puts("16ȓŖO͂ĂF");
gets(name);
if ((c2 == name[16]) && (c3 == name[17])) {
printf("łB\n");
}
else {
printf("f[^Ă܂B\n");
}
ƂƂ܂BʂɁAu16ȓŖO͂ĂFvƕ\ē͑҂ɂȂ̂łA16Łu–؈Yv(Sp4Ȃ̂ŁAp8̃L܂)Ɠ͂ĂΖȂ̂łA16ȓAƂw[U[Ăۏ؂͂ǂɂ܂B[U[A
Ɠ͂[ENTER]iKŁÄnamě둤āuf[^Ă܂Bvƕ\Ă܂܂B̈namȇ傫16ł͂ȂA1024炢ɑ傫AƎv܂񂪁AC^[lbgłƁA1ԂȂɁAXƉSoCg̃f[^𑗂tăNbV܂(DosUƌ܂)B悭Aǂ̃TCg_EAƂj[X܂A΍􂪕s[ȃTCgł́AƂNĂ̂łB

@ƂƂŁAC̓_Ȃ̂AƌAZ̕WނƂĂ̗pȂ̂łA炱AZɂƂC͍œKȋނȂ̂łBȏ̃Ǘ̖_́AZɂɕՂAǂđ΍􂵂炢lD̗łBz𑀍삷ۂ́Az̓Ỹ`FbNɂ悤AƂAgets()֐ĝł͂ȂAW͂ɑ΂getc()֐pāA1“͂A16͂炻ŏIAƂAZgɍl邱ƂɂāAC^[lbgɖnbLOɑΉlނ{邱ƂłƎv܂B

@ŁACɂ郁ɂ‚člĂ݂܂B傫ȔzAႦ΁A1024~1024̐^̔zmۂƂA2‚̕@܂B1‚́AO[öŁA
int ar2[1024][1024];
Ɛ錾邩Amalloc()֐pāA
int j1;
int **ar3;
ar3 = (int **)malloc(sizeof(int *) * 1024);
for (j1 = 0; j1 < 1024; j1++) {
ar3[j1] = (int *)malloc(sizeof(int) * 1024);
}
Ƃ邩AłBsizeofZq́Asizeof intƂƁA^f[^1•̑傫4܂BLł́AJbRtďĂ܂Bsizeof(int *)́Aւ̃|C^̃TCY64bitCPUł8łBO҂̏ꍇAar2sizeof(int)~1024~1024oCg̗̈̐擪AhXێĂ܂Bar2̌^int **łBԏŁA^̃f[^́Aar2[0][0]Car2[0][1]Car2[0][2]CCar2[0][1023]Car2[1][0]Car2[1][1]CCar2[1][1023]Car2[2][0]CCar2[1023][1023]Ƃɕт܂Bar2[i][j]̃f[^ʒu郁EAhX́Aar2 + (i~1024 + j)~sizeof(int)łB

@2zmalloc()֐pĎꍇɂ́AL҂̂悤ɁA2iKɕčl邱ƂɂȂ܂Bar3malloc()֐gĊmۂ킯łAzar3[i][j]ƂăANZX邽߂ɂ́A܂Aar31024~sizeof(int *)oCg̗̈mۂAar3[0]ɁAar3[0][0]`ar3[0][1023]1024~sizeof(int)oCg̗̈(malloc()֐Ŋmۂ܂)̐擪AhXݒ肵Aar3[1]ɁAar3[1][0]`ar3[1][1023]1024~sizeof(int)oCg̗̈̐擪AhXݒAƂɂāAar3[1023]ɂ́Aar3[1023][0]`ar3[1023][1023]̗̈̐擪AhXݒ肵܂Bar3[0]̎wɂ͐^̃f[^ar3[0][0]ʒûŁAar3[0]̌^int *łBar3̎wɂ͐^̃f[^ւ̃|C^ar3[0]ʒûŁAar3̌^́A^ւ̃|C^̃|C^A‚܂Aint **ɂȂ܂B

@CɁAar3 = (int **)malloc(sizeof(int) * 1024 *1024)ƂĂAar3[0]ɓK؂ȃAhXĂȂ̂ŁAar3[0][0]ɏƂƁA炭AӖȃAhXɏނƂɂȂASegmentation faultNĎs~Ă܂܂BspƂĂA^ǂƂƂłAIɂ͏QĂēĂ悤Ɍ邾Ȃ̂ŁA[ɒӂĂB

@O[oϐƃ[Jϐɂ‚ĂqׂĂ܂BO[oϐ͏L̔z̗Amalloc()֐Ŋmۂꍇ܂߁AvONɓāAVXe犄蓖Ă郁ԂɁAf[^u܂BvOsɏɑ݂Ă̂ŁAfoKgdbŗeՂɃf[^̓ǂƂł܂BƂ낪A֐ɃXR[v肳郍[Jϐ́AX^bN̈ƂƂɃf[^uĂāA{IɃO[oϐƈقȂ܂B

@Ⴆ΁Aȉ̂悤ɁAmain()֐A֐func1()ĂяoĂƂ܂B
int globaldata;
int func1(int a, char *p) {
int k, m;
char c1, c2, c3;

֐{

return k;
}
void main(int argc, char *argv) {
int b, ret;
char *pc;
ret = func1(b, pc);

}
Lł́AO[oϐglobaldatáAO|öɒu܂Bmain()֐̒Afunc1()֐̒ANZXł܂BfoKgdbłA‚łlmF邱Ƃł܂BgdbŃEHb`|Cgݒ肷΁Al̕ωo邱Ƃł܂B

@CPU̓X^bN|C^ƌĂ΂郌WX^ĂA֐ĂяôƂ̃f[^̂ƂA߂Ԓn̊mۂɎgĂ܂Bmain()֐func1()ĂяoƂA܂CPÚA֐̈ƂȂĂf[^Aϐb̒lƁAϐpc̒lX^bN|C^̎wʒuɊi[܂BX^bN|C^2i݂܂BɁAfunc1()Ăяo߂̖̎߂uĂAhXA‚܂߂Ԓn(vOEJE^ƌĂ΂郌WX^As̖߂݈̑ʒuێĂ܂)X^bN|C^̎wʒuɊi[܂BX^bN|C^1i݂܂BɁAvOJE^Ɋ֐func1()̃AhXݒ肵܂Bfunc1()̐擪ɐ䂪ڂ܂Bfunc1()̍ŏŁAX^bN|C^̎wʒu+2ƁAX^bN|C^̎wʒu+3f[^oAaƈpɐݒ肵܂B̌A֐̐擪Ő錾ĂAϐkCϐmCϐc1Cϐc2Cϐc3L郁X^bN|C^̎wʒuɊmۂ܂B[Jϐ̃f[^̓X^bN̈ɒûłBfunc1()̏IĖ߂ƂA߂lX^bN|C^̎wʒuɊi[AX^bN|C^1–߂ƁAX^bN|C^́Afunc1()Ăяo߂̎̃AhXwĂAvOEJE^ɃZbgƁA䂪func1()Ăяo߂̎ɖ߂܂BCPÚA߂lϐretɃZbgAX^bNE|C^1–߂ďp܂B߂_ŁAX^bN̓eǂȂ邩͕܂Bʂ̊֐ĂяoΏĂ܂m܂BĂ܂΁AfoKgdbŒǂ͕̂s”\łB

@Cł́AfoOeՂɂ邽߂ɂ́AǂĂ[JϐɂKvꍇAɗ̓O[oϐɂׂłB[JϐɂĂ܂Ƃ̊֐ĂƂłȂƃfoKŒǂ͕̂s”\łBO[oϐ́AfoKgdbŃEHb`|CgɎw肵Ă΁A̓eՂɒǂƂł܂B


TOPy[Wɖ߂@@
TOP@@
wywmē@@
w̃y[W@@
̃y[W@@
yVuO@@
wywmuO@@
wywmtwitter@@
񍐃uO@@
vCoV[E|V[


yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB

© 2005-2025@F(L)