diff --git a/util/ceg/assemble/as_assemble/assemble.c b/util/ceg/assemble/as_assemble/assemble.c index 1a7500fc4..de40e1376 100644 --- a/util/ceg/assemble/as_assemble/assemble.c +++ b/util/ceg/assemble/as_assemble/assemble.c @@ -3,9 +3,18 @@ #include "em_decl.h" #include "as.h" +/* This file contains the assemble routine that generates assembly code. + * As 'str' is in assembly format this is a easy job. Only operands + * with "$n" in it need some special treatment. + * Note : a '$' is qouted by prefixing it with a '$'. + */ assemble( str) char *str; + +/* Output assembly instruction. Substitute for '$n' the name of the + * the n-th argument of the current EM-instruction. + */ { char buf[512] , *b_ptr, *arg_format(); int nr; @@ -20,7 +29,7 @@ char *str; *b_ptr++ = '$'; str = str + 2; } - else { + else { nr = atoi( str+1) - 1; *b_ptr = '\0'; out( "%s%s\", %s);", buf, diff --git a/util/ceg/assemble/as_assemble/block_as.c b/util/ceg/assemble/as_assemble/block_as.c index 2b93b4d36..ea625ff56 100644 --- a/util/ceg/assemble/as_assemble/block_as.c +++ b/util/ceg/assemble/as_assemble/block_as.c @@ -1,4 +1,10 @@ block_assemble( instructions, nr, first, last) + +/* Assemble a block of assembly instructions. If the table writer wants to + * combine assembly instructions he must rewrite this routine to fulfill his + * own needs. + */ + char **instructions; int nr, first, last; {