 |
» |
|
|
|
This example shows how a simple C program generates assembly
language code. The program calls the printf()
routine. To run the assembled code, you need to link the file /usr/ccs/lib/crt0.o
and the C library file. Remember that the ld
command requires that you link the crt0.o
file first in 32-bit mode only. You do not need to link /usr/ccs/lib/crt0.o
in 64-bit mode.. C Program Listing |  |
main () { printf ("Hello World\n"); }
|
Assembly Program Listing From the C Compiler |  |
 |
.LEVEL 1.0 .SPACE $TEXT$,SORT=8 .SUBSPA $CODE$,QUAD=0,ALIGN=4,ACCESS=44,CODE_ONLY,SORT=24 main .PROC .CALLINFO CALLER,FRAME=0,SAVE_RP .ENTRY STW %r2,-20(0,%r30) ;offset 0x0 LDO 48(%r30),%r30 ;offset 0x4 ADDIL LR'$THIS_DATA$-$global$,%r27 ;offset 0x8 .CALL ARGW0=GR ;in=26; BL printf,%r2 ;offset 0xc LDO RR'$THIS_DATA$-$global$(%r1),%r26 ;offset 0x10 L$exit1 LDW -68(0,%r30),%r2 ;offset 0x14 BV %r0(%r2) ;offset 0x18 .EXIT LDO -48(%r30),%r30 ;offset 0x1c .PROCEND ; .SPACE $TEXT$ .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44,SORT=16 .SUBSPA $CODE$ .SPACE $PRIVATE$,SORT=16 .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=16 $THIS_DATA$ .ALIGN 4 .STRINGZ "Hello World\n" .SUBSPA $SHORTDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24 $THIS_SHORTDATA$ .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 $THIS_BSS$ .SUBSPA $SHORTBSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=80 $THIS_SHORTBSS$ .SUBSPA $STATICDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=16 $STATIC_DATA$ .SUBSPA $SHORTSTATICDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24 $SHORT_STATIC_DATA$ .IMPORT $global$,DATA .SPACE $TEXT$ .SUBSPA $CODE$ .EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR .IMPORT printf,CODE .END
|
 |
|