Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4168

Bare metal, Assembly language • Need help with assembler OPcodes and gdb

$
0
0
I'm learning assembler programming on my Raspberry Pi 4 running RasPiOS Bookworm, 64bit, GUI.
It's not easy to find reliable information.
Here's the problem I'm having:

Code:

                .global _start_start:        mov w1, #0x0E        mov w2, #0x01        add w0, w1, w2        lsr w3, w0, #1        bcc _skip        add w0, w0, #1_skip:  mov w7, #1        svc 0
Using gdb it shows that LSR does NOT set the carry flag. Googling showed this topic viewtopic.php?t=361647
dealing with the same problem, however the proposed solution doesn't even assemble on my system:

Code:

 t2.s: Assembler messages:t2.s:4: Error: operand 1 must be an integer register -- `mov r0,#0x8f't2.s:5: Error: unknown mnemonic `rrxs' -- `rrxs r0,r0't2.s:7: Error: operand 1 must be an integer register -- `mov r2,#2't2.s:10: Error: operand 1 must be an integer register -- `mov r3,#3'
as --dump-config shows this information:
alias = aarch64-linux-gnu
canonical = aarch64-unknown-linux-gnu
cpu-type = aarch64
bfd-target = elf64-littleaarch64

I'm in need of help with gdb as well - I couldn't fogure out how to display the flag register.

Any help, hints or links to reliable information sources is appreciated.

Statistics: Posted by gyrogearloose — Mon Mar 04, 2024 4:45 pm



Viewing all articles
Browse latest Browse all 4168

Trending Articles