Язык Ассемблера SPARC/Read from STDIN 2: различия между версиями

Содержимое удалено Содержимое добавлено
Новая страница: «==Чтение строк с помощью scanf== <source lang="asm"> .section ".data" prompt: .asciz "\nВведите Ваше имя: " format_in: .asciz "%s" ...»
(нет различий)

Версия от 14:53, 26 августа 2009

Чтение строк с помощью 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), ожидает ввода имени пользователя и выводит введённое имя.