Перейти к содержанию

Язык Ассемблера SPARC/Read from STDIN 2

Материал из Викиучебника — открытых книг для открытого мира

Чтение строк с помощью scanf

[править]
.section ".data"
prompt: .asciz "\nВведите Ваше имя: "
format_in: .asciz "%s" 
format_out: .asciz "Ваше имя:%s\n" 
_buf: .asciz "                         " 

.align 4 
.section ".text" 
.global main 

main: 
save %sp, -96, %sp

! Напечатать prompt
set prompt, %o0 	! поместить адрес prompt в %o0
call printf
nop 

set format_in, %o0	 ! поместить адрес format_in в %o0
set _buf, %o1 	! куда будет записываться
call scanf
nop 

set format_out, %o0	 ! поместить адрес format_out в %o0
set _buf, %o1 	! читать из буфера
call printf
nop
 
! выход из программы
mov	1, %g1	! move 1(exit() syscall) into %g1
mov	0, %o0	! move 0(return address) into %o0
ta	8	! вызов системы

Программа выводит подсказку (prompt), ожидает ввода имени пользователя и выводит введённое имя.