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