たとえば、以下は cc コンパイラによって生成された C コードとそのアセンブリ コードの一部です。
// C code (pre K&R C)
foo(a, b) {
int c, d;
c = a;
d = b;
return c+d;
}
// corresponding assembly code generated by cc
.global _foo
.text
_foo:
~~foo:
~a=4
~b=6
~c=177770
~d=177766
jsr r5, csv
sub $4, sp
mov 4(r5), -10(r5)
mov 6(r5), -12(r5)
mov -10(r5), r0
add -12(r5), r0
jbr L1
L1: jmp cret
ほとんどのコードを理解できます。しかし、私は何をするのかわかりませ~~foo:
ん。~c=177770
そして、とのマジック ナンバーはどこから来るのでしょうか~d=177766
。ハードウェアは pdp-11/40 です。