Язык Ассемблера SPARC/Print Decimal: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
(нет различий)

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

Вывод строк и чисел с помощью printf

С помощью функции printf можно выводить не только строки, но и числа. Для этого в строку необходимо добавить специальные символы:

  • %d или %i - Целое со знаком в десятеричной системе счисления
  • %o - Целое в восьмеричной системе
  • %x или %X - Целое в шестнадцатиричной системе
  • %U - Целое без знака
  • %c - Character
  • %s - C-String, т.е. строка, заканчивающаяся на null
  • %f - Double
  • %e или %E - Double
  • %g или %G - Double
  • %n - Количество символов, выводимых данной функцией

При вызове функции printf эти символы заменяются на их значения, передаваемые в регистры %o1 - %o5.

Программа, печатающая "26 августа 2009 года":

.section ".data"
date:	.asciz "Date: %d %s %d %s\n"
month:	.asciz "августа"
year:	.asciz "года"

.section ".text"

.align	4
.global	main

main:
save	%sp, -96, %sp	! выделяем память

set	date, %o0
mov	26, %o1
set	month, %o2
mov	2009, %o3
set	year, %o4
call	printf
nop

! выход из программы
mov	1, %g1	! move 1(exit() syscall) into %g1
mov	0, %o0	! move 0(return address) into %o0
ta	8	! вызов системы