Mercurial > hg > Papers > 2021 > anatofuz-master
comparison paper/chapter/02-cbc.tex @ 63:eaa7a127027b
add asm
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 03 Feb 2021 13:30:03 +0900 |
parents | 45395005373f |
children | f431abfba3b2 |
comparison
equal
deleted
inserted
replaced
62:45395005373f | 63:eaa7a127027b |
---|---|
36 \lstinputlisting[label=src:cbcexample_test, caption=CbCの例題]{src/cbc_example_test.cbc} | 36 \lstinputlisting[label=src:cbcexample_test, caption=CbCの例題]{src/cbc_example_test.cbc} |
37 | 37 |
38 | 38 |
39 この例では構造体\texttt{struct Test}をcodegear1に渡し、その次にcodegear2に継続している。 | 39 この例では構造体\texttt{struct Test}をcodegear1に渡し、その次にcodegear2に継続している。 |
40 codegear2からはcodegear3にgotoし、 最後にexitする。 | 40 codegear2からはcodegear3にgotoし、 最後にexitする。 |
41 この例題をアセンブラに変換した結果を示す。 | 41 この例題をアセンブラに変換した結果をソースコード\ref{src:cbcexample_test_asm}に示す。 |
42 \lstinputlisting[label=src:cbcexample_test_asm, caption=ソースコード\ref{src:cbcexample_test}のアセンブラの一部]{src/cbc_example_test.s} | |
42 初回のmainからcodeGear1への継続は、 CbCコンパイラの仕様上関数呼び出しが行われる。 | 43 初回のmainからcodeGear1への継続は、 CbCコンパイラの仕様上関数呼び出しが行われる。 |
43 それ以外のcodegear2からcodegear3などのgotoは、jmp命令が実行される。 | 44 それ以外のcodegear2からcodegear3などのgotoは、jmp命令が実行される。 |
44 jmp命令はプログラムカウンタを切り替えるのみの命令であるため、 callと違いスタックの操作をしていないことが分かる。 | 45 jmp命令はプログラムカウンタを切り替えるのみの命令であるため、 callと違いスタックの操作をしていないことが分かる。 |
45 | 46 |
46 | 47 |