목록MIPS (19)
Self-Improvement
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
#include int sum(int, int); int main(void) { int (*fp)(int, int) // 함수 포인터 선언 int res; fp = sum; // 함수명을 함수 포인터에 저장 res = fp(10,20); // 함수 포인터로 함수 호출 printf("result : %d\n", res); return 0; } int sum(int a, int b) { return(a+b); } 단순하게 sum 함수의 주소를 $t9에 MOVE하고 JALR하여 호출하고 있다. #include void func(int (*fp)(int, int)); int sum(int a, int b); int mul(int a, int b); int max(int a, int b); int main(voi..
$fp는 프레임 포인터로써 주소를 뜻하며 ($fp)는 해당 주소에 있는 값을 뜻한다. $fp + 0x28+failure = 주소 0x28+failure($fp) = 값 #include void swap_ptr(char **ppa, char **ppb); int main(void) { char *pa = "success"; char *pb = "failure"; printf("pa -> %s, pb -> %s\n", pa, pb); swap_ptr(&pa, &pb); printf("pa -> %s, pb -> %s\n", pa, pb); return 0; } void swap_ptr(char **ppa, char **ppb) { char *pt; pt = *ppa; // *ppa = pa *ppa = *p..
EX) 예제파일 #include #include #include #include #include #include #include #include #include int main(int argc, char **argv) { int server_sockfd, client_sockfd; int state, client_len; int pid; FILE *fp; struct sockaddr_in clientaddr, serveraddr; char buf[255]; char line[255]; if (argc != 2) { printf("Usage : ./zipcode [port]\n"); printf("예 : ./zipcode 4444\n"); exit(0); } memset(line, '0', 255); st..
틀린점이 있다면 지적 바랍니다. sw (store word) ex) sw $zero, 0xC8+var_8($fp) // var_8에 값 0을 저장 sh (store halfword) ex) sh $t8, 0x70+var_32($sp) // var_32에 $t8의 값 2byte 할당 ex) socket의 port 부분 lw (load word) ex) lw $v0, 0xC8+arg_4($fp) // $v0에 arg_4에 저장된 값 4byte를 저장 slti, sltiu (set less than immediate, set less than immediate unsigned) ex) sltiu $v0, 9 // $v0의 값이 9보다 작으면 $v0=1 아니면 $v0=0 beqz (branch on equal ..
소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 //mips-linux-gnueabi-gcc -o test5 test5.c -no-pie -z norelro #include int main() { int n; printf("INput number:"); scanf(" %d",&n); printf("before switch statement\n"); switch (n) { case 0:printf("[zero]"); break; case 1:printf("[one]"); break; case 2:printf("[two]"); break; case 3:printf("[three]"); break; case 4:pr..