Apple Silicon Hardware Secrets: SPRR and Guarded Exception Levels (GXF)
blog.svenpeter.dev20 pointsby adr_0 comments
sub $0x8,%rbx
callq *%rax
mov (%rbx),%rax
Intel: sub rbx, 0x8
call rax
mov rax, [rbx]
Intel can be written with: mov rax, QWORD PTR [rbx]
But it's redundant and assemblers don't expect it. It's only necessary in a handful of places to avoid ambiguity, as opposed to the incessant size suffixes and $/% prefixes, which make AT&T feel more verbose to me. Definitely a matter of familiarity, though. $ clang -nostdlib -O3 -o helloworld -m32 helloworld.c
$ strip helloworld
$ strip -R .note.gnu.build-id ./helloworld
$ wc -c helloworld
428 helloworld try:print(lambda x:eval(x)if all(i in'0123456789.*/+-'for i in x)else'syntax error')(raw_input())
except:print'error'