Files
csapp2025/Y86_as/input.txt
2025-06-18 10:30:41 +08:00

41 lines
793 B
Plaintext

# Execution begins at address 0
.pos 0
irmovq stack, %rsp # Set up stack pointer
call main # Execute main program
halt # Terminate program
# Array of 4 elements
.pos 0x18
array:
.quad 0xd000d000d000d
.quad 0xc000c000c000c0
.quad 0xb000b000b000b
.quad 0xa000a000a000a
main:
irmovq array, %rdi
irmovq $4, %rsi
call sum
ret
# long sum(long *start, long count)
# start in %rdi, count in %rsi
sum:
irmovq $8,%r8
irmovq $1,%r9
xorq %rax,%rax
andq %rsi,%rsi
jmp test
loop:
mrmovq (%rdi),%r10
addq %r10,%rax
addq %r8,%rdi # start++
subq %r9,%rsi # count--
# Set CC
test:
jne loop # Stop when 0
ret # Return
.pos 0x200
stack: