Комментарии:
For those trying to learn assembly to write programs on AArch64 Macs, here's a few points
- Syscall numbers are different. Check syscall.h header file. Exit is 1, write is 4.
- ldr X1, =message didn't work for me, but adr X1, message did.
- You should also add .p2align 2. Maybe after .global.
- Sections work differently, you need to write .section __TEXT,__text (segment name, section name).
- You can compile using as and link using ld, and by default it can pick up _main as the entry point, where you can also simply specify the return code in X0/W0 register
great video
ОтветитьWould love more arm tutorials!! 😍
ОтветитьThere is nothing near as good describing Aarm64 like this video.. Please go on. For me who knows Z80 is little confusing to use Link register and not the stack as i am little worried what will do function call within function call. I am thinking of LDR some_memory, link register and LDR linkregister from memory and then ret on the end of function. Or create poor man manual stack, however there may be better way
Great job
Hello Bro , how are you ? Can you please help me to convert a simple c++ program to arm64. Ive tried everything but i just don't understand it. Thanks!
ОтветитьGreat video, thanks for putting this series together. Looking forward to seeing more of your videos on ARM64.
Ответитьwhy did you stop posting more videos?
ОтветитьThank you so much🙏 Bless you, y
Ответить179 likes and 0 dislikes. Now that's a perfect ratio.
ОтветитьNice tutorials! Waiting for the upcoming videos.
ОтветитьThanks
ОтветитьNice work keep it up!
Looking forward for stack video!
Your videos are great. I found your channel when looking for ARM64 info with a view to writing shellcode for Windows ARM (I work in cybersecurity). It would be cool if you could do a video on making syscalls to the Windows kernel on ARM…just sayin’. But I also have a question about this video. As you know, x86 has no equivalent to the link register so ‘call’ pushes the return address onto the stack. Even though this is slower than having a link register, one benefit is that the programmer doesn’t need to worry about the link register getting modified. I notice in your hello_world function that you don’t push the link register value before the svc 0 and pop it afterwards. Does the Linux ARM system call ABI guarantee to preserve the link register or did you just get lucky?
ОтветитьOn my system (uname -r is "5.11.0-1015-raspi") note that 'exit' is a special linux function defined to both exit a program and flush any io streams. So I would not recommend using exit as a label in your ASM code.
ОтветитьIsn't better to use subs and branch if not zero without first cmp and branch instruction?
ОтветитьI have a maybe stupid question. If i
learn a more accessible architecture, like x86, where much more tutorials exist, will it be easier to then apply that knowledge to risk? will the Arm32 tutorials also help me?
Besides that - great videos! nice to listen to.
Very nice video. How does the keywords "_start, loop, hello_world, exit" work? do they get translated into pointing to static memory adresses?
ОтветитьVery excited to see your video about managing a stack in ARM. Awesome content!
ОтветитьJust a note for anyone playing along with in old 32 bit raspbian, r15 gives a segmentation fault I think on the mov instruction. I think something to do with it being used for status flags (read somewhere) anyhow switching to r14 did the trick.
ОтветитьThese are really good tutorials dude, really well paced and easy to follow.
ОтветитьThis is exactly what I wanted. i've been learning Aarch64 assembly for two months now, the assembly syntax is absolutely beautiful.
ОтветитьThank you, please continue
ОтветитьThis is great! I have been searching for assembly tutorials, but most are for 32-bit x86, which won't run natively on my Surface Pro X or my Two Raspberry Pi 4's. Come to think of it, we also have 3 iPhones, an AppleTV and a Nintendo Switch. That's 8 devices, and they all use ARMv8-A chips. I'm glad someone is posting tutorials for code used in today's common devices.
ОтветитьGood one, Yes to use the stack is a Great future video looking forward to that :)
ОтветитьI've spent the last 3-4 hours learning Arm assembly via the documentation, started getting stuck when I wanted to make more complex things, just found your channel, and you've literally just put up a video explaining exactly the issue I was having!
Thank you so much, loved the video and I hope there's a lot more to come :D