2

So my first foray into Assembly. I have a demo program that is just setting some values and then moving them between memory locations and registers. Simples.

The problem is when I try to analyse the program in gdb I get this error:

Reading symbols from DataTypes... (no debugging symbols found)... done.

GDB is configures as i686-linux-gnu and running on Kali Linux in a Windows 10 hosted VMWare instance. uname -a: Linux Kali 4.17.0-kali1-686-pae #1 SMP Debian 4.17.8-1kali1 (2018-07-04) i686 GNU Linux.

My Code...

# Demo program to show how to use Data types and MOVx instructions 

.data 

    HelloWorld:
        .ascii "Hello World!"

    ByteLocation:
        .byte 10

    Int32:
        .int 2
    Int16:
        .short 3
    Float:
        .float 10.23

    IntegerArray:
        .int 10,20,30,40,50


.bss
    .comm LargeBuffer, 10000

.text 

    .globl _start

    _start:

        nop

        # 1. MOV immediate value into register 

        movl $10, %eax

        # 2. MOV immediate value into memory location 

        movw $50, Int16

        # 3. MOV data between registers 

        movl %eax, %ebx


        # 4. MOV data from memory to register 

        movl Int32, %eax 

        # 5. MOV data from register to memory 

        movb $3, %al
        movb %al, ByteLocation

        # 6. MOV data into an indexed memory location 
        # Location is decided by BaseAddress(Offset, Index, DataSize)
        # Offset and Index must be registers, Datasize can be a numerical value 

        movl $0, %ecx
        movl $2, %edi
        movl $22, IntegerArray(%ecx,%edi , 4)

        # 7. Indirect addressing using registers 

        movl $Int32, %eax
        movl (%eax), %ebx

        movl $9, (%eax)



        # Exit syscall to exit the program 

        movl $1, %eax
        movl $0, %ebx
        int $0x80
2
  • 2
    That's not an error as such and gdb can still work. But indeed it's more convenient if you assemble with debug info (lines and symbols). You did not show the command you use but for example as -g or gcc -g -nostdlib could work. Commented Oct 18, 2018 at 11:15
  • @Jester -g flag sorted it. Thanks Commented Oct 18, 2018 at 12:02

1 Answer 1

2

So as per suggestion by Jester

I reran the compilation with as using the -g flag.

as -g -o DataTypes.o DataTypes.s

Linked ld -o DataTypes DataTypes.o

Ran GDB

gdb ./DataTypes

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.