SPARC 어셈블리 언어- 문자열 출력
728x90
SMALL

구현

 

srl로 8bit씩 shift하며 출력할 수 있다.

 

 

fmt1:    .asciz    "4개의 영문자 입력 : "
fmts:    .asciz    "%s"
fmt2:    .asciz    "%dth 문자 = %c\n"
        .align    4
        
        .global main
main:   save    %sp,    -96,    %sp
        set     fmt1,   %o0
        call    printf
        nop

        set     fmts,   %o0
        call    scanf
        add     %fp, -4,   %o1
        nop
        
        mov     4,  %o1
        ld      [%fp-4], %o2
        set     fmt2,   %o0
        call    printf
        nop

        ld      [%fp-4], %o1
        srl     %o1,  8, %l0
        mov     3,  %o1
        mov     %l0, %o2
        set     fmt2,   %o0
        call    printf
        nop

        ld      [%fp-4], %o1
        srl     %o1,  16, %l0
        mov     2,  %o1
        mov     %l0, %o2
        set     fmt2,   %o0
        call    printf
        nop
           
        ld      [%fp-4], %o1
        srl     %o1,  24, %l0
        mov     1,  %o1
        mov     %l0, %o2
        set     fmt2,   %o0
        call    printf
        nop

        ret
        restore

 

 

728x90
LIST