views:

50

answers:

1

In assembly how do i Print the values of an Array? Now in this program I also have to print its values < Index entered in by the user.

.intel_syntax noprefix

.include "console.i"

.data

index:  .long 0
array:  .long 1,2,3,4,5,6,7,8,9,10,11,12                # Array initialized
value:  .long 0


.text

ask1:   .asciz          "Enter an Index: "
ans:    .asciz          "Value= "
ask2:   .asciz          "Invalid Index"
ask3:   .asciz          "Goodbye!!"


_entry:

        Prompt ask1
        GetInt index

        mov ebx, offset array                           # ebx = address of array

        mov esi, index  
        cmp esi, 11                                     # comparing index with 11

        ja  1f                                          # if Index > 11,then jump 
                                                        # to label 1

        mov eax, [ebx + 4*esi]

        mov value, eax

        Prompt ans
        PutInt value
        PutEol


        Prompt ask3
        PutEol
        ret

1:      Prompt ask2
        PutEol

        Prompt ask3
        PutEol
        ret

.global _entry

.end
+1  A: 

Got a Sloution to it

.intel_syntax noprefix

.include "console.i"

.data

limit:    .long 0

array:    .long 1,2,3,4,5,6,7,8,9,10,11,12                           # Array initialized

value:    .long 0

value2:   .long 0

.text

ask1:     .asciz             "Enter an limit: "

ans:      .asciz             "Value= "

msg:      .asciz             "Invalid"

bie:      .asciz             "Goodbye!!"


_entry:

        Prompt ask1

        GetInt limit

        mov ebx, offset array                           # ebx = address of array

        mov ecx, 0

        mov esi, limit                                  # esi = index

        cmp esi, 12                                     # comparing index with 12

        jge  1f

        Prompt ans

        PutEol

2:      mov eax, [ebx + 4 * ecx]

        mov value, eax

        inc ecx

        PutInt value

        Puteol

        cmp ecx, esi

        jle  2b

        ret

1:      Prompt msg

        PutEol

        Prompt bie

        PutEol

        ret

.global _entry

.end
Pavitar