.text .global connect connect: mov r3, #2 ; s->sin_family = AF_INET strh r3, [sp] ldr r3, =server_port ; s->sin_port = server_port ldr r3, [r3] strh r3, [sp, #2] ldr r3, =server_addr ; s->sin_addr = server_addr ldr r3, [r3] str r3, [sp, #4] mov r3, #0 ; bzero(&s->sin_zero) str r3, [sp, #8] str r3, [sp, #12] mov r1, sp ; const struct sockaddr *addr = sp ldr r7, =connect_call ldr r7, [r7] swi #0 add sp, sp, #16 pop {r0} ; pop sockfd pop {r7} pop {fp, ip, lr} mov sp, ip bx lr .data socket_call: .long 281 connect_call: .long 283 /* all addresses are network byte-order (big-endian) */ server_addr: .long 0x0100007f ; localhost server_port: .hword 0x0b1a