SPARC 어셈블리 오류 질문있습니다!
글쓴이: msms210 / 작성시간: 금, 2018/10/19 - 7:25오후
fmt1: .asciz " input = " fmt2: .asciz "%d" fmt3: .asciz " output = non-prime number ( %d )\n" fmt4: .asciz " output = prime number\n" .align 4 .global main, scanf, printf, .rem, .mul, .div main: save %sp, -104, %sp set fmt1, %o0 call printf nop set fmt2, %o0 add %fp, -4, %o1 call scanf nop add %fp, -4, %o0 ld [%o0], %l0 cmp %l0, 0 ble next_r nop mov 1, %l1 mov 1, %l3 loop: inc %l1 mov %l0, %o0 call .rem mov %l1, %o1 mov %o0, %l2 cmp %l2, 0 bne loop nop mov %l0, %o0 call .div mov %l1, %o1 mov %o0, %l2 cmp %l1, %l2 be equal nop bg greater nop bl less nop equal: mov %l3, %o0 call .mul mov %l1, %o1 ba loop mov %o0, %l3 less: mov %l3, %o0 call .mul mov %l1, %o1 mov %o0, %l3 mov %l3, %o0 call .mul mov %l2, %o1 ba loop mov %o0, %l3 greater: cmp %l3, 1 bne nprime nop ba prime nop nprime: set fmt3, %o0 mov %l3, %o1 call printf nop ba main nop prime: set fmt4, %o0 call printf nop ba main nop next_r: ret restore
어떤 수 입력받아 소수인지 아닌지 출력하는 어셈블리프로그램구현 입니다.
입력 수가 <=0 이면 next_r로 분기해야하는데 gdb돌려보니 nprime이나 prime에서 머무르다가
다시 main으로 넘어가는데 그 이유를 모르겠습니다 ㅜㅜ
Forums:
만약 저라면 남에게 제 어셈블리를 읽어달라고 부탁할
만약 저라면 남에게 제 어셈블리를 읽어달라고 부탁할 땐 최소한 주석이라도 달아서 드릴 겁니다.
그러다가 어쩌면 스스로 문제를 해결하게 될 수도 있고요.
혹시 해결하셨나요?
저도 비슷한 문제인데 ... 혹시 해결 하셨나요?
https://docs.oracle.com/cd
https://docs.oracle.com/cd/E37838_01/html/E61063/index.html 에서
Feedback 클릭해서 질문해보면 어떨까요?
세벌 https://sebuls.blogspot.kr/
댓글 달기