Listed below is an assembly language translation of the program of this lecture.    This form must still be translated into the machine language of esus before it can run.  Notice that there is a lot of information generated here besides just the assembly language.  These are all aids to the programmer and the compiler writer.

        .file "prog1.pas"

.text
        .balign 16
# [prog1.pas]
# [5] begin {tester}
.globl  main
        .type   main,@function
main:
.globl  PASCALMAIN
        .type   PASCALMAIN,@function
PASCALMAIN:
.globl  program_init
        .type   program_init,@function
program_init:
        pushl   %ebp
        movl    %esp,%ebp
        subl    $4,%esp
        call    FPC_INITIALIZEUNITS
.L3:
# [6] Writeln(); Writeln();
        leal    U_SYSLINUX_OUTPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   -4(%ebp)
        call    FPC_WRITELN_END
        pushl   $.L3
        call    FPC_IOCHECK
.L4:
        leal    U_SYSLINUX_OUTPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   -4(%ebp)
        call    FPC_WRITELN_END
        pushl   $.L4
        call    FPC_IOCHECK
.L5:
# [7] Write('Please enter an integer value for I: ');
        leal    U_SYSLINUX_OUTPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   $.L8
        pushl   -4(%ebp)
        pushl   $0
        call    FPC_WRITE_TEXT_SHORTSTR
        pushl   -4(%ebp)
        call    FPC_WRITE_END
        pushl   $.L5
        call    FPC_IOCHECK
.L9:
# [8] Read(I);
        leal    U_SYSLINUX_INPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   -4(%ebp)
        call    FPC_READ_TEXT_SINT
        movw    %ax,_I
        pushl   -4(%ebp)
        call    FPC_READ_END
        pushl   $.L9
        call    FPC_IOCHECK
# [9] I := I + 1;
        movswl  _I,%eax
        incl    %eax
        movw    %ax,_I
.L12:
# [10] Writeln('The current value of I is ', I:0);
        leal    U_SYSLINUX_OUTPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   $.L15
        pushl   -4(%ebp)
        pushl   $0
        call    FPC_WRITE_TEXT_SHORTSTR
        movswl  _I,%eax
        pushl   %eax
        pushl   -4(%ebp)
        pushl   $0
        call    FPC_WRITE_TEXT_SINT
        pushl   -4(%ebp)
        call    FPC_WRITELN_END
        pushl   $.L12
        call    FPC_IOCHECK
.L20:
# [11] Writeln(); Writeln()
        leal    U_SYSLINUX_OUTPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   -4(%ebp)
        call    FPC_WRITELN_END
        pushl   $.L20
        call    FPC_IOCHECK
.L21:
        leal    U_SYSLINUX_OUTPUT,%edi
        movl    %edi,-4(%ebp)
        pushl   -4(%ebp)
        call    FPC_WRITELN_END
        pushl   $.L21
        call    FPC_IOCHECK
# [12] end. {tester}
        call    FPC_DO_EXIT
        leave
        ret
.Le0:
        .size   main, .Le0 - main
        .balign 16

.data
# [13] 
        .ascii  "FPC 1.0.6 [2002/05/23] for i386 - LINUX"
        .balign 4
.globl  FPC_RESOURCESTRINGTABLES
        .type   FPC_RESOURCESTRINGTABLES,@object
FPC_RESOURCESTRINGTABLES:
        .long   0
.Le1:
        .size   FPC_RESOURCESTRINGTABLES, .Le1 - FPC_RESOURCESTRINGTABLES
.globl  INITFINAL
        .type   INITFINAL,@object
INITFINAL:
        .long   1,0
        .long   INIT$$SYSLINUX
        .long   0
.Le2:
        .size   INITFINAL, .Le2 - INITFINAL
.globl  HEAPSIZE
        .type   HEAPSIZE,@object
HEAPSIZE:
        .long   262144
.globl  __stklen
        .type   __stklen,@object
__stklen:
        .long   8192

.data
.L8:
        .ascii  "%Please enter an integer value for I: \000"
.L15:
        .ascii  "\032The current value of I is \000"

.data

.bss
# [3] var I: Integer;
        .lcomm  _I,2
        .comm   HEAP,262144