 	Treść przykładowego programu "oblicz.s", demonstrującego wprowadzenie danej i wykonanie obliczeń arytmetycznych w WinDLX

Proponuję zmodyfikować program tak, aby:

a) wczytywał liczby ze znakiem (zarówno + jak i - )

b) wykonywał inne działanie bądź działania arytmetyczne dla argumentów stałoprzecinkowych

c) wypisywał wynik bez wykorzystania formatu zmiennoprzecinkowego

d) wczytywał liczby w wybranym formacie zmiennoprzecinkowym, wykonywał na nich wybrane działanie arytmetyczne i wypisywał wynik zmiennoprzecinkowy ze znakiem

; program oblicz
; wypisanie zachęty do wprowadzenia liczby
; wczytanie liczby całkowitej bez znaku z klawiatury za pomocą biblioteki input
; wykonanie na tej danej elementarnych obliczeń : tutaj pomnożenia przez 10
; wypisanie wyniku jako liczby ZMP podwójnej długości

           .data
Zacheta:   .asciiz     "Podaj liczbe calkowita bez znaku, ktora bedzie pomnozona przez 10 : "

FormatWypisania:    .asciiz     "Wynik mnozenia wczytanej liczby przez 10 = %g\n\n"
           .align        2
ParametrPrintf:      .word        FormatWypisania
WartoscWypisania:    .space        8
; 8 bajtów, bo wynik jako liczba ZMP 64-bitowa



       .text
       .global    main
main:
       ;*** tu wstaw pierwsza instrukcję
       ; tu PC = (256) czyli (100)h
       ; $TEXT = 100h = 256
       ; $DATA = 1000h = 4096


       ; przekaż do r1 adres zachęty jako parametr wejściowy biblioteki input
       addi        r1,r0,Zacheta    ; w r1 adres komunikatu do wypisania

       ;*** Odczytaj liczbę z konsoli do r1 za pomocą biblioteki input
       jal        InputUnsigned

       ; jako wynik procedury InputUnsigned w r1 mamy liczbę całkowitą bez znaku
             ; zapisujemy tę liczbę do f10
       movi2fp     f10,r1


       ; konwertujemy te liczbę z formatu STP do formatu ZMP i zapisujemy do f1
       cvti2f        f1,f10


       ; do D2 zapisujemy mnożnik 10
       addi        r2,r0,10
     
       ; zapisujemy jako STP do rejestru ZMP f12
       movi2fp        f12,r2


       ; konwertujemy z postaci STP z f12 do ZMP do f2
       cvti2f        f2,f12

       ; wykonujemy mnożenie argumentów ZMP i wynik do f3
       multf        f3, f1, f2


       ;konwersja z postaci 32- na 64-bitową z f3 do f6-f7
       cvtf2d        f6,f3

       ; zapamiętujemy wynik mnożenia w zmiennej WartoscWypisania
       sd        WartoscWypisania,f6

 ; przygotowujemy dla trap5 parametr w r14, jako adres opisu formatu i pola danej do wypisania
       addi        r14,r0,ParametrPrintf

       ; trap 5 - patrz HELP
       trap        5


       ;*** end
       trap        0        
 